Этот мод позволяет играть по сети в карты, размер которых превышает ограничение в 8 МБ.
При использовании других модов, игра может вылететь при показе лобби, загрузке игры и открытии меню заданий с таким вот окном:
При использовании других модов, игра может вылететь при показе лобби, загрузке игры и открытии меню заданий с таким вот окном:
Также, бывает такое, что несмотря на наличие уже скачаного экземпляра карты, при заходе в лобби напротив никнейма отображает число с прогресом скачивания, которое не меняется сколько не жди.
Исходники прилагаются.
Почему это происходит?
Краш
Карта может содержать цифровую подпись, для проверки которой варкрафт расчитывает хэш-сумму всего файла карты. Обычно, при таких операциях считывают блоки по несколько мегабайт и хешируют их, но разработчики решили не мудрить, а просто загрузить файл карты в память одним куском, независимо от её веса — хоть гигабайты готовы занять на это действие, что и приводит к аварийному завершению программы из-за нехватки памяти.
Этот мод решает проблему: он запрещает проверять подпись у карт, размер которых превышает ограничение в 8 МБ. Конечно, если найдется карта от разработчиков, имеющая такой размер, то её подпись будет проигнорирована, но я таких не видел.
Бесконечное скачивание
Разработчики допустили ошибку в коде игры, из-за чего при расчетах происходит переполнение и результат получается неверный. Данный мод использует 64-битную арифметику, что исправляет положение.
Применение
Достаточно лишь извлечь MIX-файл в папку с игрой, после чего можно безопасно играть.
Ред. makkad
Ред. IceFog
Варик был чистый, никаких модов или модифицированых game.dll. При попытке создать игру в локалке, игра отказала с сообщением: "Слишком большой размер файла. Выберите другую карту.".
Ред. makkad
Ред. IceFog
Ред. IceFog
Ред. IceFog
Теперь в архиве снова .mix файл, так что можешь перекачать его или самостоятельно поменять расширение.
Ред. makkad
Ред. IceFog
А сделать можно что угодно, если готов потратить на это достаточно сил.
Вероятно, игра загружает эти файлы до запуска карты, так что импорт не работает.
Нужно перезагрузить базу данных после открытия карты.