Пример способности. Создаётся даммик, который должен стоять определённого время на месте. Запускается таймер с отчётом этого времени. Допустим во время этого таймера (пока время ещё не вышло) убили этого даммика. Можно ли в этом триггере с таймером узнать кто является убивающим юнитом или без события умирает никак не обойтись?

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

Я вижу это так:
При событии юнит умирает, для даммика в хештаблицу записываем его убийцу, а в таймере за тик опрашиваем эту ячейку, если там не null, тогда делаем действий с убийцей
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
5 лет назад
0
никогда не обосновано
Бывает обоснованно, особенно если событие A unit comes withing range. Но для моих целей обработка местности каждую долю секунды вышла лучше.
2
32
5 лет назад
2
Clamp, эмм - сударь, давайте я вам нарежу задач, а вы мне расскажите как сделать не сложнее статическим триггером? Я конечно понимаю что делать как у фрога ради анимации героя спустя 0.5 сек триггер с событием время истекло это глупость, но бывают случаи когда тебе нужно следить за конкретным юнитом особенно тщательно, события урона, смерти, получения приказов.
0
16
5 лет назад
0
А в чем порблема триггера-то?
0
30
5 лет назад
0
события урона, смерти, получения приказов
Все эти задачи решаются статическими триггерами не сложнее, чем динамическими.
0
32
5 лет назад
Отредактирован quq_CCCP
0
Clamp, ну я же говорю, плз пример в студию, то бывают не совсем примитивные задачи, мне нужно точно узнать что юнит умер EVENT_WINGED_DETAH, проверить на полученный урон в 0 ед, а так же проверить приказ без указания цели, таких юнитов может быть одновременно до 10.
DracoL1ch, боятся за производительность, триггер же тяжелее таймера + евенты не удаляются.
Хотя я когда проверял на карте где 30 юнитов херачили друг-друга, плодились и умирали на протяжении 15 минут, проблем чето не заметил, ни с памятью ни с числом хендлов...
0
28
5 лет назад
0
евенты не удаляются
Это ещё почему...
0
32
5 лет назад
0
PT153, ну потому что события вешаются на обьект, к примеру на юнита, а не только на триггер. TriggerRegister*** возвращает triggerevent.
Ну подробнее DracoL1ch, поведает.
0
23
5 лет назад
0
почему вы волнуете кто убил? если вы можете в хеш заносить последный занесеный игрок если умер узнаем последный игрока удара и узнаем убийцу.. Не ломай комедией!
1
16
5 лет назад
1
у меня в доте тысячи временных триггеров, никаких проблем не видно. Даже если эти ивенты уходят, на игру они не влияют, так что даже замерять лень.
0
2
5 лет назад
Отредактирован Gremlin222
0
quq_CCCP:
PT153, ну потому что события вешаются на обьект, к примеру на юнита, а не только на триггер. TriggerRegister*** возвращает triggerevent.
Ну подробнее DracoL1ch, поведает.
А можно, пожалуйста, подробнее? Это получается динамические триггеры навешивают события на объекты и если объект постоянный, это руинит производительность? (Например триггер, который каждую секунду обновляет значения в игровой таблице)
А всё, увидел ответ Драколича, спасибо.
0
26
5 лет назад
0
Gremlin222, по поводу обновления игровой таблицы недавно обсуждали. Карта Survival Chaos каждый раз медленнее загружается, пока игру не перезапустишь. Предположили, что дело в строках, так как они кэшируются и не удалятся. Типа как раз значения в игровой таблице являются строками, которые забивают кэш. Тем не менее в той карте проблемы возникали лишь с временем загрузки, а в самой игре всё нормально.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.