Как передать структуру в действие триггера?

Добавлен
Я создаю систему снарядов. У меня возникли проблемы с "детонацией" снаряда. Чтобы определить, должен ли снаряд взорваться, я динамически регистрирую событие:
call TriggerRegisterUnitInRange(<универсальный триггер>, <конкретный юнит-снаряд>, <радиус>, null)
Данные о снаряде хранятся в структуре: дамми юнит, скорость, урон, радиус и прочее. Когда событие диспетчеризируется, мне нужны все эти данные. Спрашивается, как в действии триггера мне запросить структуру?
Подробнее
Создается снаряд. На нём регистрируется событие:
call TriggerRegisterUnitInRange(<триггер>, <созданный снаряд>, <радиус>, <тут может быть фильтр>)
Когда в обозначенный <радиус> входит юнит, мне нужно произвести ряд действий, для которых мне требуется структура. И как мне эту структуру запросить?
Я вижу только два пути.
Во-первых, это хэш. Однако непонятно, какой ключ нужно использовать для сохранения и как потом загрузить именно ту структуру, которую нужно.
Во-вторых, сохранять созданную структуру в массив. Но опять не понятно, как потом запросить именно ту структуру, которую нужно. Да и с удалением могут возникнуть проблемы.
Возможно я что-то принципиально делаю не так. Просветите меня, пожалуйста.

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

bladget, блин, посмотри как все делают, примеров 100500.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
28
11 лет назад
1
ты все равно используешь таймер и хэш
1
22
11 лет назад
1
Если я буду использовать в таймере ещё и перебор юнитов, при условии что после окончания движения снаряд может продолжать существовать, то нагрузка ощутимо увеличится.
1
28
11 лет назад
1
тогда делай через радиус от тригер юнит с поиском вражеского юнита снаряда
других способов я не вижу да и нагрузка будет значительно меньше чем от перебора в таймере
1
22
11 лет назад
1
Тогда в моём случае мне проще регистрировать это событие в юните-цели. Но я ещё попробую другие варианты.
1
28
11 лет назад
1
можно изменить событие на юнит входит в регион и вместе со снарядом перемещать и регион а потом по хэндлу региона обращаться к снаряду и прочему
1
22
11 лет назад
1
Вообщем, я решил использовать как ключ хэндл триггера, который я динамически создаю. Сначала я хотел использовать хэндл события, но не получилось — не нашел функции, которая возвращала бы событие, кроме регистраторов событий. eventid не подходит, т. к. его значение статично или как-то так. Встает вопрос — что сильнее нагружает процесс: динамические триггеры или множество таймеров с малым периодом? Думаю что первое.
1
28
11 лет назад
1
смотря что в триггерах
хотя учитывая что у тебя и так таймеры есть то лучше наверное не использовать динамические триггеры
0
10
11 лет назад
0
Если это не направленный скилл - взрывайте снаряд в цель-точке способности
0
22
11 лет назад
0
Я стараюсь сделать универсальную и гибкую систему для снарядов, поэтому мне не подходит такое простое решение.
0
28
11 лет назад
0
если снаряды будут находится в пути более 20 сек(при таймере 0,04 сек) то лучше триггеры иначе на таймеры проверку вешать
даже не 20 а 14 то есть если таймер вызывается более 350 раз
можно при касте сделать проверку если расстояние между точкой запуска и точкой куда направлен снаряд больше чем (350*расстояние на которое двигает таймер) то делать триггер иначе проверку на таймер
*вешать проверку на таймер
0
22
11 лет назад
0
Интересная мысль. Я сейчас рассматриваю принципиально другой вариант. Когда закончу, тогда и начну выбирать лучший.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.