Есть метод InitHashtable, но можно ли уничтожить таблицу?
Я не нашел функции DestroyHashtable или типа того, как быть если я создаю таблицу, работаю с ней и хочу избавиться от неё навсегда?
Создание временных таблиц обрекает карту на утечки?
Насколько я знаю, использование массивов внутри структур сильно урезает им максимальное возможное количество экземпляров, потому я собираюсь массивы заменить на хеш-таблицы.

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

FlushParentHashtable, и вообще ждём вас на луа =)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
4
23
5 лет назад
4
мда! ясно с автором!
у меня хеш не 2 ключ а 4 ключа из 2 ключа имеет гибридный ключ от 2 значение ключа вот тебе многомерный массив в хеш
а как делать вы уже читали
x, y + (offset_y * index)
по умолчагние я поставил 1к offset для каждого значение
4
29
5 лет назад
Отредактирован nazarpunk
4
это лимит одновременных живых хеш таблиц или таблиц вообще включая убитые?
После InitHashtable() дороги назад нет, так что 257ой вызов просто не пройдёт.
нас просто в детстве (в 2007 или когда там хештаблицы появились) , запугали, что больше 1 нельзя и так пошло, но уже никто и не вспомнит почему
Насколько я помню из-за того что таблица тяжёлая и с её огромным диапазоном значений делать несколько просто нет смысла. Есть даже наработка которая позволяет иметь одну таблицу на все случаи жизни.
0
27
5 лет назад
0
согласен с pro100master неплохой вариант. в своей наработке использовал похожий принцип с оффсетами ссылка <= жутко не хватало пространства для маневра, пришлось так делать.
2
28
5 лет назад
Отредактирован PT153
2
А ты в курсе что таблица начинает лагать если её захламить одновременно кучей всего? У меня тоже есть одна общая таблица для игры и её НЕЛЬЗЯ засирать такими данными.
Ты её просто не чистил, а чистить нужно.
Да и зачем 100500 хештаблиц? У меня карта с кастомным хп, ресурсами, способностями, баффами, 1 хештаблица и всё работает.
0
23
5 лет назад
0
PT153, автор хочет чтобы структура имел клон но данных заполняли рандомно, но выше ответ уже дали =)
5
16
5 лет назад
5
255 хт максимум, если ты не можешь впихнуть в БЕЗЛИМИТЫЙ массив, коей хт и является, данные, это чисто твои головные проблемы с неспособностью придумать алгоритм. Ну используй 10 хт для разных данных по одному ключу юнита, ну 255 даже, дроби хендлы, да десятки вариаций, помимо очевидного "у автора проблемы"
0
29
5 лет назад
Отредактирован Волчачка
0
Есть ещё вариант, который использует опр. диапазон который обозначают как offset, в данном случае для юнитов это 0x100000 или 1048576, где arrid = handleid - offset(0x100000), но в его точности я немного сомневаюсь. Но для обновлённых массивов более менее подойдёт.
Однако, ничего не мешает сделать спец. счётчик, + Custom Value(он же UnitUserData) и задействовать обычные массивы.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.