Тема для фанов 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
18
2 года назад
Отредактирован EugeAl
0
Архивы под литерами A, B, C - это ландшафтные Mpq, весьма полезная штука. Их буквы соответствуют имени ланда, А Ашенваль, С Ситискейп (Город), Л Лордерон итд. Их можно запихнуть в war3patch.mpq, и тогда у них будет приоритет выше, чем у остальных war3 mpq. Их можно использовать для создания ландшафтных заменяемых моделей/текстур/иконок/звуков и музыки, скажем, для создания зимних текстур у зданий на зимнем ландшафте. Или чтобы у юнита в Лордероне была одна модель, а в Ашенвале другая. Как это работает, можно посмотреть в архивах на примере текстур клиффов и уберсплатов. Но! Чтобы работало, НЕ нужно запихивать модель/текстуру итд в основной war3patch.mpq, ибо приоритет у него выше.
Данная методика для одиночных карт не актуальна, она сгодится для глобальных модов и собственных стандартных кампаний
0
3
2 года назад
Отредактирован borissuworov
0
Архивы под литерами A, B, C - это ландшафтные Mpq, весьма полезная штука. Их буквы соответствуют имени ланда, А Ашенваль, С Ситискейп (Город), Л Лордерон итд. Их можно запихнуть в war3patch.mpq, и тогда у них будет приоритет выше, чем у остальных war3 mpq. Их можно использовать для создания ландшафтных заменяемых моделей/текстур/иконок/звуков и музыки, скажем, для создания зимних текстур у зданий на зимнем ландшафте. Или чтобы у юнита в Лордероне была одна модель, а в Ашенвале другая. Как это работает, можно посмотреть в архивах на примере текстур клиффов и уберсплатов. Но! Чтобы работало, НЕ нужно запихивать модель/текстуру итд в основной war3patch.mpq, ибо приоритет у него выше.
Данная методика для одиночных карт не актуальна, она сгодится для глобальных модов и собственных стандартных кампаний
Понятненько... А почему данная методика не актуальна для конкретных карт? Правильно-ли я понял, что в случае с A.mpq, B.mpq и C.mpq - это как раз таки и есть подгрузка архива по условию (в данном случае по условию о том, какой ландшафт мы используем). Взять хотя-бы глобальный мод Dota-HQ, который концептуально создан модифицировать лишь одну Доту, которая как раз таки в Ашенвале и развернута. То есть автору Dota-HQ стоило впринципи модифицировать только A.mpq и все его рескины действовали бы исключительно на ландшафте Ашенваля.
Также вроде в war3.mpq есть три архива с приписками medium, low и high, которые используются на выбор согласно уровню детализации выставленному в опциях. Стало быть теоретически это тоже является опциональным подключением.
На этом сайте я нашел очень любопытный MIX файл под названием MPQLoader. Необычность его в том, что он по сути является некоторой ссылкой на MPQ архив, который всегда следует держать рядом с MPQ Loader-ом для корректности его работы. Что если, взять MIX файл этого MPQLoader-а и положить в карту, а MPQ архив, по логике идущий в тандеме с этим файлом, кинуть в корень игры Warcraft 3 TFT v1.26a (разумеется включив опцию подгрузки локальных данных). Не будет-ли тогда наш MPQ архив (или целый перечень MPQ архивов), цепляться исключительно к конкретной карте, в которую мы положили MPQLoader? Извините, лично проверить данную теорию в ближайшее время не могу.
0
18
2 года назад
0
borissuworov, Для конкретных карт не актуально, потому что все нужные файлы можно залить в саму карту. Что касается архивов по детализации - да, это тоже можно заюзать теоретически, например наделать моделек высокополигональных, средне- и низко, и залить туда)
Что касается микс архивов, я ими не пользуюсь, потому что в случае глобального мода можно просто использовать модифицированный war3patch.mpq, ну а саму карту технически можно растягивать до любого размера (в мегабайтах, в смысле).
0
17
2 года назад
0
0
3
2 года назад
Отредактирован borissuworov
0
borissuworov, Для конкретных карт не актуально, потому что все нужные файлы можно залить в саму карту. Что касается архивов по детализации - да, это тоже можно заюзать теоретически, например наделать моделек высокополигональных, средне- и низко, и залить туда)
Что касается микс архивов, я ими не пользуюсь, потому что в случае глобального мода можно просто использовать модифицированный war3patch.mpq, ну а саму карту технически можно растягивать до любого размера (в мегабайтах, в смысле).
Стараюсь мыслить чуть шире. К примеру я создал первый mpq архив в котором содержится информация об аккуратной модификации параметров расы альянса через slk таблицы, включая некоторые рескины. Во втором mpq архиве я создал модификацию для расы Нежити через систему как в w3n файле (насколько мне известно, содержимое менеджера объектов в w3n файле хранится иначе чем в карте), ну а в третьем файле модифицировал расу орков по всем стандартам менеджера объектов обычной карты. И вот в теории эти три mpq архива должны дополнять друг друга при одновременном подключении. Задача лишь состоит в том чтобы как-то комбинировать их подключения в нужных картах. И вот даже если я сделаю кастомные тайлсэты для избранного десятка карт, мне не нужно чтобы они хранилились непосредственно в карте и не нужно чтобы разом применялись ко всем картам, как предлагает N1ghtSiren. Если мы найдем ответ на вопрос избирательного подключения mpq архивов, то сможем генерировать различные модификации всем знакомых карт, подгружая не только скины, но и мелкие модификации триггеров и параметров объектов ПАКЕТНО для разнообразия геимплэя и без открытия целевой карты в World Editor-e.
0
18
2 года назад
0
borissuworov, В таком случае можно сделать проще - создать несколько вариантов слк таблиц для юнитов, предметов, абилок итд, под разные ландшафты, например, и распихать их по разным ландшафтным mpq, и тогда на разных ландах параметры будут разные. А мелочи, уникальные для карты, делать уже в редакторе объектов. По крайней мере в теории. Не проверял ещё.
Ну и главный момент- как делать динамические модификации без замены файлов? Настроек ведь таких нет. Ну кроме кода, конечно же
0
3
2 года назад
Отредактирован borissuworov
0
borissuworov, В таком случае можно сделать проще - создать несколько вариантов слк таблиц для юнитов, предметов, абилок итд, под разные ландшафты, например, и распихать их по разным ландшафтным mpq, и тогда на разных ландах параметры будут разные. А мелочи, уникальные для карты, делать уже в редакторе объектов. По крайней мере в теории. Не проверял ещё.
Ну и главный момент- как делать динамические модификации без замены файлов? Настроек ведь таких нет. Ну кроме кода, конечно же
Да... Это расширяет возможности, но недостаточно. Хочется быть не ограниченным ID, ландшафта. И, кстати, помимо ID ландшафта, в самой карте существует кучи других ориентиров на которые в теории можно опериться (как то, версия редактора, кол-во игроков, да и название карты не стоит вычеркивать из перечня).
Коды/строки тоже поддаются импорту через файлы в MPQ архиве. Всё это осуществимо. Вспомнить хотя-бы как китайцы карты переводят (они депротектят карты, чтобы добраться до исходников в менеджере объектов, создают кампанию и ложат депротекченную карту туда, затем в менеджере объектов кампании переводят интересующие их параметры, сохраняют кампанию и затем из сохраненной кампании переносят в запротекченную карту уже свои модификации перевода в файле CampaignStrings), при условии что карта открывается MPQ редактором, пусть даже с unknown файлами (в случае побитого listfile).
В идеале круто было бы создать пустой w3x файл (типа контейнер), в который можно было бы внедрить последовательность подгрузки MPQ архивов так, чтобы на выходе получилась уникальная карта.
Предположим у меня есть пять заготовленных MPQ архивов:
Первый MPQ архив содержит в себе уникальный тайлсет.
Второй MPQ содержит в себе модификацию всех стандартных абилок до статуса уникальных (без триггеров).
Третий MPQ, альтернатив которому можно наделать сотни, содержит исключительно ландшафт определенной melee карты со всеми расставленными на нём объектами (стартовыми точками, декором и нейтралами).
Четвертый, содержит файл игровых констант для расширения лимитов и триггеры.
Пятый, допустим, будет содержать рескины определенных юнитов и т.д.
Я классифицирую эти архивы по совместимости и останется просто подгружать их в определенной последовательности чтобы играть в определенную карту с уникальным набором модификаций. Такова конечная цель, которая ведет к колоссальной оптимизации ресурсов в сборках с огромным количеством карт.
0
18
2 года назад
0
borissuworov, да, коды и строки тоже можно редачить, стандартные Кампании например.
Но вот чтобы так, как вы хотите, чтобы подгружать архивы - тут явно надо кодинг посерьёзнее, желательно с доступом к коду игры, потому что именно там прописан порядок подгрузки. Ни к сожалению здесь я ничем не могу помочь. Здесь вам явно надо обратиться к таким людям, как авторы MMengine, Render Edge и так далее.
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, спросите у него, пожалуйста, как вшить файлы рендер эдже в варик, и можно ли. И скажите мне. Буду весьма признателен. Просто я ему писал, он не ответил.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.