Universal ACDC
Universal ACDC | |
Разработчик | bardak |
Модифицировали | Kolmogor, K.D. |
Версия | 1.38 от 21 мая 2014 года |
Тип | распаковщик/запаковщик |
Платформа | ActivePerl |
Форматы файлов | *.spawn |
История версий |
Universal ACDC[1][2] — это набор скриптов для работы со спавном S.T.A.L.K.E.R. - Тень Чернобыля, Чистое Небо, Зов Припяти и их билдов.
Ссылки на скачивание | |||
---|---|---|---|
Universal ACDC | https://yadi.sk/d/i4IVmWdb3PSxsg | ||
Stkutils | https://yadi.sk/d/msJH_Nb_3PSxsV |
Возможности
- Распаковка оригинальных спавнов ТЧ, ЧН, ЗП и билдов ТЧ, начиная с build 1265
- Распаковка спавнов от модов (требуется папка конфигов от мода)
- Конвертация спавна в любую другую версию
- Массовая замена гейм-вертексов в распакованном спавне
- Разбивка all.spawn на level.spawn'ы и level.game'ы
- Сравнение распакованных спавнов
- Обновление вертексов согласно координат объектов
Установка
Распакуйте архив ACDC в удобную для вас директорию.
Переместите папку stkutils из архива в корневую директорию ACDC.
Использование
Распаковка спавна |
---|
Режим предназначен для распаковки файлов all.spawn и level.spawn universal_acdc.pl -d <spawn_file> [common_options]
При распаковке спавнов от модов может возникнуть ошибка Это означает, что в моде используются нестандартные секции предметов/мобов. Для распаковки такого спавна необходимо использовать ключ Пример смотрите в батнике acdc_decompile_scan. |
Запаковка спавна |
---|
Режим предназначен для запаковки распакованных текстовых файлов спавна в all.spawn или level.spawn universal_acdc.pl -compile <dir> [-idx <index_file>] [-f <flag1,flag2,...>] [common_options]
[13_box_wood_01_0021] ;формат - "индекс_локации"_"имя_объекта" id = 2907 ;id объекта story_id = -1 ;story_id объекта Такие записи создадутся для ВСЕХ объектов из спавна. Если указать ключ Если раньше для нахождения нужного id объекта по имени требовалось перебрать все объеты в игре, теперь это можно сделать, просто считав id из нужной секции конфига. Также есть кое-какие дополнительные фичи:
|
Конвертирование спавна |
---|
Режим позволяет конвертировать спавны ТЧ, ЧН, ЗП между собой. universal_acdc.pl -convert <file> -version <new_version> [-ini <file>] [common_options]
Внимание! Так как граф и кросс-таблицы в ЧН и ЗП вшиты в спавн, для конвертирования ЗАПАКОВАННЫХ спавнов ТЧ в эти форматы вам потребуется положить в папку с universal_acdc папку levels из игры. Необязательно копировать все файлы, достаточно оставить в папке с каждой локацией файл level.gct
В файле есть две секции: Пример: [exclude] sections = m_trader, m_car, flesh_weak
Пример:
Пример: [change] sections = inventory_box Далее заполняете файл записями для тех секций, которые вы прописали в change. Пример: [inventory_box] //section_name нужной секции add:custom_data = PREVED //префикс add используется для тех параметров, в которые нужно добавить add:game_vertex_id = 10000 //необходимое значение (если число - складывается, если строка - добавляется в конец) rep:level_vertex_id = 0 //префикс rep используется для параметров, которые необходимо заменить на что-то Общий пример. Следующий конфиг приведет к тому, что у всех сталкеров прибавится 500 к гейм-вертексу и визуал сменится на визуал вояки в противогазе: [exclude] [change] sections = stalker [stalker] add:game_vertex_id = 500 rep:visual_name = actors/soldier/soldier_antigas.ogf |
Массовая замена вертексов |
---|
При подключении новых локаций без перекомпиляции графа возникает необходимость одновременного сдвига всех гейм-вертексов спавна новых локаций на какое-то определенное значение. Это можно сделать в этом режиме. universal_acdc -parse <file> -old <old_gvid0> -new <new_gvid0> [-way] [common_options]
Пример:
|
Разбивка all.spawn на level.spawn |
---|
Разбивка all.spawn на level.spawn может быть полезна при одновременой правке спавна в X-Ray SDK и с помощью ACDC. universal_acdc -split <file> [-use_graph] [-way] [common_options]
|
Сравнение файлов распакованного спавна |
---|
В этом режиме сравниваются два текстовых файла спавна. Итоговый файл формируется на основе первого файла. Все секции, которых нет во втором файле, но есть в первом, удаляются, а те секции, которые есть во втором, но нет в первом, переносятся в итоговый файл. Параметры секций не меняются. Режим позволяет сэкономить время в случае, если надо совместить два файла, причем секции там идут вразнобой. universal_acdc -compare <file1,file2> [common_options]
|
Обновление вертексов по координатам |
---|
Зачем нужно: при изменении AI-сетки у объектов изменяются game_vertex_id и level_vertex_id Это влечет за собой необходимость повторного снятия данных параметров в игре. Данный режим позволяет автоматически обновить вертексы у всех секций спавна. universal_acdc -update <spawn_name> [common_options]
Режим update требует дополнительной настройки. В папке с acdc есть файл fs_vertex.ltx В этот файл необходимо вписать путь до локаций с ОБНОВЛЕННОЙ AI-сеткой. Обязательно должны присутствовать файлы level.ai, level.gct для всех локаций из спавна. ВНИМАНИЕ! Для нормальной отработки режима геймграф должен быть СТАРЫЙ, использовавшийся до перекомпиляции. После нормальной отработки режима спавн можно распаковывать уже с НОВЫМ геймграфом. |
Общие опции |
---|
|
Примечание
- Если universal_acdc генерирует ошибку
'unknown clsid ... for section...'
, это означает, что в данном моде добавлены новые пары клиентский/серверный класс в class_registrator.script
Дабы не усложнять работу с universal_acdc, такие пары не определяются автоматически. Лучше всего сообщить об этом в официальную тему на форуме. Однако, если вы понимаете, что находится внутри class_registrator.script, можете добавить новые сеты в clsids.ini сами. Сеты добавляются в таком формате:clsid = соответствующий_серверный_класс
Пример:ZS_ELECT = se_zone_anom
- Любые имена опций можно сокращать. К примеру, необязательно использовать именно
-use_graph
, скрипт поймет также и-use
, и-u
. Однако ряд опций при сокращении их имени могут конфликтовать друг с другом.-compile
нельзя сократить до-c
, поскольку в таком случае скрипту неясно, что имеется ввиду:-compile
или-convert
. В таком случае наиболее короткое имя для compile будет таким:-com
- ВАЖНО! При работе со спавнами билдов 25xx перед каждой новой распаковкой ОБЯЗАТЕЛЬНО следует удалять sections.ini и сканировать конфиги заново.
Возможные ошибки и их исправление
cannot change dir to |
---|
Function:main::compile Line:1516 Description: cannot change dir to all Ошибка[3][4]Может возникнуть при использовании ключа Например: universal_acdc.pl -compile all -out new.spawn
pause
Отсутствует указанная для компиляции папка с распакованным спавном (в данном случае: Решение[5]Проверьте наличие указанной папки в корневой директории ACDC. |
update data left |
---|
Ошибка[6]При возникновении фатальных ошибок типа "update data left" запускать батник с ключом Пример фатальной ошибки: FATAL ERROR! Function: stkutils::file::entity::error Line: 247 Description: stkutils::file::entity::read_m_update 129 $packet->resid() == 0 update data left [77] in entity esc_box_wood_01_0003 Пример предупреждения при запуске с ключем WARNING! Function: main::__ANON__ Line: 1380 Description: WARNING! Function: stkutils::file::entity::error Line: 249 Description: stkutils::file::entity::read_m_update 129 $packet->resid() == 0 update data left [77] in entity esc_box_wood_01_0003 |