Редактирование: *.spawn compiler/decompiler (Universal ACDC)
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 7: | Строка 7: | ||
| '''Автор''' || K.D. | | '''Автор''' || K.D. | ||
|- | |- | ||
− | | '''Последняя версия''' || | + | | '''Последняя версия''' || 1.31 (30.08.2012) |
|- | |- | ||
− | | '''Написан на''' || | + | | '''Написан на''' || Perl 5 |
|- | |- | ||
− | | '''Обратная связь''' || [ | + | | '''Обратная связь''' || [http://www.amk-team.ru/forum/index.php?showtopic=11568 AMK форум] |
|} | |} | ||
</div> | </div> | ||
− | Утилита предназначена для распаковки и запаковки '''all.spawn/level.spawn''' | + | Утилита предназначена для распаковки и запаковки '''all.spawn/level.spawn''' от любого билда, начиная с 1265. |
Основные возможности: | Основные возможности: | ||
Строка 27: | Строка 27: | ||
* собственно, сам спавн ('''all.spawn''', '''level.spawn''') | * собственно, сам спавн ('''all.spawn''', '''level.spawn''') | ||
* '''game.graph''' (только если распаковываете '''all.spawn'''). Если '''all.spawn''' от билда 3120, ЧН или ЗП — '''game.graph''' не нужен (он вшит в спавн). | * '''game.graph''' (только если распаковываете '''all.spawn'''). Если '''all.spawn''' от билда 3120, ЧН или ЗП — '''game.graph''' не нужен (он вшит в спавн). | ||
− | * папка | + | * папка <code>configs</code> (если распаковываете мод и acdc жалуется на ''unknown section'') |
− | Для корректной работы используйте с | + | Для корректной работы используйте с <code>stkutils</code> строго последней версии. |
= Установка = | = Установка = | ||
− | # Установите [ | + | |
− | # Распакуйте [ | + | # Установите [http://www.activestate.com/activeperl/downloads ActivePerl]. |
− | # Скопируйте | + | # Распакуйте [http://files.xray-engine.org/k.d./perl_scripts/spawn_unpackers/universal_acdc_v.1.31.rar архив со скриптом] в нужную папку. |
+ | # Скопируйте [http://files.xray-engine.org/k.d./perl_scripts/stkutils/stkutils_01_09_2012.rar библиотеку модулей <code>stkutils</code>] в папку с библиотеками Perl (например, <code>C:\Perl\lib</code>) или в папку со скриптом. | ||
= Использование = | = Использование = | ||
+ | |||
== Распаковка спавна == | == Распаковка спавна == | ||
− | |||
Команда:<br /> | Команда:<br /> | ||
Строка 44: | Строка 45: | ||
* '''-d <spawn_file>''' <br />Путь до спавна. | * '''-d <spawn_file>''' <br />Путь до спавна. | ||
* '''common_options''' <br />Общие опции. См. ниже. | * '''common_options''' <br />Общие опции. См. ниже. | ||
− | |||
== Запаковка спавна == | == Запаковка спавна == | ||
− | |||
Команда:<br /> | Команда:<br /> | ||
Строка 64: | Строка 63: | ||
Если раньше для нахождения нужного id объекта по имени требовалось перебрать все объекты в игре, | Если раньше для нахождения нужного id объекта по имени требовалось перебрать все объекты в игре, | ||
теперь это можно сделать, просто считав id из нужной секции конфига. | теперь это можно сделать, просто считав id из нужной секции конфига. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Конвертирование спавна == | == Конвертирование спавна == | ||
− | |||
Команда:<br /> | Команда:<br /> | ||
Строка 109: | Строка 102: | ||
==Массовая замена вертексов== | ==Массовая замена вертексов== | ||
− | |||
− | |||
Команда: | Команда: | ||
Строка 123: | Строка 114: | ||
==Разбивка all.spawn на level.spawn== | ==Разбивка all.spawn на level.spawn== | ||
− | |||
Команда: | Команда: | ||
<syntaxhighlight lang="winbatch">acdc -split <file> [-use_graph] [-way] [common_options]</syntaxhighlight> | <syntaxhighlight lang="winbatch">acdc -split <file> [-use_graph] [-way] [common_options]</syntaxhighlight> | ||
+ | |||
* '''-split <file>''' <br />Разбиваемый спавн. Для восстановления '''graph point''''ов необходимы '''level.spawn''' для всех локаций, находящихся в графе. Их следует поместить в папку <code>levels</code> согласно их положению в геймдате сталкера — по папкам, соответствующим локациям. Папка <code>levels</code> должна быть в папке с acdc (или путь до нее можно задать ключом — читайте далее). | * '''-split <file>''' <br />Разбиваемый спавн. Для восстановления '''graph point''''ов необходимы '''level.spawn''' для всех локаций, находящихся в графе. Их следует поместить в папку <code>levels</code> согласно их положению в геймдате сталкера — по папкам, соответствующим локациям. Папка <code>levels</code> должна быть в папке с acdc (или путь до нее можно задать ключом — читайте далее). | ||
* '''-use_graph''' <br />Использовать '''game.graph''' для восстановления граф-поинтов. Плюс — не нужны '''level.spawn''', минус — не восстанавливаются имена граф-поинтов (за исключением граф-поинтов переходов). | * '''-use_graph''' <br />Использовать '''game.graph''' для восстановления граф-поинтов. Плюс — не нужны '''level.spawn''', минус — не восстанавливаются имена граф-поинтов (за исключением граф-поинтов переходов). | ||
* '''-way''' <br />Генерировать '''level.game''' из спавна. | * '''-way''' <br />Генерировать '''level.game''' из спавна. | ||
− | == | + | == Общие опции == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* '''-out <file>''' Путь до файла/папки с результатом. Имеет разный смысл для разных опций: | * '''-out <file>''' Путь до файла/папки с результатом. Имеет разный смысл для разных опций: | ||
** для '''-decompile''', '''-parse''' — папка с результатом | ** для '''-decompile''', '''-parse''' — папка с результатом | ||
** для '''-compile''', '''-convert''' — результирующий файл. | ** для '''-compile''', '''-convert''' — результирующий файл. | ||
** для '''-split''' — папка <code>levels</code>, куда сохранять '''level.spawn'''. | ** для '''-split''' — папка <code>levels</code>, куда сохранять '''level.spawn'''. | ||
+ | |||
* '''-scan <scan_dir>''' <br />Путь до папки с конфигами. Используется в случае спавнов от модов. | * '''-scan <scan_dir>''' <br />Путь до папки с конфигами. Используется в случае спавнов от модов. | ||
* '''-g <graph_dir>''' <br />Путь до папки с '''game.graph'''. Бесполезен для ''-compile'' и ''-parse'', а также если в случае работы со спавном ЧН, ЗП, build 3120. | * '''-g <graph_dir>''' <br />Путь до папки с '''game.graph'''. Бесполезен для ''-compile'' и ''-parse'', а также если в случае работы со спавном ЧН, ЗП, build 3120. | ||
Строка 163: | Строка 134: | ||
* '''-af''' <br />Также распаковываются\запаковываются места спавна артефактов в аномалиях ('''section2.bin'''). | * '''-af''' <br />Также распаковываются\запаковываются места спавна артефактов в аномалиях ('''section2.bin'''). | ||
* '''-nofatal''' <br />Отключает вылет при фатальной ошибке, заменяя ее предупреждением. | * '''-nofatal''' <br />Отключает вылет при фатальной ошибке, заменяя ее предупреждением. | ||
− | |||
== Замечания == | == Замечания == | ||
+ | |||
Если acdc генерирует ошибку '' 'unknown clsid ... for section...' '', это означает, | Если acdc генерирует ошибку '' 'unknown clsid ... for section...' '', это означает, | ||
что в данном моде добавлены новые пары клиентский/серверный класс в '''class_registrator.script'''. | что в данном моде добавлены новые пары клиентский/серверный класс в '''class_registrator.script'''. | ||
Строка 184: | Строка 155: | ||
|} | |} | ||
− | = История | + | == История правок == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | + | '''1.31''' |
* [!] изменен алгоритм сканирования конфигов | * [!] изменен алгоритм сканирования конфигов | ||
* [!] изменен приоритет запросов из clsids.ini, теперь данные из него перекрывают внутренние таблицы | * [!] изменен приоритет запросов из clsids.ini, теперь данные из него перекрывают внутренние таблицы | ||
Строка 296: | Строка 230: | ||
* [+] увеличена скорость выполнения кода, уменьшены требования по памяти. | * [+] увеличена скорость выполнения кода, уменьшены требования по памяти. | ||
− | = Разработчики = | + | == Разработчики == |
ACDC для ТЧ — bardak, для ЗП — bardak, Kolmogor. Все остальное — K.D.<br /> | ACDC для ТЧ — bardak, для ЗП — bardak, Kolmogor. Все остальное — K.D.<br /> | ||
Используйте/выкладывайте где и как хотите, с указанием авторов. | Используйте/выкладывайте где и как хотите, с указанием авторов. | ||
− | [[Категория:Perl]] | + | [[Категория:Скрипты на Perl]] |