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

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

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