Страница 1 из 4

работа с спавном через acdc.exe

СообщениеДобавлено: 14 янв 2009, 23:40
XiaNi
значит так.. фух.. начну тут расписывать по немногу как пользоваться acdc
я не знаю какие бывают програмы для работы с ней =) я пользуюсь самонаписанными батниками и мне их хватает с головой =)

устанавливать её не надо, только скопируйте в папку gamedata/spawns где лежит ваш all.spawn( или freeplay.spawn в случае если у вас ФС или "патч 1.1б")

распаковывается спавн коммандой: acdc.exe -d all.spawn -o all_dir
жирным я выделил то что вы можете тут поменять на своё усмотрение, тоесть имя спавн-файла и all_dir в данном случае это каталог куда будет этот файл распакован

запаковка: acdc.exe -c all.ltx -o all.spawn
тут "all.ltx" почти всегда, он будет создан при распаковке и я обычно не меняю его имени, а "all.spawn" в данном случае тоже можно заменить
только не забывайте учитывать каталоги в которых вы работаете

вкратце по распаковке\запаковке всё

о структуре распишу в следующем посту... постараюсь не затягивать

структура распакованного all.spawn

СообщениеДобавлено: 14 янв 2009, 23:50
XiaNi
теперь структура распакованного спавна.
обычно all.spawn распакованный состоит из таких файлов:
alife_l01_escape.ltx
alife_l02_garbage.ltx
alife_l03_agroprom.ltx
alife_l03u_agr_underground.ltx
alife_l04_darkvalley.ltx
alife_l04u_labx18.ltx
alife_l05_bar.ltx
alife_l06_rostok.ltx
alife_l07_military.ltx
alife_l08_yantar.ltx
alife_l08u_brainlab.ltx
alife_l10_radar.ltx
alife_l10u_bunker.ltx
alife_l11_pripyat.ltx
alife_l12_stancia.ltx
alife_l12_stancia_2.ltx
alife_l12u_control_monolith.ltx
alife_l12u_sarcofag.ltx
all.ltx
section2.bin
way_l01_escape.ltx
way_l02_garbage.ltx
way_l03_agroprom.ltx
way_l03u_agr_underground.ltx
way_l04_darkvalley.ltx
way_l04u_labx18.ltx
way_l05_bar.ltx
way_l06_rostok.ltx
way_l07_military.ltx
way_l08_yantar.ltx
way_l08u_brainlab.ltx
way_l10_radar.ltx
way_l10u_bunker.ltx
way_l11_pripyat.ltx
way_l12_stancia.ltx
way_l12_stancia_2.ltx
way_l12u_control_monolith.ltx
way_l12u_sarcofag.ltx

файлы начинающиеся с "alife_" содержат в себе информацию о объектах, какие и где спавнить, какая у них будет логика и всё такое
они разделены на уровни но учтите что объект заспавнится по координатам а не по тому в каком файле вы его прописали

файлы начинающиеся с "way_" содержат в себе пути, пути нужны чтоб на них принудительно стояли, по ним принудительно ходили и спали.. тоесть по сути все работы в лагерях организовываются этими путями.. так же их можно использовать и без лагерей например чтоб заставить НПЦ стоять на месте или ходить по пути можно ему прописать логику "walker" и в ней указать "path_walk" и можно но кажется не обязательно "path_look".... вообще об этом надо отдельно, так как это не очень то относится с спавну =)

дальше:
all.ltx содержит в себе общее описание спавн структуры, и по большому счету туда лазить не стоит

section2.bin насколько я понимаю относится к АИ, что именно уже не помню даже если и знал когдато

объекты, их изменение и добавление

СообщениеДобавлено: 15 янв 2009, 00:11
XiaNi
объекты в спавне выглядят примерно* так:
[65]
; cse_abstract properties
section_name = physic_object
name = trader_pribor_0002
position = -245.461166381836,-23.9442577362061,-133.349502563477
direction = 0,-0.0872577428817749,0

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 594270
object_flags = 0xfffffffa
custom_data = <<END
[collide]
ignore_static
END

; cse_visual properties
visual_name = physics\decor\priemnik_gorizont

; cse_ph_skeleton properties
skeleton_name =

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10
fixed_bones = link

* примерно потому что их структура и количество свойств зависят от того какая секция у объекта

это вот описание приёмника стоящего у Сидоровича.
его внешний вид (по сути это имя файла с геометрией) находится в строке
visual_name = physics\decor\priemnik_gorizont

имя секции объекта, это практически тип объекта
section_name = physic_object

в данном случае это просто физический объект (неразбиваемый)

дальше галопом по строкам так как время не детское =)
name = trader_pribor_0002 ;имя объекта
position = -245.461166381836,-23.9442577362061,-133.349502563477 ;позиция объекта
direction = 0,-0.0872577428817749,0 ;направление объекта

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 594270
......про три последних параметра углублятся не буду, вам только важно знать что это тоже часть позиции объекта чтото вроде дополнительных координат.. насчет "distance" я не уверен что она на чтото влияет

еще, важно знать что номер объекта, в данном случае он "[65]" должен быть уникальным, чтоб посмотреть с какого номера можно начинать свои номера откройте файл "alife_l10u_bunker.ltx" и посмотрите какой номер у самого последнего объекта(у меня при распаковке стандартного all.spawn с патча 1.0005 последний номер был [8640]), вот следующий номер ваш, в принципе не обязательно чтоб номер был прям следующим, вы можете взять и намного больший номер, главное чтоб он был больше

так же вам надо учитывать имя объекта, желательно чтоб оно не повторялось

кстати вот что еще важно .. коментарии в данных файлах кто не заметил начинаются с ";" всё что после неё будет проигнорировано компилятором и не попадет в спавн


это было о редактировании... а как добавлять? я незнаю как правильно, но я ищу объект с той секцией которая мне нужна, например если хочу заспавнить кабана то ищу объект с секцией "boar_weak" или "boar_strong" потом копирую от номера до конца объекта и после этого меняю ему имя, координаты.. и если это нужно то свойства
то же с любыми другими, ищите те которые уже есть, копируйте и меняйте

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 15 янв 2009, 06:07
Wreck
Я так понял нумерация должна быть сквозная через все локации и последовательная. Разрывы в номерах могут быть? Т.е. если удалить предмет то нумерацию надо все переделывать или не обязательно. Логику некоторых предметов (типа двери) лучше вытащить из олспавна и прописать отдельным файлом. Так проще потом менять ее без начала новай игры.
Я так делал в ЧН когда не работала логика входа в бункер к Сахару.

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 15 янв 2009, 11:10
XiaNi
Wreck
номерация сквозная, но если будут пропущены некоторые числа то не важно, тоесть можешь удалять предметы пачками и тебе за это ничего не будет =)

а логику да лучше всего делать так:
custom_data = <<END
[logic]
cfg = scripts\какойтомойскрипт.ltx
END

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 15 янв 2009, 13:57
Denton
Шани, выложи здесь свой ACDC, которым ты пользуешься.

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 15 янв 2009, 15:16
7.9
Denton писал(а):Шани, выложи здесь свой ACDC, которым ты пользуешься.


от "24августа" можно здесь взять http://webfile.ru/folder?id=13312

строки для "батников":

для сборки:
acdc_24aug -c all.ltx
для разборки:
acdc_24aug -d all.spawn
(в нашем случае: all.spawn это freeplay.spawn)

сами "батники"

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 15 янв 2009, 15:16
Wreck
именно так я и делал

Вопрос: если убирать непися пути надо чистить или не обязательно?

XiaNi есть олспавн с одними сталкерами. сам чистил как передать народу

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 16 янв 2009, 20:28
Denton
Предупреждаю, я чайник! Полный и беспросветный... :P
Установил, распаковал, все получилось. Как теперь добавить перед входом в бункер Сидоровича, скажем, АК или сталкера-новичка? Как высчитать эти коордианты? И как запаковать обратно?

Re: работа с спавном через acdc.exe

СообщениеДобавлено: 17 янв 2009, 03:52
Wreck
Я сам предметы в игру не добовлял. представляю как, но не знаю тонкостей.
Есть утилита для снятия координат. и подозреваю что она зашита в моде. встаешь на нужное место давишь кнопочку и на экране появляются все координаты. их прописываешь в блок на нужной локации и компилируешь. но это примитивный способ, так как требует начала новой игры. любые изменения в спавне или в настройках требуют начала новой игры. на-пример, если поставишь вероятность выпадения хвостов на 100% то у всех собак она появится только с началом новой игры. при продолжении старой только у вновь рожденных.

Веши спавнить в игру проще скриптом.