John_Mori, у тебя скачивался файл big_map_crash_fix_v2.zip? Если да, то это и есть исправленая версия, а то, что внутри был .dll файл, так я забыл переименовать его в .mix перед заливкой на сайт.
Теперь в архиве снова .mix файл, так что можешь перекачать его или самостоятельно поменять расширение.
makkad, с отключением лимита на размер этот мод не должен конфликтовать. Да и не люблю я, когда вместо модульной системы лепят монолит. Хотя в данном случае объединение может быть уместно.
Насчёт бага с загрузкой, я тоже встречал подобное, но пока не находил времени на выяснение причины.
Another Warcraf, так открой архив карты в Ladik MPQ Editor и распакуй все файлы.
Перед этим запусти встроеный в него сканер, чтобы имена файлов нашел какие сможет.
Но имена можно и самому будет придумать для извлеченых моделей и текстур, проглядев их в mdlvis/BLPlab.
Эту ссылку можно получить в списке файлов меню редактирования.
На всякий случай залил архив с другим именем. Не знаю, что там за проблемы были с кешем браузера или клаудфлаера, но надеюсь, что теперь будет качаться актуальная версия.
Компьютер 1: last-modified: Tue, 14 May 2024 16:42:30 GMT
Компьютер 2: last-modified: Wed, 15 May, 2024 09:46:00 GMT
Наверное, если каждый раз заливать файл с новым именем, то будет качаться актуальная версия, но это костыль для обхода сломаного кэша.
Зашел в браузер на первом компьютере с другого аккаунта и last-modified стал показывать свежую дату.
Если что, я сижу на linux с LibreWolf (Firefox).
Обновил страницу без кэша (через shift + клик по кнопке обновления) и дата файла на первом компьютере тоже обновилась.
Вопрос в том, почему страница в кэше не обновилась?
Когда я запрашиваю страницу xgm.guru/p/wc3/big-map-crash-fix, то в заголовках ответа есть "cache-control: private", но не указана дата последнего обновления.
Сейчас в комментарии тоже баг появился: сначала я залил неправильную картинку, так что перезалил её с тем же именем, но на предпросмотре отображается всё еще старая. Если кликнуть по ней, то полная версия правильная.
Jack-of-shadow, в идеале, я хотел бы сделать график, на котором отображается количество объектов в разное время, а также количество созданий/уничтожений. Ведь можно создать миллион точек и сразу удалить их, что может быть не замечено программой, а лагать будет.
makkad, когда я запускаю свою тестовую карту весом 774 МБ и, после того как она создает 1 500 000 объектов типа location, открываю меню заданий, то со 100% вероятностью получаю краш.
Варик был чистый, никаких модов или модифицированых game.dll. При попытке создать игру в локалке, игра отказала с сообщением: "Слишком большой размер файла. Выберите другую карту.".
makkad, конечно, ведь выделить 8 МБ оперативной памяти — не проблема. А вот если потребуется цельный кусок в сотни мегабайт, то вероятность провала значительно повышается.
Краш произошел при попытке прочитать память по адресу 0x372, который, очевидно, не является корректным указателем, что и привело к аварийному завершению работы программы.
Инструкция процессора, которая пыталась выполнить эту операцию, расположена по адресу 0x66DDCA5B, который находится в пределах MSVCR80.dll (диапазон 0x66D80000 - 0x66E1B000), содержащей функции стандартной библиотеки языка C.
Также, в стеке мелькают адреса связаных с графикой библиотек: nvd3dum.dll (драйвер для видеокарты NVDIA?), d3d8.dll (DirectX).
Возможно, проблема с видеокартой или драйверами. Еще можно заподозрить модели и текстуры или неправильные визуальные настройки какого-нибудь объекта в редакторе объектов или вызов какой-нибудь нативки, влияющей на визульную составляющую, с неправильными аргументами.
Если ты скинешь свои версии библиотек, которые использовались в момент краша игры, то может быть получится выяснить что-нибудь еще.
WilliamBz, описание и правда было немногословным. Добавил больше информации в описание.
Я слышал, что в новых версиях варкрафта близарды убрали storm.dll, от которого зависит mix-архив и, как следствие, работать оно врядли будет.
Что на счет вирусов, то просто глянь на коментарий выше с жертвой их паранойи. Надо бы выложить исходники, чтобы он мог указать, где же там троян.
В редакторе ничего указывать не нужно, просто помести mix в папку с игрой и его файлы станут доступны картам.
По сети с ним можно играть, но те, у кого он будет отсутствовать, не смогут увидеть новых моделей/текстур/музыки и всего прочего, что ты туда добавишь.
Варкрафт позволяет скачать карту в лобби, но дополнительные архивы придется качать отдельно.
JackFastGame, я недавно выкладывал исходники интерпретатора JASS-байткода, ты можешь скачать Lazarus IDE и скомпилировать их. Тебе нужно добавить логирование инструкций вызова функций.
quq_CCCP, я понял о чем ты, видел как-то такую "наработку", но она не будет работать, ведь без разницы, хост ты или обычный игрок — данные будут обработаны всеми в одно и тоже игровое время.
по геймкешу и зажержке синха, без мемхака, способ не очень надежный.
Скорее, совершенно нерабочий, ведь обработка сетевых команд (синк кэша, приказ юнитам...) и симуляция игрового мира у всех игроков проходит одинаково, а иначе была бы десинхронизация.
Если копирование функцией SubString происходит начиная с первого байта, а хэши входной строки и результата совпадают, то может быть возвращена изначально переданая строка, вместо ожидаемой подстроки.
Разработчик функции решил не создавать копию подстроки в памяти, а вместо этого временно поставить нуль-терминатор посреди оригинальной строки, передать указатель на неё в конструктор нового объекта-строки, после чего вернуть буфер в исходный вид.
Но память, которую он временно модифицировал, принадлежала менеджеру строк и её нельзя было трогать
Проблема усугубляется тем, что StringHash обрабатывает только первые 1023 байта, так что любые две строки, учитываемый регион которых совпадает, имеют одинаковый хэш, что увеличивает вероятность бага на больших строках.
Запись строки в переменную не повлияла на работоспособность.
Так же, я заглянул в нативки StringLength и SubString, но не обнаружил в них ограничений на длину строк.
Вместо этого, я обнаружил проблему при склейке строк оператором "+".
легендарный код
Третий параметр функций Copy и Cat отвечает за размер целевого буфера.
Локальная переменная занимает 4100 байт в стеке и вряд ли уместит в себе 2 гигабайта.
Отредактирован IceFog
» WarCraft 3 / Исправление вылета на больших картах
Теперь в архиве снова .mix файл, так что можешь перекачать его или самостоятельно поменять расширение.
» WarCraft 3 / Исправление вылета на больших картах
» WarCraft 3 / Последнее убежище
Перед этим запусти встроеный в него сканер, чтобы имена файлов нашел какие сможет.
Но имена можно и самому будет придумать для извлеченых моделей и текстур, проглядев их в mdlvis/BLPlab.
Отредактирован IceFog
» WarCraft 3 / Исправление вылета на больших картах
Отредактирован IceFog
» Администрация XGM / Качается старая версия файла
Перезалил архив с тем же именем и стала качаться новая, но на первом компе всё еще беда.
Компьютер 2: last-modified: Wed, 15 May, 2024 09:46:00 GMT
Когда я запрашиваю страницу xgm.guru/p/wc3/big-map-crash-fix, то в заголовках ответа есть "cache-control: private", но не указана дата последнего обновления.
Отредактирован IceFog
» Администрация XGM / Качается старая версия файла
Отредактирован IceFog
» WarCraft 3 / Исправление вылета на больших картах
» WarCraft 3 / Исправление вылета на больших картах
» WarCraft 3 / Монитор памяти агентов
» WarCraft 3 / Монитор памяти агентов
Так же планирую добавить Ethreum, так как он, вроде как, популярен.
Отредактирован IceFog
» WarCraft 3 / Монитор памяти агентов
Отредактирован IceFog
» WarCraft 3 / Монитор памяти агентов
Отредактирован IceFog
» WarCraft 3 / Исправление вылета на больших картах
Варик был чистый, никаких модов или модифицированых game.dll. При попытке создать игру в локалке, игра отказала с сообщением: "Слишком большой размер файла. Выберите другую карту.".
» WarCraft 3 / Исправление вылета на больших картах
» WarCraft 3 / как написать *.mix камерахак? zoom
» WarCraft 3 / Исправление вылета на больших картах
Отредактирован IceFog
» WarCraft 3 / Крашлог, вопрос вылета
Инструкция процессора, которая пыталась выполнить эту операцию, расположена по адресу 0x66DDCA5B, который находится в пределах MSVCR80.dll (диапазон 0x66D80000 - 0x66E1B000), содержащей функции стандартной библиотеки языка C.
» WarCraft 3 / Самоподключающийся архив
Изначально было написано на MASM'е, но сейчас решил переписать на C.
» WarCraft 3 / Самоподключающийся архив
Что на счет вирусов, то просто глянь на коментарий выше с жертвой их паранойи. Надо бы выложить исходники, чтобы он мог указать, где же там троян.
В редакторе ничего указывать не нужно, просто помести mix в папку с игрой и его файлы станут доступны картам.
По сети с ним можно играть, но те, у кого он будет отсутствовать, не смогут увидеть новых моделей/текстур/музыки и всего прочего, что ты туда добавишь.
Варкрафт позволяет скачать карту в лобби, но дополнительные архивы придется качать отдельно.
Отредактирован IceFog
» WarCraft 3 / Good Jassspy (JASS логер)
» WarCraft 3 / Ускоренная виртуальная машина
Отредактирован IceFog
» WarCraft 3 / Определение хоста карты
» WarCraft 3 / Определение хоста карты
Отредактирован IceFog
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
Но память, которую он временно модифицировал, принадлежала менеджеру строк и её нельзя было трогать
Отредактирован IceFog
» WarCraft 3 / какие нативки не умеют работать с длинными string 1000-4000 ?
Вместо этого, я обнаружил проблему при склейке строк оператором "+".
Локальная переменная занимает 4100 байт в стеке и вряд ли уместит в себе 2 гигабайта.