WarCraft 3: Самоподключающийся архив

» Раздел: Работа с MPQ и импортом

Этот архив, будучи помещенным в папку с игрой, автоматически подключается без помощи сторонних лаунчеров.
В отличии от старой версии, имеет настраиваемый приоритет, что позволяет заменять файлы не только основных архивов, но и карт.

Использование

В первую очередь, игра ищет файлы в архивах с более высоким приоритетом.
Он задается в файле "(priority)", в отсутствие которого, считается нулевым.
» Таблица приоритетов
ФайлПриоритет
War3.mpq0
War3X.mpq1
War3XLocal.mpq3
War3Patch.mpq8
Старый mix10
Карты16
Новый mix42
Возможные проблемы:
  • Так как загрузкой занимается звуковая система, то при отсутствующей/отключенной аудиокарте или еще каких проблемах, инициализация провалится и архив не будет подключен.
  • Ladik MPQ Editor может отказаться добавлять файлы, ссылаясь на недостаток места на диске. Это означает, что лимит файлов исчерпан и его нужно увеличить вручную с помощью соответствующей опции редактора.

Как это работает

Звуковая система

Звуковая система игры расширяет свой функционал за счет дополнений,
которые подгружает из корневого каталога и специальной директории (Для Warcraft III это будет "redist\miles").
» Возможные расширения файлов
РасширениеКомментарий
mixMSS mixer services
asiASI codec
m3dMSS 3D audio services
fltMSS pipeline filter
Все они являются динамически подключаемыми библиотеками (DLL).

MPQ архив

Заголовок архива не обязан находиться в начале файла.
Важно лишь, чтобы он был выровнен по границе 512 байт.
Разработчики использовали это в своих установщиках, к концу которых прикрепляли данные.

Результат

Была создана библиотека, а следом за ней записан пустой архив.
Таким образом, получился файл, являющийся одновременно и DLL и MPQ.
Звуковая система загружает библиотеку, а та открывает себя как архив, расширяя контент игры.

Просмотров: 124