Приветствую)
Возник очередной сложный вопрос. Известно, что после смерти боевая единица не удаляется из памяти игры. Это происходит лишь после ее полного разложения. Функцию RemoveUnit, пока что, во внимание не берем. Когда разложение боевой единицы подходит к концу (и она не герой), то она удаляется с памяти игры и освобождает handle.
Вопрос: Как уловить данный момент очищения handle боевой единицы (учитывая то, что он может быть использован после под другой объект)?
P. S.: Как уловить момент удаления через функцию RemoveUnit? (вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит)

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

вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит
Даже интересно, почему?
Как уловить момент очищения handle боевой единицы?
Как вариант - периодическая проверка координат юнита по его хендлу, стали равны 0.0 / 0.0 - юнит был удалён.
Как уловить момент удаления через функцию RemoveUnit?
Вызвать нужную функцию сразу после вызова RemoveUnit, очевидно.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
7 лет назад
0
DracoL1ch, ещё вроде некоторые действия перезапускают таймер разложения
0
16
7 лет назад
0
Запарно было и свою систему баунти писать, и таблицы колбеков составлять. Зато месяц мучений - и регулируй что хочешь и как хочешь. Причем вся сложность сугубо в таблицах, а не в коде.
0
26
7 лет назад
0
Непонятно только зачем это нужно. Что даст для геймплея знание того, что юнит удалился?
А вообще Clamp вроде прав, и при попытке сделать GetUnitЧтототам на удаленном юните будут возвращаться нули.
0
13
7 лет назад
0
Hanabishi, это сейчас необходимо для одной незамысловатой системы, которая способна рассчитать количество объектов по их типу (бывает очень полезно при debug'е).С остальными все бы ничего, считаются, а вот как организовать вычитание из общего числа боевых единиц полностью разложившихся - пока что рассуждаю с учетом полученной информации.
0
30
7 лет назад
0
Пушистый, у тебя в карте используется воскрешение или гальванизация?
Алсо количество объектов считают так: объект появился - добавили +1 к счётчику, объект умер - вычли -1 из счётчика, а не странными костылями.
0
13
7 лет назад
0
Clamp, ну, там еще таймеры и группы считает)
3
30
7 лет назад
3
Пушистый, если воскрешение или гальванизацию не используешь, то не-героев можешь смело вычёркивать в момент смерти, а не момент разложения, фактической разницы для твоих целей не будет никакой.
0
16
7 лет назад
0
Clamp:
Пушистый, если воскрешение или гальванизацию не используешь, то не-героев можешь смело вычёркивать в момент смерти, а не момент разложения, фактической разницы для твоих целей не будет никакой.
Кстати, почему "Воскрешение" воскрешает враждебных юнитов враждебными, а "Гальванизация" заряжает всех за твою сторону? Это же нелогично.
0
28
7 лет назад
0
Naadir, воскрешение это светлая магия и она просто воскрешает мёртвых
гальванизация же превращает мёртвых в особый вид нежити попутно промывая им мозги
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.