Правила сайта FAQ Мини-чат
Для добавления необходима авторизация!
29.03.2024, Пятница, 01:52


  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум » S.T.A.L.K.E.R. - Моддинг » Разбираем S.T.A.L.K.E.R. » Уроки моддинга » All.spawn SoC - легко. (Пробуем свои силы)
All.spawn SoC - легко.
Сообщение #1
"Мы все учились по-немногу чему-нибудь и как-нибудь..."
Расскажем о своих "навыках" в ковырянии all.spawn для "S.T.A.L.K.E.R. - SoC". Особо сложного ничего нет, нужна только внимательность и сосредоточенность. Ну... и туторы не помешают. Почти...
Такой как есть
Уважение: 571
Награды: 64
Сообщение #2
Итак… Начнем сначала.
Для распаковки\упаковки all.spawn-а нам потребуется ActivePerl и ACDC
ActivePerl можно взять здесь ActivePerl
ACDC можно взять здесь ACDC
Далее устанавливаем ActivPerl желательно туда, куда он сам «просится»(например у меня получилось C:\Perl)
Далее распаковываем ACDC и все содержимое помещаем в папку bin по пути (мой пример) C:\Perl\bin
Должно получиться так:

Все, подготовка закончена, начинаем работать с all.spawn-ом:

1. Нажимаем ПУСК - Выполнить. Появляется командное окно.

2. Вводим команду cmd. Появляется черное окно командной строки

3. В нем вводим cd\ и нажимаем ввод (enter) Происходит переход на другую стрку. Этой командой мы задали путь к диску С для работы с ним.

4. Далее вводим cd C:\"название папки, куда поместили acdc" (В моем случае получится: cd C:\Perl\bin) нажимаем ввод (enter). Происходит переход на другую стрку. Этой командой мы задали путь к папке с которой будем работать. Вот здесь и надо будет вводить команды для acdc.

6. Вводим acdc11oct.pl -d all.spawn Нажимаем enter.

7. Если асдс подходит для данного алл.спавна, то вскоре все распакуется и распакованные файлы можно будет обнаружить в папке с асдс. Вот что у нас должно получиться:

8. Если асдс не подходит, то он выдаст ошибку. Тут же в этом черном окне. Надо будет внимательно прочитать о чем ошибка. Обычно для разных модов не хватает какого-нибудь описания чего-нибудь. Например, может ругаться что не может найти af_soul.
Тогда надо будет открыть файл acdc11oct.pl блокнотом. Там найти, где описываются артефакты и в конце строк с артефактами сделать запись для af_soul, на примере других артефактов. После сохранить файл и заново набрать команду по распаковке.
9. Для запаковки all.spawn-а используем команду acdc11oct.pl -c all.ltx

После запаковки ltx-файлов, в этой же папке у нас появится наш новый all.spawn new, переименовываем его в просто all.spawn и помещаем его в gamedata\spawns
10. . В файлах alife только обьекты(НПС, монстры, тайники и т.д.) которые спаунятся. А в way только пути. Путь это и есть путь. По которому может двигаться живой обьект...
Вот мы и научились распаковывать и запаковывать all.spawn. Дальше мы рассмотрим как работать с файлами alife_локация.ltx

P.S. ACDC не подходит для распаковки НС, ТТ, Прибой... Все вопросы по распаковке данных модов - к их авторам.

Сообщение отредактировал Frankenshtayn - Пятница, 25.03.2022, 18:57

Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #3
Ню воть... Как ужО Франки и сказал выше, после декомпиляции файла all.spawn мы получили кучу файликов alife и way.
Теперь займемся их внимательным рассмотрением. Я понимаю, что ручонки шаловливые уже так и чешутся что-нить заспавнить и покурочить, но придется сначала разобраться в "каше", чтоб научиться размазывать ее по тарелке.
При распаковке аллспавна SoC получаем 17 файлов alife.ltx, 16 файлов way.ltx, плюс файлик all.ltx.
Все файлы alife.ltx и way.ltx имеют уникальные коды и названия локаций. Думаю с переводом не перепутаете - нет ничего трудного. А в файле all.ltx перечислены все декомпилированные файлы.
Теперь залезем в нутро файликов и рассмотрим, что там находится. Для примера возьмем небольшую по размеру локацию - подземелья Агропрома.

Разбор файла alife.ltx

Открываем любым текстовым редактором (я использую нотпэд, так как там есть нумерация строк, что очень удобно) файл alife_l03u_agr_underground.ltx и начинаем "осознавать эту кучу малу":
1. Внутри файла имеются секции, в которых прописаны разнообразные предметы, НПС, монстры, рестрикторы и смарты. "Шо есть шо" разберёмся по ходу дела.
2. Все файлы идут строго по номерам и нумерация нигде не сбивается (следует на будущее это очень хорошо запомнить).
3. Возьмемся за разбор секций (беру наугад любые, потому как общий принцип конструирования у них одинаков)
Например:


Далее: section_name может быть разным - всё зависит от того, что отспавнено.
section_name = climable_object --- лестницы и всякая байда, по которой ГГ передвигается;
section_name = lights_hanging_lamp --- работающие лампы освещения;
section_name = physic_object --- физический объект, в лапы не берется, на локации находится для "мебели";
section_name = m_bloodsucker_e --- кровосос, может стоять любое другое название монстра, с соответствующим визуалом;
section_name = space_restrictor --- рестриктор, при попадании в зону которого, выдается поршень на что-либо;
section_name = zone_radioactive_weak --- аномалия, в данном случае радиоактивная зона;
section_name = smart_terrain --- гулаг, в данном случае для неписей;
section_name = stalker --- НПС, "ху есть ху" смотрим ниже в этой же секции;
section_name = physic_destroyable_object --- какой-либо разрушаемый объект;
section_name = af_fireball --- артефакт, в данном случае Огненый шар;
section_name = wpn_ak74u --- автоматик;
section_name = bandit_outfit --- куртка бандосов.
Думаю, с именами секций всё понятно. Стоит только еще мальца поюзать по файлику и окончательно ясно что есть что. В крайнем случае - открываем алайф другой локации и подсматриваем, что еще и там имеется.

Заглянем еще в нутро секции НПС:


Обратите особое внимание на выделенный оранжевым цветом кусок - эта часть секции отвечает за логику и поведение перса (нечто подобное встречается и в секциях монстров, тайниках-ящиках... логика объекта). Без данной кустом_даты НПС будет тупо шляться без дела, пока не найдет последнее пристанище в ближайшей аномалии или пасти зверушки. Бывает, что прибивается к подходящему для него смарту (гулагу), но... это если выживет.
Еще стоит обратить особое внимание и запомнить, что в секциях у любых персов и зверушек в строках:
position = -87.8630905151367,-16.4608001708984,-75.1350021362305
upd:position = -87.8630905151367,-16.4608001708984,-75.1350021362305
координаты должны всегда совпадать.

Разбор файла way.ltx

Ну, тут всё на много проще. В этом файле, как уже говорилось выше, прописаны пути НПС, монстров, телепортов, переходов между локациями.
Например:





Сообщение отредактировал Frankenshtayn - Пятница, 25.03.2022, 19:00

Такой как есть
Уважение: 571
Награды: 64
Сообщение #4
Зачищаем локацию для экспериментов.

Прежде чем начнем издеваться над алспавном нужно подготовить плацдарм, поле деятельности. В прямом смысле - чистое поле, так будет легче оценить, что мы наворотили своими пока еще кривыми ручками.
Чтобы не было потом мучительно больно применим первое основное правило моддинга - бэкап файла. Откопируем и сохраним где-нибудь в сторонке "исходник", дело это довольно простое, но необходимое. Просто копируем файлики той локации, что будем зачищать и переименовываем их (например, alife_l10_radar превратим в alife_l10_radar_bak, way_l10_radar в way_l10_radar_bak; таким образом в папке bin проги acdc они будут рядышком и всегда под рукой, ежели чего не так пойдет и наперекосяк, а пойдет наверняка).
Теперь можно и начать "обрезание".
Внимательно просматриваем названия секций в файле alife выбранной локации (у нас на примере - Радар). Отчечаем себе секции, которые не будем затирать, а это все, имеющии в названии следующее:
section_name = breakable_object
section_name = climable_object

Иначе Ваш ГГ перестанет нормально передвигаться где Вы привыкли.

Хотите, чтобы остались горящими костры? Не трогайте секции со следующими именами:
section_name = zone_flame_small

section_name = space_restrictor
name = rad_camp_fire_хххх


Вам могут потребоваться открывающиеся дверцы всяких шкафов и ящиков? Не прикасайтесь к секциям с названиями:
section_name = physic_destroyable_object
name = level_prefix_physic_destroyable_object_хххх

section_name = physic_destroyable_object
name = stol_х_ph_door_хххх


Хотите оставить ящики-нычки? Руки прочь от секций с названиями:
section_name = physic_destroyable_object
name = door_trader_box_хххх


Очень хочется и дальше видеть горящие лампы? Пройдите мимо секций с названиями:
section_name = lights_hanging_lamp
name = light_wire_1_хххх

section_name = lights_hanging_lamp
name = light_alarm_glass_хххх


section_name = lights_hanging_lamp
name = light_galogen_1_хххх


Нужно оставить переходы на другие локации? Пожалуйста, вот они:
section_name = level_changer

Вроде усё. Остальное можно смело затирать. Как только закончили с удалением не нужных Вам секций, приступаете к перенумерации всего оставшегося. Нумерация не должна сбиваться ни в коем случае! Например, alife_l10_radar начинается с секции [5719], значит все последующие идут строго установленными номерами.

Теперь плавно переходим к файлу way_l10_radar.
Открываем его, находим секции лишь с путями переходов между локациями (если они Вам дюже необходимы)
[rad_way_if_reject_to_ххх]
остальное можно смело изничтожать.

Перепроверяем наши файлики и сохраняем правки в них.
Делаем компиляцию нового алспавна и получаем в проге acdc файлик all.spawn.new, переименовываем его, меняя расширение, в all.spawn и получаем на выходе полностью чистенькую локацию без ботов, аномалий и всякой нечисти.




Сообщение отредактировал IMAGINE - Четверг, 12.04.2012, 03:07

Такой как есть
Уважение: 571
Награды: 64
Сообщение #5
Как говорил один наш старый знакомый - "Продолжаем разговор..."
На данный момент мы имеем чистую локацию и желание помучать "S.T.A.L.K.E.R.". Следующим этапом будет попытка появления ГГ, то есть нас любимых на выбранной для экспериментов локации.

Появление ГГ


Тутась всё просто до омерзения. Итак, открываем файлик с чистой локацией Радар, в самый его верх добавляем секцию ГГ такого вида:



В виду того, что мы толком не знаем где что там имеется и где хотели бы очутиться для начала - берем любые попавшиеся под руку координаты для нашего первого спавна. Я выбрал место спавна свободовской броньки, потому как уверен, что ГГ не отспавнится невесть где в тектурах. Координаты для наглядности выделил желтым цветом. Не забываем о нумерации секций - присваиваем секции нашего ГГ section_name = actor наименьший номер из числа имеющихся в файле. Сохраняем файл и пока забываем о нём.
Следующим этапом будет устранение маленькой неувязки с двумя ГГ в игре - мы же переместились на Радар, а истинный ГГ первоначально появляется на Кордоне.
Для этого выуживаем файлик alife_l01_escape.ltx, открываем его, находим секцию с истинным ГГ [63] и просто на ее место втыкаем под тот же номер любую другую (для души спокойнее закинуть какой-нибудь предмет или аномалию), не забывая при этом "на всякий пожарный" сменить имя секции, дабы не словить непредвиденные глюки с дубликацией секций.
Далее, сохраняем файл, компилируем и получаем новый аллспавн, который втыкаем в нашу игрушку (что и как делать описано в предыдущем посте). Запускаем НИ и видим Меченного на Радаре живым и здоровым с винторезом в руках, кучей патронов, работающими фонариком и детектором, облаченным в костюм новиса.
Будете смеяться, но это оказалось очень просто.



Такой как есть
Уважение: 571
Награды: 64
Сообщение #6
Краткое лирическое отступление для тех, кому не требуется вся игра полностью и свои силы будут пробовать на одной локации.

Урезаем all.spawn для SoC


Для многих новичков нет особой нужды нагружать свой аллспавн грузом лишних локаций. А потому сделаем мини-all.spawn под одну локацию.
Для этого в папке bin проги Perl оставляем только 4 файла: alife_l10_radar, way_l10_radar, all.ltx и "родной" all.spawn. Все остальные файлы прячем где-нибудь в стороне.
Затем открываем файл all.ltx, убираем оттуда названия всех ненужных нам локаций, оставляя только алайф и вэй для Радара. Сохраняем правленный файл.
И идём проторённым путем - компилируем новый all.spawn.
Фсё.
ЗЫ: только не забудьте, что переходы на другие локации остались, если вы их не порезали, а самих локаций ужО нема. Ну... это я так... на всякий случай напомнил.



Такой как есть
Уважение: 571
Награды: 64
Сообщение #7
Теперь, побегав по зачищенной локации в волю, попробуем отспавнить что-либо.

"Проба пера" - снимаем координаты в "S.T.A.L.K.E.R."


Для того, чтобы снять координаты места будущего спавна нам кое-что потребуется. А именно - 3 файлика, которые качаем воть отсюда: http://webfile.ru/5926978 и вставляем в нашу распакованную геймдату. Теперь при запуске игры, после появления ГГ на локации, при нажатии на клавишу Tab, на экране выплывают координаты места, на котором находимся. Там всё наглядно, стоит только переписать эти координаты. Сразу оговорюсь - нет смысла переписывать всю огромную череду цЫфирей, вполне достаточна точность до 3-5 знаков после запятой, однако будьте предельно внимательны с game vertex, малейшая неточность и будете искать отспавненное невесть где.
Теперь, имея координаты, можете потренироваться со спавном ГГ. Выбирайте любое место, жмите Tab, переписывайте координаты и отправляйтесь на правку файла alife выбранной для эксперимента локации. Там находите секцию section_name = actor, вставляете координаты ( не забываем, что для неписей координаты в строках position = и upd:position = должны быть одинаковы), сохраняем файл, компилируем и получаем allspawn.new, закидываем его в своего "Сталкера", в папку spawns, с переименованием в all.spawn... и при НИ радуемся первому удачному результату. Если, конечно, всё правильно сделано.



Такой как есть
Уважение: 571
Награды: 64
Сообщение #8
Всё забываю написать...
Для тех кому надоело каждый раз в командной строке набирать команду на сборку аллспавна после очередной правки:
Создаем один раз батник с этой же командой и запуская его больше не мучаемся - получаем собранный воедино файл all.spawn.new.
Создание батника:
1. Создаем текстовый файл с любым названием (например, all-компиляция)
2. Прописываем в нем следующее:
acdc11oct.pl -c all.ltx
pause

3. Сохраняем файл и меняем его расширение на .bat
4. Переименовываем получившийся файл all.spawn.new в all.spawn, вставляем его в папку spawns игры и проверяем что понатворили.
Для декомпиляции all.spawn используем батник (например, all-декомпиляция) с содержанием
acdc11oct.pl -d all.spawn
pause



Такой как есть
Уважение: 571
Награды: 64
Сообщение #9
Для желающих поковырять спавн "Солянки" решил выложить уже разобранный аллспавн с прогой acdc в наборе под него.
Скачать тут: http://webfile.ru/6412668



Такой как есть
Уважение: 571
Награды: 64
Сообщение #10
Доброго времени суток СТАЛКЕРы. Спасибо за прогу с All.spawn для НС - скачал, интерес разгорелся еще больще...(многие ссылаются ,чтобы что то менять в игре безболезнено, на него... ) Меня интересует вопрос по работе с all.spawn - изменение свойтв физического обьекта Stalkera (например Доцент в баре -100 рентген).Он бессмертен - ( stalker_sakharov ) , при изменении его в секции - на section_name = stalker , он должен стать смертным или нет? Или наоборот, сделать "Сталкера-Непися" бессмертным (как вносить иправления). Нужно ли начинать новую игру после изменений?... или менять его свойтва ещё где-либо паралельно алл-спавну...Так же с аномалиями или др. предметом (например электра или фонтанн...) , что нужно менять all.spawn чтобы их удалить совсем(удалить совсем файл в алл-спавне или поставить позицию по 000...) , чтобы они не появлялись...В секции scripts amk_anoms пробывал- пропадают, но не все(по количеству шт.) - как остальные убрать (почему -то все в исправлениях ссылаются на all.spawn ) что нужно? Я так понимаю что нужно убирать не только в скриптах но и в алл-спавне , но как и какая последовательность?Прошу обьяснить ...
Сообщение отредактировал Ден - Понедельник, 25.03.2013, 20:05


Уважение: 21
Награды: 1
Облучение: 0%
Сообщение #11
Цитата (Ден)
изменение свойств физического объекта Stalkera

Что то новенькое...
Не совсем корректно сказали, это не свойство, а секция. Нужен бессмертный сталкер, подставляйте секцию Сахарова/Бармена. Нужен смертный, ставьте обычную (stalker).
После любых изменений в алл спавне, в файлах alife_***.ltx - нужно начинать НИ. Если меняете пути (файлы way_***.ltx) - НИ не нужна.
Если респавн сталкера скриптовый - то секцию можно поменять в файлах, где прописан его профиль. Соответственно, если сталкер уже в онлайне - изменений не будет. Т.е меняем секцию до спавна, либо переспавниваем повторно.

По поводу удаления аномалий. Координаты на 000 не надо ставить. Потом полезут вылеты по вертексам и куча всякой бяки, конца которой не будет видно. В НС львиная доля аномалий респавнятся скриптово. Остальное все в алл спавне. Последовательности никакой нет. Где нужно - там и удаляйте.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #12
Ден, для начала следует чуток внимательно рассмотреть сами секции alife.ltx - сразу можно заметить, что имеются несколько "видов" объектов: сталкеры, живность, физические объекты, разрушаемые объекты и др.
Подробнее о них следует почитать на сталкер-вики.
Касаемо НПС: только от одного аллспавна не зависит будет он смертен или бессмертен, имеются еще несколько файлов отвечающих за НПС - рассмотри для начала подтемку "Создание НПС" воть тута:
http://stalker-gamers.ru/forum/73-366-1
Как было уже сказано volazar, после почти всех изменений в аллспавне требуется начинать НИ - от этого никуда не деться и нужно настроиться на кропотливую работу с кучей перезагрузок игры. Советую сразу не начинать "ковырять" с Солянки. Потренируйтесь на общем шаблоне для большинства модов - чистом ТЧ.
Любой объект, прописанный в аллспавне, может быть удален (аномалии не исключение) - достаточно лишь "подтереть" его секцию с перенумерацией всего массива секций (или заменить удаляемую секцию на секцию другого объекта).
Просто сменой координат на 0,0,0 получаешь массу проблем (сказано выше), потому как на любой локации объекты расположены на сетке, согласно систем координат. Каждый объект имеет координаты в трех измерениях, плюс геймвертекс и левелвертекс (проще объясняя: каждый уровень как шахматная доска поделен на клетки - левелвертексы, все уровни игры глобально разделены еще на "клетки" - геймвертексы). Таким образом, чтобы переместить объект требуется смена его координат в пространстве с учетом вертексов этих самых клеток на "доске". При неверном указании координат получаете вылеты или проблемы некорректного спавна в текстурах.
Маленькое замечание: если собираешься начать курочить аллспавн - внимательно прочти подобие тутора, выложенное в этой теме; второе - пошарься на сталкер-вики, там очень много интересного; третье - заимей программку OGFViewer для просмотра моделей (устранит в будущем вопросы по "непоняткам" с формой и ориентацией моделей).
Будут вопросы - милости просим.



Такой как есть
Уважение: 571
Награды: 64
Сообщение #13
Спасибо за разьяснения СТАЛКЕРы. Буду пробывать. Я попробывал некоторые моменты по изменению методом "тыка"..."Советы знающего СТАЛКЕРа не дадут погибнуть в Зоне..."

Добавлено (27.03.2013, 21:18)
---------------------------------------------
Доброго времени суток СТАЛКЕРы. Меня интересует вопрос по all.spawn - после всех переделок , "вырезаний" и др.го в alife, изменилась порядковая нумерация строк секций... (согласно выше сказанному я начал пронумеровывать по порядку), как пронумеровать (вручную долго и хлопотно - около 1000 строк...) в автомате, с заменой порядковых номеров секций, весь массив.
По "Сидоровичу" - где прописано его бессмертие (в какой из папок all.spawn), в папке с именем escape его я не нашел...

Сообщение отредактировал Ден - Среда, 27.03.2013, 21:39


Уважение: 21
Награды: 1
Облучение: 0%
Сообщение #14
Цитата (Ден)
(согласно выше сказанному я начал пронумеровывать по порядку), как пронумеровать (вручную долго и хлопотно - около 1000 строк..

Ну, не обязательно по порядку, достаточно по возрастанию.
Цитата (Ден)
в автомате, с заменой порядковых номеров секций, весь массив.

К счастью, наконец-то нашёлся один очень хороший товарищ под ником Kirgudu, который всё-таки сваял такой редактор. Ему за это агромаденный респект. Сам редактор хотя и своеобразен, но мал, интуитивен и удобен, имеет "графический" интерфейс, сам создаёт свой ini-файл. Подробности от автора под спойлером:

Ссылки на скачивание:
http://yadi.sk/d/HGMrLhPz2SvmE - от первоисточника
http://webfile.ru/6448962 - с файлообменника

Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #15
Korpus, спасибо за предоставленный редактор для нумерации секций all.spawn. Работает ... , на счет ошибок связанных с пронумерованием вручную - так и есть , компилятор ACDC выдает ошибку и приходится снова все переделовать...

Уважение: 21
Награды: 1
Облучение: 0%
Сообщение #16
Цитата (Ден)
компилятор ACDC выдает ошибку и приходится снова все переделовать...

Не знаю. Всё работает. В отличие от АСДС упаковщика, который производит свою индексацию (только строк по возрастанию, убирает в нумерации провалы) и то при упаковке в аллспавн, редактор работает конкретно с файлами и оставляет откаты. Специально попробовал навести абракадабру в нумерации (и десяток дублей, и с возрастанием, и с убыванием - всё одновременно) и использовать кнопку "Пересчитать индексы" - всё выставляет-перепаковывает, как надо. И ещё прими на заметку - если правки делаешь не в самом это редакторе, а в стороннем и при этом пытаешься провести переиндексацию в редакторе, то всякий раз в нём файлы надо перегружать (они их держит в своём буфере и работает с буфером) - редактор создаст папку отката, куда будет складывать файлы до индексации (это кроме того, что делает откатные файлы ещё в корне папки).
ЗЫ И посмотри в лог вылета упаковщика - на какую строку в твоём аллайфе выдаётся сноска. И глянь, что там - номер секции или ещё что.

Сообщение отредактировал Korpus - Четверг, 28.03.2013, 12:39


Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #17
Ещё раз спасибо, редактор нумерации all.spawn работает отлично!!!

Меня интересует, где в all.spawne ( в какой из папок alife НС ДМХ мода 135 ) находится секция с торговцем Сидоровичем - в папке escape его почему-то нет.

Уважение: 21
Награды: 1
Облучение: 0%
Сообщение #18
Нетуть такого:
section_name = m_trader
name = escape_trader
?
У меня распакованного DMX нет, но думаю, что тоже самое как и в Соли.



Такой как есть
Уважение: 571
Награды: 64
Сообщение #19
Как Сидоровича (торговца на Кордоне) сделать смертным? Где найти описание самой секции m_trader - что вней написано или секция stalker - описание свойств данного НПС (как и сталкер_сахаров)...В каких папках искать?

Уважение: 21
Награды: 1
Облучение: 0%
Сообщение #20
Цитата (Ден)
Где найти описание самой секции m_trader

gamedata\config\creatures\m_person
Веселый Роджер
Уважение: 936
Награды: 112
Форум » S.T.A.L.K.E.R. - Моддинг » Разбираем S.T.A.L.K.E.R. » Уроки моддинга » All.spawn SoC - легко. (Пробуем свои силы)
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: