XrCompress.exe
Материал из S.T.A.L.K.E.R. Inside Wiki
Содержание
Справка
Паковка ресурсов
Команда:
xrCompress.exe <data_dir> -ltx <file_name.ltx> [options]
Опции могут быть следующими:
- -diff /? (опция для получения информации о созданных различиях)
- -fast (быстрое сжатие)
- -store (сохранять файлы без сжатия)
- -ltx <file_name.ltx> (конфиг с путями для пакуемых файлов)
Формат LTX:
[config] ;<path> = <recurse> .\ = false textures = true
Получение различий (создание патча)
Команда:
xrCompress.exe -diff <new_data> <old_data> -out <diff_resulf> [options]
Параметры <new_data>, <old_data> и <diff_resulf> должны быть именами каталогов.
Опции могут быть следующими:
- -nofileage (не выполнять проверку возраста файлов)
- -crc (не выполнять проверку CRC32)
- -nobinary (не выполнять проверку бинарных файлов)
- -nosize (не выполнять проверку размера файлов)
Заметка: компрессором из 2215 можно было распаковывать архивы некоторых билдов; в современных версиях распаковщик не работает.
Практика
Паковка ресурсов
1. Создадим пакетный файл следующего вида:
@start /wait bin\designer\compressor\xrCompress.exe gamedata -ltx datapack.ltx move /Y X:\engine.log X:\logs\xrCompress_%username%.log move /Y X:\xrCompress_*.mdmp X:\logs\ pause
Разберем вкратце батник: - первая строчка запускает компрессор с задержкой (параметры wait и /Y применены из-за недоработанности пакера); - вторая перемещает и переименует лог-файл (опять же из-за сырости пакера - лог остается в корневой папке вместо $logs$); - третья перемещает дамп в папку $logs$ по вышеуказанной причине. Собственно, для создания архива необходима только первая строка, остальное только для поддержания порядка в рабочей директории.
2. Создадим LTX примерно следующего содержания:
[options] exclude_exts = *.ncb,*.sln,*.vcproj,*.old,*.rc,*.scc,*.vssscc,*.bmp,*.smf,*.uvm,*.prj,*.tga,*.txt,*.log,*.tmp [include_folders] ;<path> = <recurse> .\ = false configs = true [exclude_folders] textures\ed = true [header] auto_load = true level_name = single level_ver = 1.0 entry_point = $fs_root$\gamedata\ creator = "gsc game world" link = "www.gsc-game.com"
Тут все понятно - в секциях указываются учитываемые/неучитываемые файлы и папки.
В заголовке указывается тип архива, версия, точка входа и возможность автозагрузки при старте игры:
- для одиночной игры - single, автозагрузка разрешена;
- для сетевой должен соответствовать имени карты, автозагрузка запрещена.
С вышеуказанным конфигом будет создан архив gamedata.pack_#0, содержащий *.xr-файлы и конфиги из папки gamedata. Теперь его нужно переименовать в gamedata.dbNN, где NN - порядковый номер архива, и отправить в папку с игрой.
Создание патча
Команда:
@start /wait bin\designer\compressor\xrCompress.exe -diff gamedata gamedata_old -out patch_%date% move /Y X:\engine.log X:\logs\xrCompress_%username%.log move /Y X:\xrCompress_*.mdmp X:\logs\ pause
В gamedata лежат файлы, с которыми работает модер, в gamedata_old - оригинальные ресурсы игры. На выходе получаем папку с нашим модом/патчем (patch_%date%), готовую к паковке.