Интересная функция GetSummonedUnit() - Форум


Правила форума ·

  • Страница 1 из 1
  • 1
Форум » Warcraft III » Триггеры и Jass » Интересная функция GetSummonedUnit()
Интересная функция GetSummonedUnit()

TNT

#1
Нашёл интересную вещь просто экспериментальным путём. Существует в WE такая функция GetSummonedUnit() (В GUI просто Summoned Unit). Она возвращает юнита, который только что был вызван с помощью заклинания каким-нить юнитом. Т.е. реагирует на событие A unit Вызывает боевую единицу.
Так вот я решил узнать как она себя поведёт, если вызывается несколько солдат. Она повела себя циклично.

Триггер был такого плана:
Событие: Кто-то вызывает кого-нить
Действие: Добавить восклицательный знак над головой вызванного.

Работало идеально, все 3 вызванных получили над башкой воскл. знак.

Модифицируем триггер:
Событие: Кто-то вызывает кого-нить
Действие: Занести этого кого-то в переменную temp
Показать над юнитом в переменной temp восклицательный знак

Опять всё работает идеально. Но мы ж не просто так вынесли вызванных юнитов в переменную (всех 3 О_о), мы сделали это для того, чтобы создать отдельный триггер, в котором мы хотим их убить. Создаём ещё триггер:
Событие: Каждую 1 сек. игры
Действие: Убить юнита в переменной temp

Что получается? Как только мы вызываем юнитов, умрает только один из них. Если б мы убили Summoned Unit в том же триггере, в котором дали им над головой воскл. знак, тогда б умерли все. Я могу объяснить это тем, что триггеры, содержащие в себе Summoned Unit (SU в дальнейшем), действуют циклично. Вот ещё одно убеждение. Создадим переменную целочисленную ind=0 и установим для temp галочку "Массив", затем переделаем триггеры:
Событие: Кто-то вызывает кого-нить
Действие: Занести этого кого-то в переменную temp с индексом int
Показать над юнитом в переменной temp восклицательный знак //Это уже можно не делать, нах оно нам? О_о
Установить значение int = int+1

Событие: Каждую 1 сек. игры
Действие: Убить юнита в переменной temp с индексом, например, 1

Теперь мы можем заметить, что после вызова умер не тот вызванный, который умирал в прошлый раз. Это доказывает цикличность действий триггера с функцией SU. Незнаю как это можно применить, но вполне возможно, что можно, провоцируя кого-нить вызывать нужное колличесиво юнитов, совершать более эффективные циклы. Но до сведенья я довёл. Думаю это будет полезно, если вы хотите убить сколько-то юнитов из всех вызванных, налог там какой-нить или т.п.

Добавлено (27.11.09, 16:10)
---------------------------------------------
Тут же придумал применение, вот например нада дать разные скособности всем вызванным, а они одинаковые, проще будет отслеживать их и давать спеллы случайным образом.
Или если нада отправить кого-нить из вызванных на какую-нить работу.
Или для ИИ, тут блин фантазию нада, которой нету у мну ^^

Сообщение отредактировал TNT - Пт, 27.11.09, 17:07
vk.com/t_n_t

KDWin

#2
можно применить, как отрицательное заклинание на вражеских юнитов, типа 20,40,60,80 % всех вызванных юнитов сразу подыхают
Форум » Warcraft III » Триггеры и Jass » Интересная функция GetSummonedUnit()
  • Страница 1 из 1
  • 1
Поиск: