Привязываю к юниту что-то через хеш-таблицу, например:
	call SaveInteger( hashtable, GetHandleId( whichUnit ), 0, integer )
Но привязываю, только, если ранее к этому юниту не привязывалось, то есть:
	if not HaveSavedInteger( hashtable, GetHandleId( whichUnit ), 0 ) then
		call SaveInteger( hashtable, GetHandleId( whichUnit ), 0, integer )
	endif
Так вот, проблема вот в чем: на карте создаётся огромное количество юнитов и к ним крепятся данные, как написано выше. Эти юниты удаляются после смерти и их хендл освобождается, для другого нового созданного юнита. И в итоге, я к юниту не могу что-либо крепить, потому что проверка выдаёт, что в хеш-таблице по данному ключу уже что-то сохранено, потому что новый юнит занял хендл старого юнита. Как это обойти?

вариант №1 - не нулить переменные, оставляя утечки номеров хендлов. это безопасно, да, если знаешь, что делаешь.
№2 - ловить UNIT_DEATH и чистить за ним
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
biridius, но тогда я потеряю абсолютно всё, что связано с данным юнитом.
22
отдельно не стереть
можно сохранять туда же boolean true, а при гибели false, и проверять это вместо HaveStored
21
biridius, нашел еще такую функцию:
	native RemoveSavedInteger takes hashtable table, integer parentKey, integer childKey returns nothing
думаю, она идеально сюда подходит.
22
хендл не бывает копия если он умер хендла уже нет теперь уже будет возврашать 0 поэтому ты получаеш 0 много таких удаленых... Думай головой
2 пункта от Кет: 1.2.1 (безграмотность) без знаков препинания каменты понять очень сложно
21
pro100master, лучше бы не отвечал, если не знаешь, что говоришь...((
21
pro100master, когда объект удаляется его хендлайди освобождается и его место может занять другой объект!
28
pro100master, ты хоть знаешь что такое хэндл?
и что именно возвращает функция GetHandleId
ScopteRectuS:
biridius, нашел еще такую функцию:
	native RemoveSavedInteger takes hashtable table, integer parentKey, integer childKey returns nothing
думаю, она идеально сюда подходит.
если работает то закрывай вопрос
22
nvc123, знаю его как и машиный код, удаленый юнит который польностью удаляе из памяти и знать черех хеш самый бредовый...
2 пункта от Кет: 1.2.1 (безграмотность)
2 комментария удалено
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.