Здравствуйте! Давно, с самого детства работаю в редакторе (с перерывами - 13 лет), триггеры освоил относительно недавно. Загадкой для меня по-прежнему остается одна система.
Допустим, у меня есть способность на основе "Удара по земле", где нет конкретно указываемой одной цели, но есть нестабильное количество юнитов (но с определенным порогом), на которое я с помощью этой способности могу воздействовать. Я хочу присвоить переменные каждому юниту-жертве в отдельности, чтобы в дальнейшем в рамках этого же спелла производить с ними определенные триггерные манипуляции. Я догадываюсь, что это работа с массивами, и, вероятно, с арифметическими функциями, а также с действием "For each integer A/B/Variable", но, поскольку я безнадежный гуманитарий, мозг мой в этом направлении отказывается углубиться. Пытался сделать так:
Pick every unit in range [250] matching condition [бафф спелла]
Цикл: For each integer A from 1 to 10 do
Цикл: Set variable Aim [Integer A] = Picked unit
И дальше, чтобы апеллировать к юнитам, так:
Событие: Generic unit event (допустим, dies)
Условие: Dying unit = Aim [Integer A]
Действие: поехали
Но ничего не произошло, триггер не сработал. Пока что я не нашел подходящей статьи, так что прошу помощи здесь. Подскажите, пожалуйста, как правильно оформить этот триггер так, чтобы он сработал.

Принятый ответ

Pick every unit in range [250] matching condition [бафф спелла]
Всё что находится внутри данного блока произойдёт столько раз, сколько воинов находится внутри выбранной группы. Обратиться к воину можно через Picked Unit ( GetEnumUnit( ) ). Если Вам нужно добавить событие на смерть именно этих воинов, то прямо здесь внутри блока добавляете их в событие триггера, выбрав их через Picked Unit, или сохраняете их в переменные.

Также можно не сохранять каждого воина, а занести их в отдельную группу. А вместо проверки:
Условие: Dying unit = Aim [Integer A]
проверяете, находится ли воин в группе.
1
21
6 лет назад
Отредактирован scopterectus
1
Pick every unit in range [250] matching condition [бафф спелла]
Всё что находится внутри данного блока произойдёт столько раз, сколько воинов находится внутри выбранной группы. Обратиться к воину можно через Picked Unit ( GetEnumUnit( ) ). Если Вам нужно добавить событие на смерть именно этих воинов, то прямо здесь внутри блока добавляете их в событие триггера, выбрав их через Picked Unit, или сохраняете их в переменные.

Также можно не сохранять каждого воина, а занести их в отдельную группу. А вместо проверки:
Условие: Dying unit = Aim [Integer A]
проверяете, находится ли воин в группе.
Принятый ответ
1
8
6 лет назад
1
Есть два варианта:
  1. Сохранять каждого юнита в глобальную переменную-группу, а уже с ней проводить манипуляции в других триггерах и событиях соответственно. Индексы тогда не нужны.
  2. Сохранять каждого юнита в глобальную переменную массива юнитов. Тогда индекс нужен.
0
3
6 лет назад
Отредактирован Lame Stallion
0
Гениальное просто, как всегда. Спасибо обоим ораторам, способ с добавлением в отряд все решил.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.