После разложения юнита его хэндл освобождается с хэш-таблицы?
Может ли юнит, которые появился занять хэндл юнита, который был разложен?

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
KaneThaumaturge, если ты удаляешь объект наследующий тип handle из карты, его id освобождается (правда, не мгновенно, а когда до него доберется сборшик мусора). После этого этот же id может быть использован для любого другого хендла. На этом же принципе работают и счетчики хендлов.
20
native FlushParentHashtable takes hashtable table returns nothing
native FlushChildHashtable takes hashtable table, integer parentKey returns nothing
Это очистка хэш таблицы, а то очистка по ключу?
PT153:
native HaveSavedInteger takes hashtable table, integer parentKey, integer childKey returns boolean
native HaveSavedReal takes hashtable table, integer parentKey, integer childKey returns boolean
native HaveSavedBoolean takes hashtable table, integer parentKey, integer childKey returns boolean
native HaveSavedString takes hashtable table, integer parentKey, integer childKey returns boolean
native HaveSavedHandle takes hashtable table, integer parentKey, integer childKey returns boolean
А это что?
21
KaneThaumaturge, пожалуйста используй поиск. В своей статье Ханабиши весьма доступно это расписал.
28
А это что?
Как у тебя с английским?
Have значит владеть, Saved значит сохранённый, эти функции отвечают на вопрос, а сохранено ли что-нибудь в такой-то в таблице по таким-то ключам.
KaneThaumaturge:
Это очистка хэш таблицы, а то очистка по ключу?
Да, первая чистит всю таблицу, вторая чистит только те ячейки в таблице, что имеют указанный parent ключ.
20
PT153, да, я уже понял, с английским все туго. Хоть я и знаю отдельно значение слов Have, Saved, String, но мне почему-то просто лень переводить. Я посмотрел на аргументы и уже понял, спасибо.
Буду вместо GetHandleId использовать UnitUserData, но очищать все буду. Всем спасибо.
20
quq_CCCP, ну UnitUserData повторяться не будет, хоть я и буду очищать хэштаблицу. Ну не знаю даже. (предрассудки)
33
а можно тут свой вопрос задать, допустим я в хештаблице записал лишь интежер данные в ячейки 1 и 2, просто я всегда использовал FlushChildHeshtable вместо RemoveSavedInteger, сильно будет ли разница? останутся ли утечки при RemoveSavedInteger, (я знаю что другие ячейки не использую) да и юнит будут вообще удалён вскоре...
16
если можешь чистить через FlushChildHeshtable , то чисти через неё, RemoveSaved* не уничтожает ветку хештаблицы, даже если это была единственная запись в неё
33
DracoL1ch, ну значит я всё правильно делал, я просто не помню даже почему так делаю, столько времени прошло (лет 7-8 после первого знакомства с хештаблицами), и просто на каком то автопилоте всё делается
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.