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

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

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

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