Приветствую)
Возник очередной сложный вопрос. Известно, что после смерти боевая единица не удаляется из памяти игры. Это происходит лишь после ее полного разложения. Функцию RemoveUnit, пока что, во внимание не берем. Когда разложение боевой единицы подходит к концу (и она не герой), то она удаляется с памяти игры и освобождает handle.
Вопрос: Как уловить данный момент очищения handle боевой единицы (учитывая то, что он может быть использован после под другой объект)?
P. S.: Как уловить момент удаления через функцию RemoveUnit? (вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит)
Возник очередной сложный вопрос. Известно, что после смерти боевая единица не удаляется из памяти игры. Это происходит лишь после ее полного разложения. Функцию RemoveUnit, пока что, во внимание не берем. Когда разложение боевой единицы подходит к концу (и она не герой), то она удаляется с памяти игры и освобождает handle.
Вопрос: Как уловить данный момент очищения handle боевой единицы (учитывая то, что он может быть использован после под другой объект)?
P. S.: Как уловить момент удаления через функцию RemoveUnit? (вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит)
Принятый ответ
Даже интересно, почему?вариант через define native-функции, то есть ее подмена для последующего отлова как события изменения реальной переменной, не совсем подходит
Как вариант - периодическая проверка координат юнита по его хендлу, стали равны 0.0 / 0.0 - юнит был удалён.Как уловить момент очищения handle боевой единицы?
Вызвать нужную функцию сразу после вызова RemoveUnit, очевидно.Как уловить момент удаления через функцию RemoveUnit?
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Clamp
Лич вроде писал что хендлы по второму кругу идут очень,очень редко.
Отследить удаление из таблицы хендлов думаю можно только погрузкой через мемхак какой-то либы, которая бы добавила событие на это дело.
так же следует помнить что хендл не будет освобождён если есть ссылка на этого юнита
хз зачем это может понадобится
создавать таймер и по его истечению юнит разложился и исчез, готово
А вообще Clamp вроде прав, и при попытке сделать GetUnitЧтототам на удаленном юните будут возвращаться нули.