[Главная Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: [san9], Ахил  
[Статья] Триггер
WE_new_maperДата: Пятница, 23.07.2010, 12:56 | Сообщение # 1
Новичок
Группа: Проверенные
Сообщений: 14
Статус: Отсутсвует
Перед тем, как непосредственно перейти к триггерам (к программированию), изучим их основы.
Каждый триггер должен находиться внутри какой-нибудь папки. Он состоит из трех частей: событий (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 - теперь герой переходит из одной области в другую только один раз.

Благодарю за прочтение статьи. Надеюсь, что вы открыли для себя что-нибудь полезное.

Напомню людям что:
Если у вас в триггере 9999 событий и 0-2 условия то при любом из событий будет проверятся условие и начнется действие

Сообщение отредактировал WE_new_maper - Пятница, 23.07.2010, 12:56
 
ЖополизДата: Среда, 28.07.2010, 19:04 | Сообщение # 2
Группа: Удаленные





Неплохо

Добавлено (28.07.2010, 19:04)
---------------------------------------------
Но она для полных Нууубов=)

 
EdiTTORRДата: Вторник, 10.08.2010, 19:15 | Сообщение # 3
Юзер
Группа: Проверенные
Сообщений: 21
Статус: Отсутсвует
Quote (MsWeReWoLF)
Но она для полных Нууубов=)

И такие живут в нашем мире=)
WE_new_maper, почему не указал настоящего автора?
Доступно только для пользователей


"Всё, что человеческое сознание способно вообразить, оно способно и получить"
•©У.Клемент Стоун(1902-2002)

А чо это сначет?
 
  • Страница 1 из 1
  • 1
Поиск: