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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
Clamp, эмм - сударь, давайте я вам нарежу задач, а вы мне расскажите как сделать не сложнее статическим триггером? Я конечно понимаю что делать как у фрога ради анимации героя спустя 0.5 сек триггер с событием время истекло это глупость, но бывают случаи когда тебе нужно следить за конкретным юнитом особенно тщательно, события урона, смерти, получения приказов.
30
события урона, смерти, получения приказов
Все эти задачи решаются статическими триггерами не сложнее, чем динамическими.
32
Clamp, ну я же говорю, плз пример в студию, то бывают не совсем примитивные задачи, мне нужно точно узнать что юнит умер EVENT_WINGED_DETAH, проверить на полученный урон в 0 ед, а так же проверить приказ без указания цели, таких юнитов может быть одновременно до 10.
DracoL1ch, боятся за производительность, триггер же тяжелее таймера + евенты не удаляются.
Хотя я когда проверял на карте где 30 юнитов херачили друг-друга, плодились и умирали на протяжении 15 минут, проблем чето не заметил, ни с памятью ни с числом хендлов...
32
PT153, ну потому что события вешаются на обьект, к примеру на юнита, а не только на триггер. TriggerRegister*** возвращает triggerevent.
Ну подробнее DracoL1ch, поведает.
22
почему вы волнуете кто убил? если вы можете в хеш заносить последный занесеный игрок если умер узнаем последный игрока удара и узнаем убийцу.. Не ломай комедией!
16
у меня в доте тысячи временных триггеров, никаких проблем не видно. Даже если эти ивенты уходят, на игру они не влияют, так что даже замерять лень.
2
quq_CCCP:
PT153, ну потому что события вешаются на обьект, к примеру на юнита, а не только на триггер. TriggerRegister*** возвращает triggerevent.
Ну подробнее DracoL1ch, поведает.
А можно, пожалуйста, подробнее? Это получается динамические триггеры навешивают события на объекты и если объект постоянный, это руинит производительность? (Например триггер, который каждую секунду обновляет значения в игровой таблице)
А всё, увидел ответ Драколича, спасибо.
26
Gremlin222, по поводу обновления игровой таблицы недавно обсуждали. Карта Survival Chaos каждый раз медленнее загружается, пока игру не перезапустишь. Предположили, что дело в строках, так как они кэшируются и не удалятся. Типа как раз значения в игровой таблице являются строками, которые забивают кэш. Тем не менее в той карте проблемы возникали лишь с временем загрузки, а в самой игре всё нормально.
2
8gabriel8:
Gremlin222, по поводу обновления игровой таблицы недавно обсуждали. Карта Survival Chaos каждый раз медленнее загружается, пока игру не перезапустишь. Предположили, что дело в строках, так как они кэшируются и не удалятся. Типа как раз значения в игровой таблице являются строками, которые забивают кэш. Тем не менее в той карте проблемы возникали лишь с временем загрузки, а в самой игре всё нормально.
Survival chaos долго грузится, потому что там данные в w3u,w3a и так далее, после перевода этих данных в slk таблицы веджитайзером, карта в разы быстрее грузится. Так же в 3.0.1 автор понадобавлял новых лагучих эффектов,которые стоит по хорошему заменить.
Я это к чему, просто в карте LTD x10 на поздних волнах начинает падать ниже критического фпс и я ищу все возможные способы оптимизации этого.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.