Script MoverПеремещение объекта в RTCW требует нескольких различных действий. Она требует .ai файла и .script файла для вашей карты. В случае, если Вы не знаете, .ai, и .script файлы -то разъясняю это основные файлы скриптинга, которые инструктирует вашу карту, и имеет такое же название как ваша карта .Эти файлы созданы чтобы картопостроитель, писал, что игра должна выполнять определённые вещи. Поскольку Вы, возможно, предположили, что .ai файл говорит об искусственном интеллекте и вещи, имеющие дело с искусственным интеллектом происходят в .script`е - файле..
Сначала создайте браш который вы хотите переместить куда либо. Подойдёт самый простой брашик имеющий определённую текстуру .Пожалуйста не забывайте, что это не объект, который игрок будет в состоянии передвинуть это - только кое-что, что переместится самостоятельно в указанное место когда вы ее активируете .После того, как Вы создаете браш, заселектируйте его и затем нажмите правую кнопку мыши на нее в 2D виде естественно появиться меню, затем нажимите на script_mover. См. скриншоты ниже.
Вы только что превратили этот браш в Entity, в script_mover, если быть точным. Теперь выберите ее снова и нажмите 'N', чтобы вывести ее свойства. Сначала, проверьте стоит ли галочка на Solid - это нужно для того чтобы ваш объект был не проходимым на сквозь.
Далее вы должны добавить два ключа. Первый ключ называется Scriptname. В строку Key вводите scriptname. А в нижнюю вводите Script1. в наших целях мы будем использовать script1. Этот ключ который говорит Script_Mover`у как она будет называться в .script файле. Затем, добавьте еще один ключ .В строку Key вводите слово "Target " а в Value "Function1" Это говорит script_mover`у что она будет функционировать. Ваше окно свойств теперь должно выглядеть так как показано на рисунке
Перед следующим шагом, решите, где ваш браш будет перемещаться точно. Планируйте курс в уме. Продолжим .Теперь нажмите правую кнопку мыши в любом 2D виде, перед вами появиться меню там выберите --> path_corner. Это - просто Entity местоположения т.е куда будет перемещаться ваш браш. Можете поместить его куда только вам взбредет в голову и это еще не все вы можете поместить столько, сколько вы хотите. теперь выберите каждый из поставленных вами patch-corner`ов войдите в окно свойств в строку Key вводите targetname, и в Vаlue введите path1. Удостоверьтесь, что каждый из них отличаются друг от друга... См. скриншоты ниже, чтобы видеть мой script_mover и все его path_corner`ы. Свойства одного из path_corner`ов показано на рисунке .
Хорошо, следующий Entity, который вы должны поставить на вашу карту это - target_script_trigger .Можете поместить его куда угодно от этого ничего не зависит Теперь опять же нажав "N" в строку key вводите ainame а в value слово player.После нее В key еще раз напишите target и в Value function2.И последнее. Еще раз введите в key targetname а в value tst_1. См. скриншот ниже.(И вы точно все поймете)
Последнее что вы должны сделать это - func_button. Это - Entity на основе браша, вам придётся сначала сделать браш который будет вашей кнопкой, Теперь выберите вашу кнопку снова и правой кнопкой мыши щелкнув на 2D виде укажите на func, и затем щёлкните func_button. Теперь выберите это снова, и нажмите 'N', чтобы вывести его свойства. Теперь в строку Key вводите Target а в Value введите Tst_1 Если вы все сделали правильно Target_script_trigger и ваша кнопка должны соединиться в редакторе
Хорошо, теперь сохраните и закройте редактор карт. Остальная часть работы будет с .ai и .script файлами, которые не должны быть слишком сложными как вам кажется. Пойдите в вашу папку RTCW/Main/maps, и сделайте новый .txt файл. Вставьте информацию как показано на скриншоте.
http://www6.pochta.ru/hosting/N7c6ec8c67fd...%2FSHOT_600.JPGТогда сохраните его , и переименуйте это к вашакарта.ai. Теперь позвольте мне объяснять, что мы что только сделали. Каждый блок программы, или кодовый блок, выделены фигурными скобками ({и}). Выше каждого набора фигурных скобок - название кодового блока. В этом случае, это - игрок, потому что наш скрипт обращается игроку. Это - единственный случай, где Вы не можете изменить название кодового блока - это ДОЛЖЕН быть игрок. Поскольку Вы можете вспомнить, это - имя, которую мы дали ainame target_script_trigger. Мы говорили ему как назвать этот кодовый блок. Однако, мы также дали этому и function2. Это определило, которые функции, она выполняет в пределах нашего кодового блока. Вы можете также понять, что я помещал Trigger - слова перед Function2. Однако, мы не включали то слово, помещая это в редакторе. Это - только для файла скрипта. Углубление не имеет значения, это должно только там помочь делать объекты организованными. Так, игрок нажимает func_button, который предназначается для target_script_trigger, активирует кодовый блок игрока который мы для него писали и функцию function2. Поскольку Вы можете видеть, есть одна линия текста в пределах той функции, спусковой механизм script1 function1. Это говорит игре вызывать блок скрипта script1 и функцию function1 в пределах того кодового блока. Мы собираемся делать это через секунду. Однако, это будет в .script файле взамен, А НЕ в .ai файлf. Так, сделайте другой .txt файл в вашей maps папке и откройте его. Еще раз, сделайте это как показано на скриншоте ниже, за исключением части, где я сказал INSERT YOU COMAND.
http://www6.pochta.ru/hosting/N7c6ec8c67fd...%2FSHOT_700.JPGЕще раз, сохраните его и переименуйте это в вашакарта.script. Поскольку Вы можете видеть, мы имеем блок скрипта script1 с функцией function. Для них предназначалась команда в нашем .ai файле. Планирование функции function1 управляет всеми командами в вашем скрипте. Они, наконец, говорят вашему script_mover, что они должны делать. Есть много возможностей. Например, печатание gotomarker path1 50 сказало бы ему идти в path1 path_corner со скоростью 50. Ждать 4000, сказали бы мы и она ждет 4 секунды до выполнения следующей команды. Это - 4000, потому что это измерено в миллисекундах. Так в течение 4.5 секунд только помещают 4500. Вы можете также поместить faceangles x# y# z# time#, и это повернется к данному xyz координаты в указанном времени, снова измеренном в миллисекундах. Например, Вы могли поместить faceangles 0 180 0 1500. Только удостоверьтесь, что Вы только помещаете одну команду в линию, и затем script_mover выполнит их чтобы. Вот - пример полного .script файла со всеми командами:
http://www6.pochta.ru/hosting/N7c6ec8c67fd...%2FSHOT_800.JPGПоскольку Вы можете видеть, последняя линия команд называет ту же самую функцию снова, и снова таким образом начинает процесс, эффективно создавая своего рода цикл. Если Вы хотели, бы остановить его достаточно удалить последнюю строку
Теперь, когда Вы, игрок нажимает в игре кнопку, это должно предназначаться для target_script_trigger, который называет функцию function2 в пределах скрипта в .ai файле. Функция function2 тогда имеет команду в этом, которое называется функцию function1 и в скрипте script1 .script файла. Команды там тогда фактически говорят вашему script_mover entity`у, что они должны сделать и куда пойти.
Мануал составил kessler]