16

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

обожаю комментарии "надо обновить железо". Ну так задонать челу? советов и так хватает, не от хорошей жизни на 4гб сидят
16

» WarCraft 3 / Выделение памяти в хеш-таблице

чел, который ковырял таблицы, остался недоволен их качеством, ну и то, что ключи делаются по битовому (userKey & parentUniqueKey) вместо реальной хеш-функции, что повышает шанс коллизий в теории. Но я сам ни разу не сталкивался с коллизиями, хз
16

» WarCraft 3 / Выделение памяти в хеш-таблице

стоп, а каким образом кол-во операций, ограниченных виртуалкой жасса, говорит о трудозатратах перебора внутренних списков? JASS OPlimit считает только кол-во операций байт-кода, скомпилиированного из JASS-кода, внутренняя кухня никак не влияет - будь то тяжеленная функция создания юнита или крохотная функция установки владельца предмету, они займут 10 и 5 байт-слов соответственно, однако производительность второй не в пример выше, потому что операций там - просто сдвиг битов.
я глянул методы Load*() и вижу, что там идет перебор списка по листьям (чайлд) ветки (родителю) дерева, пока не встретится элемент с нужным ID ячейки. так что чем больше данных в таблице, тем дольше перебор
16

» WarCraft 3 / Выделение памяти в хеш-таблице

в моих тестах было - чем больше данных в таблице, тем дольше они ищутся, т.к. списковый перебор, не? иначе объясни устройтво, плез Vlod:
16

» WarCraft 3 / Выделение памяти в хеш-таблице

Точно помню, что хештаблица варкрафта не эквивалентна настоящей, там даже по ключам ограничения есть, но деталей не помню, для кодера жасс это неважно.
Мы не экономим парентов, мы стараемся, чтобы корзин для поиска было меньше, чем яиц в них. На вскидку это связный список, а не массив, но я не эксперт в реализациях, да и исходников не имею
16

» WarCraft 3 / Выделение памяти в хеш-таблице

да, массив постоянно будет делать reAllocMem , если текущий размер окажется мельче, чем номер ячейки. Поэтому, если массив будет часто писаться с инкрементом, то выгоднее сперва прописать в последнее допустимое значение (8191 для 26 патча) типа MyArray[8191]=0
чисто чтобы его по памяти не возили туда-сюда каждые X значений (не смотрел, сколько изначально выделяется)
я вот у себя пофиксил такую же байду с таблицей строк. игра выделяет по 16 ячеек под строки, а у меня в доте они генерируются десятками в секунду. Каждую секунду игра делала ре-аллок памяти, а к середине игры там уже несколько мб таблица туда-сюда ездила. Сделал аллок в разы больше - и таблица всего 2 раза переедет за 40 минут игры максимум. Экономия тактов налицо.
Хеш-таблицы вообще не являются массивами, гугл в помощь, поэтому там об этом думать не стоит. Стоит думать лучше о том, чтобы первичных (родительских) ключей было меньше, чем вторичных, чисто исходя из того, что в этом случае перебор по таблице окажется быстрее
16

» WarCraft 3 / Ошибка при загрузке сохраненной игры из за [HashTable]

ничего интересного, аргумент передается супер-большой, который должен быть индексом (?) массива
16

» WarCraft 3 / Откуда могла взяться погрешность?

а у меня есть дота и лод, где я это испытывал еще несколько лет назад, и мессаги, отправленные в общий чат через GetLocalPlayer() не отображались. потому что в реплее очень специфично определяется локал плеер. в моем случае надежность бждебага неоспорима, а про оплимит я давным давно забыл, и вам советую
16

» WarCraft 3 / Откуда могла взяться погрешность?

показ текстов через GetLocalPlayer() не отображается в реплее или работает через раз, поэтому используй только если любишь боль. Ничего лучше bjdebug не придумали, и страшного в нём тоже ничего нет

юниты спавнятся на свободных точках, а не строго там, где ты им сказал. юзай SetUnitX/Y после создания, чтобы поставить на нужную точку
16

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

так они и не собираются выпускать что-то материальное под твоим лейблом, а вот карту могут взять себе и дорабатывать на своё усмотрение, а тебе спасибо за автоматическое разрешение на это
16

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

всем похер, что вы сделаете никому не нужную копию карты из СК2
но если вдруг она наберет популярность, вас выгонят с батлнета, и будут банить карты по хешу, если те будут попадаться на глаза. никто намеренно не будет их искать, само собой.
указано, что любая карта будет собственностью близзард. создал карту по своему "разрешению" = передал права на это разрешение близзардам. Им, конечно, похер, но как факт.
16

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Много хочешь
еще на пункте 3 ты должен был понять, где и кем тебя видят близзард
16

» WarCraft 3 / Инвентарь на +6 слотов

просто с делай 1 слот, куда кладется итем, дает бонусы и выбрасывается
16

» WarCraft 3 / Инвентарь на +6 слотов

я ваще не понимаю, в каком ты мире живешь.
у тебя не исходники, у тебя работа с текущей либой игры, и никаких объхектов нет, кроме тех, что создаешь ты. и логика инвентаря тоже уже залинейнена вся в либу игры. никаких у тебя объектов нет. ты должен всё самостоятельно пофиксить во всех местах, где обращаются к твоему измененному месту
16

» WarCraft 3 / Инвентарь на +6 слотов

ты щас о чем? к этому классу обращаются из разных мест и ожидают строго 6 объектов в списке, т.е. все циклы задействованные нужно обновить - изменить все 100500 смежных функций
16

» WarCraft 3 / Инвентарь на +6 слотов

даже с ковырянием устанешь - мало заставить движок выделить память под еще 6 предметов, надо еще научить все 100500 функций с ними взаимодействовать