XrCompress.exe — S.T.A.L.K.E.R. Inside Wiki

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%), готовую к паковке.

Другие места
LANGUAGE