Я хочу удалить юнита из группы после смерти. Но его могут воскресить. Можно ли как-то отследить момент, когда воскресить юнита станет невозможным? Или каким ещё образом можно это реализовать?

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

В UjAPI есть специально обученное событие:
EVENT_PLAYER_UNIT_DECAY_FINISHED
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
2 недели назад
0
Периодично проверять тип юнита, если GetUnitTypeId вернёт 0 - его больше не существует
1
29
2 недели назад
1
В UjAPI есть специально обученное событие:
EVENT_PLAYER_UNIT_DECAY_FINISHED
Принятый ответ
0
23
2 недели назад
Отредактирован konvan5
0
Ну или создавать свою кастомную систему слежения за разложением. К примеру либо всем поставить время разложения = 5 сек, ловить момент смерти и через 5 сек делай что хочешь с трупом (если юнит все еще мертв, труп не украли некры и тд). Либо по группам раскидать юнитов с разным временем разложения и так-же ловить их смерти но ставить разные таймеры ожидания после смерти.
1
27
2 недели назад
Отредактирован MpW
1
Была одна наработка как отследить реинкарнацию/трансформацию (морф)/и конец разложения (удаление) ссылка
Есть способности вроде укрыться щитом Adef. И в игре есть занимательная особенность: при смерти юниту зачем то отдают приказ undefend. Возможна, связано с моделью, я не знаю, зачем игра отдает приказ. Но замечано не только при смерти, но и при трансформации (морфе), даже, разлагающему трупу (юниту) перед удалением отдает приказ undefend. По моему мнению, это позволяет юниту убирать щит, переключить из активного режима в выключенный, наверняка какая нибудь защита от багов. Абилка Adef просто универсальна в отлове, об этом оаишу ниже.
Что же там с реинкарнацией? В чем проблема реинкарнации?
При наличии абилки реинкарнации "событие - юнит умирает" не засчитывало, что юнит умер, это было проблемой отследить. Но отследить можно было с помощью Adef и отловом приказа "undefend", но с задержкой таймером через 0.00 сек чекаем мертв ли он
бесполезная инфа
К слову немного информации: Крест реинкарнации героя (труп) это типа крест, который можно выделить, и можно отдавать приказы defend/undefend, таким образом, скилл может переходить в включенное состояние, и выключенное. Но кресту в здравом уме никто же не отдаст приказ undefend, но такие картоделы были. Удивительно, что обычные трупы (не говорю про геройские кресты, которые можно выделить на карте) тоже могу получать приказы, правда, от специальных абил вроде Adef.
Насчет морфа, как отследить трансформацию юнита?
Такого события тоже в игре нету, можно было отслеживать через "юнит приводит способность в действие", либо "юнит получает приказ", или другими подручными средствами. Но эти все проверки ссылались на один конкретный скилл/морф, мб никому не составит это проблему (даже для меня). а вот если у кого-то сотня морфов происходит, при чем от разных скиллов, как тут узнать, что морф произошел? Все делается также как и в реинкарнации, но с некоторым отличием. При морфе игра юниту тоже отдает приказ undefend, убрать щит. Зачем? Тоже не понятно. Хитрый автор системы сделал одну фишку, можно вручить какую нибудь "временную абилку".
Зачем вручать временную абилку? Как это поможет отследить морф?
При морфе юнит перевоплощается из одного в другого, меняется, но и может УТРАЧИВАТЬ ЭФФЕКТЫ, АБИЛКИ. Если в игре вы давали ее кодом, то при морфе эта абилка исчезала, и уже не сохранялась. Надеюсь объяснил. В чем же отличие системы реинкарнации от этой? Здесь мы даем какую нибудь "временную абилку" (можно пустышку), тк она не является пермаментной, и это позволяло фиксировать то что юнит трансформировался. При получении приказа undefend таймером через 0.00 сек чекаем наличие временной абилки, осталась ли она
Насчет удаления юнита из игры. Как отследить конец разложения, и удаления юнита. И что юнит окончательно разложился и удалится.
Можно просто использовать аналогичную систему реинкарнации, но с проверкой, что юнит уничтожен.
GetUnitTypeId == 0 //его больше не существует
Несмотря на то, что юнит мертв (разлагающий труп), зачем то игра перед удалением отдает ему приказ undefend, будто говорит ему : "дорогой юнит, убери пожалуйста щит от всяких багов перед удалением. Приятной игры". Тут точно также как и с реинкарнацией, только проверяем, что юнит удален. Таймером через 0.00 сек (через 0.00 сек будет удален) после получения приказа
Ответы (2)
0
29
2 недели назад
0
MpW, чтот я не понял. Юнит умер и его трупик начинает валяться и разлагаться. На полпути разложения прибегает паладин и воскрешает его. Как это всё отследить?
0
27
2 недели назад
Отредактирован MpW
0
nazarpunk, когда труп разложился, окончательно, т.е. время истекло, ему игра отдает приказ undefend. А через 0.00 сек он уже окончательно удален что не понятно? Его уже нет в игре. Воскресить ничего не может трупа то нет.
Смотрел наработку
Воскрешение как раз можно отследить. Тем более паладоса. Не понимаю в чем проблема. Вроде через как ивент призыва.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.