S.T.A.L.K.E.R. Wiki

We've Moved! Just as Gamepedia has joined forces with Fandom, this wiki had joined forces with our Fandom equivalent. The wiki has been archived and we ask that readers and editors move to the now combined wiki on Fandom. Click to go to the new wiki.

ПОДРОБНЕЕ

S.T.A.L.K.E.R. Wiki
Advertisement

Основные сведения[]

Все игровые файлы в большинстве сборок запакованы в базы данных в виде файлов-архивов. За время существования игр серии «Сталкер» всего было четыре основных вида таких архивов:

  1. Файл с именем data.xrp или gamedata.xrp. Формат ранних сборок — до 1465 включительно.
  2. Файл (или несколько файлов) с именем вида gamedata.xp* (* — это число от 0 до 9). Формат для большинства сборок.
  3. Файл (или несколько файлов) с именем вида gamedata.db*. Формат для поздних предфинальных сборок и финальной игры. В случае финальной версии игры и предфинальной мультиплеерной сборки, формат был немного изменён и получил две разновидности - для русской и для международной версий.
  4. Файл (или несколько файлов) с расширением вида %имя_файла%.db*, реже %имя_файла%.xdb*. Формат для ресурсов модификаций (размещённых в папке mods/), а также ресурсов финальных версий Чистого Неба и Зова Припяти, в сборках не встречается.

Для работы с игровыми базами данных существует множество утилит, написанных фанатами игры. Наибольшую известность получил т.н. «конвертер Бардака», написанный программистом bardak. И эта известность, в первую очередь, связана с универсальностью утилиты. При помощи «конвертера» можно распаковывать все существующие форматы и запаковывать в форматы финальных версий игры (в т.ч. поздних сборок ТЧ). Кроме того, исходный код «конвертера« открыт, и любой желающий, при наличии хороших знаний C++, может использовать его по своему усмотрению.

Однако, у сей замечательной утилиты есть и недостатки. Во-первых, «конвертер» — это чисто консольная утилита, и с обработкой файлов большого размера (свыше, приблизительно, 1,8 Гб), могут возникнуть проблемы. Имеющийся любительский графический интерфейс положения не спасает, и корректно работает только с .xdb–форматом. Во-вторых, можно запаковывать только в форматы пре-бета и бета сборок. То есть для всех сборок с номерами до 2232, есть возможность только распаковки архивов. Впрочем, как уже было указано, исходный код открыт, и вышеупомянутые недостатки можно исправить.

Работа с утилитой Бардака[]

Последнюю версию можно скачать по прямой ссылке здесь, последнюю версию пака утилит (конвертер входит в его состав), можно скачать по прямой ссылке здесь.

Исходный код можно скачать по прямой ссылке здесь.

По сути, «конвертер» представляет собой многофункциональную утилиту для работы с файлами игры. Среди его функций есть такие специфические, как извлечение из трёхмерных моделей составных частей (анимация, скелет). Но в нашем случае, мы рассмотрим только одну возможность - работа с файлами баз данных.

Конвертер представляет собой консольное приложение, и работа с ним осуществляется через «батники».

Ниже представлено содержимое батников для распаковки и запаковки.

Распаковка

converter.exe -unpack %имя_файла_БД% -%ключ% -dir %имя_папки_назначения%[1] 

Запаковка (для -2947ww, -2947ru, -xdb)

converter.exe -pack %имя_папки% -%ключ% -out %имя_файла_БД_назначения% 

Ключи[]

Ключи — это специальные указатели, поясняющие «конвертеру», с каким форматом сейчас предстоит работа. Ниже приведены все необходимые для работы с базами данных ключи.

-11xx 

Предназначен для формата архивов ранних версий игры. Обычно это один файл с именем data (до 1230 сборки) или gamedata (с 1230 до 1465) и расширением .xrp. Доступна только распаковка.

-2215 

Предназначен для распаковки архивов большинства сборок (с номерами от 1469 и до 2232). Обычно это один или несколько файлов с расширениями вида .xp* (* — это число от 0 до 9). Доступна только распаковка.

-2945 

Предназначен для распаковки архивов поздних сборок игры (с номерами от 2307), включая предрелизные мультиплеерные сборки (кроме 2947). Обычно это несколько файлов с расширениями вида .db*.

-2947ru 

Предназначен для распаковки архивов русской версии финальной игры. Десять архивов с именем gamedata и расширениями от .db0 до .db9, четыре архива патчей .dba, .dbb, .dbc, .dbd и один архив украинской локализации .dbu.

-2947ww 

Предназначен для распаковки архивов международной версии финальной игры, а также для распаковки официальной MP–сборки с номером 2947 и сборки Чистого Неба под номером 3120.

-xdb 

Предназначен для распаковки архивов игр Чистое Небо и Зов Припяти.

-3120 

Этот ключ был в самой первой версии конвертера; предназначается для 3120 сборки. По-сути, он аналогичен ключу -2947ww.

Также для «конвертера» существует графический интерфейс пользователя, но с какой из версий утилиты он работает нормально, до сих пор непонятно — везде происходила корректная распаковка только для .xdb - формата.

Работа с утилитой от GSC[]

Утилита для работы с архивами от GSC присутствует в большинстве сборок — это xrCompress.exe. Формат, с которым утилита работает, определяется версией сборки, в составе которой она присутствовала.

Запаковка осуществлятся переносом необходимой папки методом Drag'n'Drop на xrCompress.exe. Также имеется вариант запаковки с помощью командной строки:

xrCompress.exe %имя_папки%

При этом существует такая особенность, что если путь задан как C:\folder\ то выходной файл будет в папке folder, а если путь задан как C:\folder то выходной файл будет в корне диска C:\.

Ключи запаковки

  • -fast - быстрая запаковка (меньше сжатие, но быстрее)
  • -store - запаковка без сжатия (оптимально для тех ресурсов, которые сжатию поддаются очень плохо - текстуры, звуки, видео)

Распаковка есть, но как её осуществить — не ясно. Есть предположение, что в поздних версиях утилиты такая возможность вообще была убрана.

Создание различий Таинственный ключ -diff, с помощью которого, как предполагалось, осуществляется распаковка, на самом деле предназначен для создания различий между ресурсами, для получения патча.

xrCompress.exe -diff %имя_папки_с_изменёнными_ресурсами% %имя_папки_с_оригинальными_ресурсами% -out %имя_папки_для_результата%

Обратите внимание, в результате работы НЕ создаётся архив.

Пример использования. На ТЧ портирована некая локация из ЧН. Вместе с ней вытащены все используемые локацией текстуры и звуки. Но некоторые уже существуют в ресурсах ТЧ и только занимают место. С помощью данного режима, их можно отфильтровать.

Ключи создания различий

  • -crc - не проверять по хешу CRC32
  • -nofileage - не проверять по дате создания файлов
  • -nosize - не проверять по размеру файлов
  • -nobinary - не включать в проверку бинарные файлы (все которые не редактируются "блокнотом")

Также по проблеме есть сообщение с форума GM.

Вообще, утилита достаточно мало изучена. Есть сведения, подтверждающие то, что для неё существует большое количество ключей запуска. И вышеприведённое сообщение это подтверждает. Кроме того, версии утилиты из разных сборок различаются, иногда довольно значительно. Мододелы этот инструмент практически не используют, а применяется он в основном лишь теми, кто работает со старыми сборками, и только для запаковки игровых файлов.

Примечание. Есть xcompress 108 кб - он только запаковывает, 112( + xcore 2215 билд) распаковывает создавая разницу между пустой папкой gamedata (должна быть или выдаст ошибку), 396 кб - пока не изучено ВНИМАНИЕ при запаковке пропускает *old txt tga smf и еще не успел прочитать какие конвертер бардака по ссылке в xray_re-converter-rev6447-20110116.rar запустить не удалось, работает converter_25aug2008.7z

Другие инструменты[]

Также существуют другие программы для работы с игровыми ресурсами.

S.T.A.L.K.E.R. Universal Extractor[]

Программа с графическим интерфейсом, предназначена для распаковки всех трёх игр и 15 сборок. Последнюю версию можно скачать на этой странице.

Примечания[]

  1. ^ По умолчанию gamedata. Указывать необязательно.

См. также[]

Advertisement