Каждый триггер должен находиться внутри какой-нибудь папки. Он состоит
из трех частей: событий (events), условий (conditions) и действий
(actions). Также у триггера есть собственное имя, которое, как и имя
файла, не может содержать спецсимволов (в том числе знак подчеркивания,
однако можно использовать пробелы) и может быть введено только на
английском языке (папки могут быть на русском). Рис. 1 - структура триггера
В верхней части окна редактора триггеров имеется шесть кнопок,
управляющих процессом создания триггеров. Первая из них - создание новой
папки для триггера, вторая - создание самого триггера, третья -
создание комментария к триггеру, а последние три кнопки отвечают за
добавление в триггер новых событий, условий и действий. Рис. 2 - кнопки для управления триггерами
Принцип действия следующий: игра - это последовательность событий
(например, начало игры, юнит атаковал юнита, герой повысился в уровне,
игрок передал сообщение в чате). Когда в игре происходит какое-либо
событие, то указанное в триггере событие сопоставляется со случившимся.
Если совпадение есть, то происходит второй этап, на котором проверяется
выполнение условий триггера. Условия должны уточнить, когда нужно
производить действие, а когда - нет. Если условия выполнятся, то
произойдет третий, финальный этап - будет выполнено действие этого
триггера. Например, перед нами стоит задача - сделать так, чтобы
определённый герой переносился в другое место, когда подойдёт к порталу.
Событием здесь будет приход юнита в область вокруг портала (Боевая
единица - Unit Enters Region), а условие должно уточнить, что этим
юнитом должен быть определенный герой (Triggering unit равно
[Определённый герой], для примера я взял Чародея Крови). Действие -
перенос юнита в другое место (Боевая единица - Move (Triggering Unit)
instantly to (Область, куда хотите его переместить)). Если событие
произошло и условия выполнены, то выполняются действия триггера. Рис. 3 - триггер, переносящий определённого героя из одной области в другую.
Еще у триггера есть два флажка (в окне редактора расположены сверху):
включен (enabled) и изначально включен (initially on). По сути они имеют
одинаковый смысл, за одним исключением: если триггер "отключен", то его
никак нельзя включить, ибо он вообще отсутствует в игре (это важный
момент), если он "изначально выключен", то его можно включить в игре. В
первом случае все ясно - триггера просто нет в игре, а вот второй
следовало бы разобрать. У триггера есть "флажок", который отвечает за
то, включен ли он. "Отключенное" состояние равносильно тому, что у
триггера нет никаких событий (но его можно вызвать из другого триггера).
Этот флажок можно включать и выключать по ходу игры (для этого есть
специальные действия), то есть "включать / выключать" триггер. Флажок
"изначально включен", соответственно, отвечает за его состояние "по
умолчанию". Кстати, есть возможность подключать и отключать отдельные
команды внутри любого триггера. Щелкните на команду правой кнопкой и
выберете пункт "включить функцию" (enable function). "Включать /
выключать" функции по ходу игры невозможно. Рис. 4 - флажки для управления включением триггера
Говоря про отключение триггеров, нельзя забывать про один аспект - как
только произошло нужное событие и выполнены нужные условия, то триггер
приводится в действие, но дело в том, что почти все триггеры
многоразовые. Если снова произойдет нужное событие и снова выполнены
условия - триггер запускается еще раз. Одноразовыми можно считать
триггеры, заданные событиями Карта - Map Initialization и Time Elapsed,
поскольку эти события происходят один раз. Следовательно, возникает
проблема - как их отключить. К примеру, нужно сделать так, чтобы герой
перемещался в другое место, когда приходил в определенную область, но
только один раз. Значит, нужно позаботиться, чтобы после первого
выполнения триггер отключался. Вот один из способов это осуществить: в
каждый триггер, который нужно отключить, вставляете строчку в действия -
Триггер - Turn off (This trigger). Это действие отключает триггер. Рис. 5 - теперь герой переходит из одной области в другую только один раз. |