Добавлен Morkoffka
Можно ли в JASS использовать переменные в событиях? И будет ли триггер обновляться при изменении значений этих переменных? Если нет, то есть ли обратная функция TriggerAddAction, чтобы удалить или может очистить все события триггера?
Принятый ответ
+, JASS API откпывал? Там вначале:
boolean
code
handle
integer
real
string
Перечислены типы данных языка JASS, тут приведены типы данных, логическая, код (тебе рано об этом типе), хендл (ссылка на обьект), целочисленная, вещественная, строка. | |
handle это обьект, причем не важно юнит, локация, или триггер - это все обькты, они поделены на поддтипы для удобства. События требют только handle (кропе пары отбитых, на тип real но они работают криво, их никто не использует) | |
Так что статьи в помощь. | |
И кстати забыл написать, у одного триггера может быть множество событий, условий и действий, причем совершенно разных. |
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
ты имеешь ввиду getTriggerUnit и подобные?
Есть несколько типов событий, события на конкретный обьект, событие на целую группу обьектов. К примеру есть событие - конкретный юнит отдал приказ без указания цели, а есть похоже событие для всех юнитов конкретного игрока.
Событие крепится к обьекту а не к триггеру, удалить там ничего нельзя.
Для событий нужен обьект, на котором будет висеть событие. Нельзя вот так просто записать 1 раз событие на переменную а потом записывать туда всех юнитов, хрен вам! Нет ну конечно можно написать так TriggerRegisterUnitEvent( trg, udg_TemUnit, EVENT_UNIT_DAMAGED ) но событие повесится на того юнита, что был записан в переменной udg_TempUnit в момент вызова TriggerRegisterUnitEvent, дальше меняй не меняй юнита в переменной ничего не изменится.
вот только ты вообще не знаешь что такое переменные
переменная просто хранит данные
функции работают с данными
т.е. когда ты вызываешь функцию то из переменной читаются данные и уже эти данные передаются в функцию
для примера возьмём листок бумаги на котором записано число(пускай 3)
листок бумаги это переменная
число это данные
если дать человеку прочитать число с листка то он будет знать только число которое было записано на листке(3)
потом число убрали корректором и написали другое число(5) и показали его другому человеку
таким образом первый человек знает число 3 а второй число 5
а сам листок уже давно использовали как туалетную бумагу
Вот только не думаю что если вы задаете такие вопросы то сможите осилить динамическую смену действий триггера.
Все функции для работы с триггерами, а так же с их условиями или действиями можно посмотреть jass_API
Что касается TriggerAddAction, снова напутал(второй раз), речь шла о функциях работы с событиями триггера
Спасибо за Jass Api. Как ни странно о функциях я узнавал конвертом с гуи
Событие требует обьект по определению а не переменную.
Отредактирован quq_CCCP
nvc123: Хорошо. Есть человек, который следит за проезжающими машинами. Если в номере машины содержится цифра(заранее известная человеку), то он останавливает машину. Этот человек - событие триггера. Каждое утро, цифра(заранее известная человеку) меняется. Меняет её какой либо триггер. Так вот как реализовать такого человека - событие и как менять эту загадочную цифру в Jass?
У нас нет события, при котором машина просто проезжает. Есть только событие в котором заранее указана нужная цифра номера
Кстати, только сейчас я понял, что проблему можно решить по-другому
Внутренний обработчик обьекта срабатывая на событие (их множество, их даже больше чем предоставлено в jass) вызывает триггер, глядя на список ссылок обьекта.
Так что что либо поменять нельзя, события не удаляются. Можно удалить триггер и связанный с ним обьект, но никак нельзя удалить событие триггера оставив триггер и\или обьект на котором и весит событие.