Программы
Предназначение:
Работа с файлами
Этот мод позволяет играть по сети в карты, размер которых превышает ограничение в 8 МБ.
При использовании других модов, игра может вылететь при показе лобби, загрузке игры и открытии меню заданий с таким вот окном:
Также, бывает такое, что несмотря на наличие уже скачаного экземпляра карты, при заходе в лобби напротив никнейма отображает число с прогресом скачивания, которое не меняется сколько не жди.
Исходники прилагаются.

Почему это происходит?

Краш

Карта может содержать цифровую подпись, для проверки которой варкрафт расчитывает хэш-сумму всего файла карты. Обычно, при таких операциях считывают блоки по несколько мегабайт и хешируют их, но разработчики решили не мудрить, а просто загрузить файл карты в память одним куском, независимо от её веса — хоть гигабайты готовы занять на это действие, что и приводит к аварийному завершению программы из-за нехватки памяти.
Этот мод решает проблему: он запрещает проверять подпись у карт, размер которых превышает ограничение в 8 МБ. Конечно, если найдется карта от разработчиков, имеющая такой размер, то её подпись будет проигнорирована, но я таких не видел.

Бесконечное скачивание

Разработчики допустили ошибку в коде игры, из-за чего при расчетах происходит переполнение и результат получается неверный. Данный мод использует 64-битную арифметику, что исправляет положение.

Применение

Достаточно лишь извлечь MIX-файл в папку с игрой, после чего можно безопасно играть.
`
LOADING AD...
22
Спасибо! Давно ждал это решение!

Отмечу. Что вылет при нажатии F9 на картах с большим весом, как правило, происходит после того, как игра была свернута-развернута. Сразу после запуска этот баг не воспроизводится стабильно.

А сразу ссылку на .mix не получится через xgm дать?
19
Latest news!
  • Добавил объяснение причин проблемы.
  • Поменял расширение файла с DLL на MIX.
22
Похоже на то, что этот баг стабильно воспроизводиться только с модифицированным для онлайн хоста карт >8 МБ game.dll. На чистом клиенте у меня не получилось воспроизвести его.
Replies (4)
19
makkad, конечно, ведь выделить 8 МБ оперативной памяти — не проблема. А вот если потребуется цельный кусок в сотни мегабайт, то вероятность провала значительно повышается.
22
IceFog, так речь про одиночную игру. Там можно запускать карты весом в сотни мегабайт. Я имел ввиду что запустил такую карту с чистым game.dll и проблема не выявилась.
Если запускать карты в варкрафте 1.26 с модифицированным game.dll, то вылет при нажатии F9 происходит.
19
makkad, когда я запускаю свою тестовую карту весом 774 МБ и, после того как она создает 1 500 000 объектов типа location, открываю меню заданий, то со 100% вероятностью получаю краш.
Варик был чистый, никаких модов или модифицированых game.dll. При попытке создать игру в локалке, игра отказала с сообщением: "Слишком большой размер файла. Выберите другую карту.".
22
IceFog, да, такой результат ожидаемый. Но странно, что модификация game.dll для расширения лимита веса карт в локальной сети, уменьшает толерантность к этому багу. Возможно, тут есть что-нибудь любопытное.
Хотя может просто странное совпадение.
Я проверял на карте весом 250 МБ. С модифицированным game.dll вылетает после сворачивания-разворачивания окна. С чистым game.dll вылет не смог воспроизвести при данной конфигурации.
19
A new version is out! Scroll to the resource
  • Переименовал мод в "big_map_crash_fix".
  • Теперь исправляет вылет не только при открытии меню заданий, но также и при заходе в лобби и при загрузке сохранений.
Если кто-то качал мод после обновления ресурса, но до написания этого комментария, то лучше перекачайте, потому что по началу я залил сломаную версию.
19
Latest news!
Пускай я и залил новую версию, при нажатии на кнопку "Скачать" всё равно выдает предыдущую версию с таким крашем:
Пока я не разобрался с проблемой, предлагаю качать обходным путем:
Replies (4)
38
IceFog, я не знаю, как у тебя получилось вставить ссылку на temp, но она скоро потеряется
19
Эту ссылку можно получить в списке файлов меню редактирования.
На всякий случай залил архив с другим именем. Не знаю, что там за проблемы были с кешем браузера или клаудфлаера, но надеюсь, что теперь будет качаться актуальная версия.
3
IceFog, привет! Ссылка не работает, а по кнопке скачать все ещё выдает dll файл. Может зальёте на другой файлообменник (гугл диск, например) и скинете ссылку сюда? Буду очень признателен!
19
John_Mori, у тебя скачивался файл big_map_crash_fix_v2.zip? Если да, то это и есть исправленая версия, а то, что внутри был .dll файл, так я забыл переименовать его в .mix перед заливкой на сайт.
Теперь в архиве снова .mix файл, так что можешь перекачать его или самостоятельно поменять расширение.
22
А есть в теории возможность заодно добавить в этот mix поддержку хоста карт больше 8 МБ по локальной сети аналогично как здесь?
И исправляет ли этот mix иногда встречающийся баг с "бесконечной загрузкой" больших карт в лобби сетевой игры? (это когда у подключающийся к хосту игроков начинается загрузка карты, которая останавливается в самом начале, даже если у них уже есть заранее скаченный файл хостуемой карты).
Было бы удобно иметь единое решение со всеми проблемами от запуска больших карт в одном файлике, не боясь что разные решения будут конфликтовать друг с другом.
Replies (1)
19
makkad, с отключением лимита на размер этот мод не должен конфликтовать. Да и не люблю я, когда вместо модульной системы лепят монолит. Хотя в данном случае объединение может быть уместно.
Насчёт бага с загрузкой, я тоже встречал подобное, но пока не находил времени на выяснение причины.
19
A new version is out! Scroll to the resource
  • Исправил ошибку с зависающим счетчиком процента скачивания карты в лобби, возникающую из-за арифметического переполнения.
19
A new version is out! Scroll to the resource
Объединил мод на устранение лимита размера карты и мод на исправление появляющихся в результате работы первого багов.
Replies (1)
15
IceFog, благодарствую, будем пробовать. Давно хотелось с друзьями поиграть в замок, авось теперь получится!
23
Интересно, а технически возможно ли сделать микс, который позволяет запускать карту с загруженными в неё неподходящими для карты файлами, например terrain slk, water slk, war3skins txt, итп. Просто я так пытался сделать, засунуть и запустить, не работает почему-то. Всё равно игра читает файлы из архива, а не карты
Replies (2)
19
EugeAl, не понимаю, при чем здесь мод на снятие лимита?
А сделать можно что угодно, если готов потратить на это достаточно сил.
Вероятно, игра загружает эти файлы до запуска карты, так что импорт не работает.
Нужно перезагрузить базу данных после открытия карты.
Можешь воспользоваться инструментами для реверсинга (IDA, Hydra) для изучения устройства этой области игры и модифицировать её соответствующим образом.
23
IceFog, ну мод на лимит тут не причём. Это так, к слову спросил. Раз ты шаришь во внутренностях движка, значит знаешь ответ.
А, ну если до карты загружается, то да, геморрой получится. Ладно, спасибо)
To leave a comment please sign in to the site.