Перед тем, как непосредственно перейти к триггерам (к программированию), изучим их основы.
Каждый триггер должен находиться внутри какой-нибудь папки. Он состоит
из трех частей: событий (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 - теперь герой переходит из одной области в другую только один раз. Статья взята с wcfan.ucoz.ru. Добавление скриншотов и комментариев к ним, грамматическая корректировка и редакция текста - [DUOS].
Благодарю за прочтение статьи. Надеюсь, что вы открыли для себя что-нибудь полезное.
|