Тема для фанов Warcraft 3 времен, когда в ходу были MPQ архивы. Итак... тема не нова, но по моему мнению, раскрыта недостаточно всеобъемлюще. Максимум, что удавалось найти, это комментарии о том, что подгрузка стандартных MPQ архивов осуществляется следующим образом:
Примерно для roc: war3.mpq > war3patch.mpq > map.w3m (карта по сути тоже mpq архив)
Примерно для tft: war3.mpq > war3x.mpq > war3xlocal.mpq > war3patch.mpq > campaign.w3n (опционально) > w3x/w3m.
Понятно, что помимо mpq архивов, warcraft 3 v1.26a подгружает еще и dll библиотеки на разных этапах и если в них встраивать MPQ, то вроде-как эти пользовательские архивы тоже будут подгружаться. Прибавим к этому пользовательские MPQ архивы в War3.exe и MIX файлах.
Но существует ли подгрузка MPQ архивов определенной картой по некоторому условию? Хотелось бы услышать ответ от знатоков. В частности, внутри war3.mpq и war3x.mpq существуют другие MPQ архивы под литерами A, B, C и т.д.... На каком этапе подгружаются тогда они?
...и можно ли составлять некоторые структуры из наборов пользовательских MPQ архивов, чтобы подгружая их в разных последовательнастях и выборках, карты выглядели иначе?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
3
2 года назад
0
borissuworov, да, коды и строки тоже можно редачить, стандартные Кампании например.
Но вот чтобы так, как вы хотите, чтобы подгружать архивы - тут явно надо кодинг посерьёзнее, желательно с доступом к коду игры, потому что именно там прописан порядок подгрузки. Ни к сожалению здесь я ничем не могу помочь. Здесь вам явно надо обратиться к таким людям, как авторы MMengine, Render Edge и так далее.
MM Engine не нравится, ибо забагован и безпричинно вылетает в кастомных картах. Это как-то связано с утечками памяти там-сям. Автор данного проекта под ником Ev3nt имеет на своих плечах еще несколько поделок, одна из которых называется Warcraft 3 Portable (где-то на xgm выложен). В ходе реализации портэйбла, Eve3nt разложил на исходный код файл war3.exe. И теперь при должном умении, можно модифицировать war3.exe как угодно. Однако тоже не без багов.
А вот с автором Render Edge пытаюсь связаться в настоящее время.
0
18
2 года назад
0
borissuworov, Хм, war3exe это уже интересно. Это дизассемблированный файл? Кстати, а рабочий ли он? Это важно.
Если сможете связаться с автором Render edge, спросите у него, пожалуйста, как вшить файлы рендер эдже в варик, и можно ли. И скажите мне. Буду весьма признателен. Просто я ему писал, он не ответил.
0
3
2 года назад
0
borissuworov, Хм, war3exe это уже интересно. Это дизассемблированный файл? Кстати, а рабочий ли он? Это важно.
Если сможете связаться с автором Render edge, спросите у него, пожалуйста, как вшить файлы рендер эдже в варик, и можно ли. И скажите мне. Буду весьма признателен. Просто я ему писал, он не ответил.
Вот... В этой теме засветился несколько модифицированный код исходника: xgm.guru/p/wc3/warcraft-iii-portable
Не разбираюсь в кодах и не могу сказать, получен-ли был этот код в ходе реверс-инженеринга и т.п...
Ev3nt уже начал ковырять исходники, и пытался отвязать warcraft 3 от реестра. Но я тестил, и на текущем этапе дело до конца не доведено. В частности, ветка "Video" исправно сохранятся в файл, но при запуске игры, отказывается считываться... Эх! Еслиб кто закончил начатое!
0
18
2 года назад
0
borissuworov, О да, крутая тема. Интересно, можно ли туда уникальные абилки вписать?
Ну я закончить не смогу, ибо в С++ не могу, увы.
0
8
2 года назад
Отредактирован goodlyhero
0
Доступ к ресурсам в архивах осуществляется в зависимости от приоритета при загрузке этих архивов. Более того, такой архив можно грузить из карты или любого другого архива.
Есть достаточно много способов грузить свой архив, например мемхаком или миксом.
Можно грузить и несколько архивов с разными приоритетами, если на то есть желание.
0
3
2 года назад
Отредактирован borissuworov
0
Доступ к ресурсам в архивах осуществляется в зависимости от приоритета при загрузке этих архивов. Более того, такой архив можно грузить из карты или любого другого архива.
Есть достаточно много способов грузить свой архив, например мемхаком или миксом.
Можно грузить и несколько архивов с разными приоритетами, если на то есть желание.
Про приоритеты вкурсе. Предположим у нас есть намертво запротекченная карта. Я хочу сделать так, чтобы исключительно при ее загрузке подгружались некоторые мелкие MPQ архивы лежащие по четко обозначеным путям в нужной последовательности. Как это реализовать?

borissuworov, О да, крутая тема. Интересно, можно ли туда уникальные абилки вписать?
Ну я закончить не смогу, ибо в С++ не могу, увы.
Абилки обычно вписываются в slk таблицы и в файл blizzard.j, если потом их в редакторе хочешь пощупать. Для чего-то экстраординарного следует в game.dll лезть.
0
18
2 года назад
0
borissuworov, Не совсем так. В листе ability data slk, прописаны общие параметры, поля данных прописаны в ability meta data slk, а вот сами коды работы абилок спрятаны в коде игры и запускаются исходя из равкода абилок, в столбце aliasCode таблицы. То есть, нельзя просто так сделать абилку с новыми данными и скриптом, остаётся только комбинировать из стандартных (или новых на основе стандартных).
А что находится в game.dll?
0
20
2 года назад
0
А что находится в game.dll?
Вся логика игры и World Editor, в Storm.dll находится вся логика работы с файлами, пакетами и прочим (на которую ссылается game.dll). В Рефорджеде эти дллки либо вшили в .exe либо перенесли весь код .dll в .exe.
2
18
2 года назад
2
Unryze, Понял, спасибо!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.