ScriptedTrigger
Введение
Класс ScriptedTrigger пришел на замену старым триггер классам из UT: Counter, Dispatcher и SpecialEvent.
Если Вы уже достаточно поработали с UT2003, то Вы должно быть заметили, что в списке актеров отсутствуют триггеры Dispatcher или SpecialEvent. Их место занял новый ScriptedTrigger, который является более мощным и предоставляет широкий спектр возможностей. ScriptedTrigger запускает последовательность событий при его активации, т.е. работает, по сути, как диспетчер (Dispatcher). Он имеет большой выбор событий, которые можно вызывать: издавать звук, наносить повреждение игроку, отображать сообщения и т.д. Один раздел туториала будет посвящен созданию диспетчера для включения и выключения источника света (TriggerLight). Затем будет проиллюстрировано создание триггера специального события (SpecialEventTrigger) с целью воспроизведения звука. В обоих случаях будет использован ScriptedTrigger, отличаться будут только его настройки. Используя эти два примера, Вы сможете экспериментировать с ним над созданием других событий. Для начала прочитайте основы создания диспетчера. ScriptedTrigger по существу им и является.
Для установки ScriptedTrigger найдите его в браузере актеров: Keypoint -> AIScript -> ScriptedSequence -> ScriptedTrigger
Создание диспетчера (Dispatcher)
Сперва, Вам понадобится добавить две вещи на карту: обычный датчик (Trigger) и ScriptedTrigger. Насколько мне известно, ScriptedTrigger не может активироваться самостоятельно, поэтому для него всегда нужно что-то, что передает ему событие. Это может быть что угодно, например, захват флага, событие датчика и пр. В нашем случае будет использован обычный датчик. После установки датчика, откройте его свойства и укажите в поле Event название события. Так как в этом примере, диспетчер будет включать и выключать свет, то я назвал его T_Lights.
Затем откройте окно свойств ScriptedTrigger и перейдите к разделу AIScript.
Вот здесь Вы и будете добавлять необходимые события или действия (Actions) как их здесь называют. Я не уверен, какое количество действий можно добавлять, но могу точно сказать, что слишком много Вам их не понадобится. Говоря простым языком, все что Вы будете здесь делать - это создавать сценарий последовательности событий. Справа находится кнопка Add. Она предназначена для того, чтобы добавлять действия в список. Для создания первого события нажмите на эту кнопку, при этом появится заготовка действия, где в поле New будет отображен тип действия. Если, необходимый Вам тип действия указан в этом поле, то нажмите кнопку New для создания действия и его настройки. В противном случае, выберите необходимый тип действия из выпадающего списка. В нем будут указаны все события, которые можно вызывать. Так как сценарий должен быть сперва запущен, первый тип действия необходимо поставить равным Action_WaitforEvent. Вы, тем самым, "скажете" сценарию ждать соответствующее событие для запуска.
После того, как необходимый тип действия был выбран, нажмите кнопку New. При этом будет создано соответствующее событие. Затем его Вам необходимо настроить. Это тип действия очень простой и имеет всего одну опцию ExternalEvent. В этом поле и нужно указать то событие, которое активирует ScriptedTrigger. В нашем случае этим событием является T_Lights.
Теперь Вам потребуется создать еще несколько действий, для того, чтобы диспетчер делал то, что Вы хотите. Ниже приведен список оставшихся событий, которые понадобятся для создания переключающегося источника света.
Специальное событие (SpecialEvent)
Так как Вы уже знаете, как добавлять действия в ScriptedTrigger, то я отброшу лишние объяснения. Ниже, на скрине, проиллюстрировано, каким образом нужно настроить ScriptedTrigger, чтобы он воспроизводил звук при активации.
Вот еще несколько знакомых Вам по старому доброму UT событий:
Организация действий
Если Вы щелкните на заголовке действия мышкой, то, при этом появятся еще несколько кнопок:
Полный список действий с их описанием Вы можете найти в туториале ScriptedSequence. Обратите внимание на то, что не все типы действий могут быть использованы в ScriptedTrigger. Действия, не разрешенные к использованию, специально помечены в туториале.
Автор
Steve "SlickWilly" Nabors
http://www.planetunreal.com/slick
slickwilly@planetunreal.com
Перевод сделан 32_Pistoleta с разрешения автора.