Статистика форума
Самые активные пользователи
Уважаемые пользователи
Недавно обновленные темы
Новые участники
  • Страница 1 из 1
  • 1
Распаковка all.spawn
Основатель сайта
Пользователь №: 1
Регистрация: 11.10.2012
Звание: Легенда
Сообщений: 677
Статус: Оффлайн
Сообщение # 1
Дата: 03.03.2014 в 21:52
Для того, чтобы распаковать all.spawn, нам потребуется acdc. Для каждой версии игры нам понадобиться свой. Я описываю для ЗП ( во всех частях сталкера этот процесс идентичен), поэтому и пользуюсь acdc от ЗП. Для того, чтобы запустить acdc нам будет нужен ActivePerl 5.8.8. После того, как вы скачали acdc, установите ActivePerl 5.8.8(если вы этого еще не сделали). Распакуйте acdc и скопируйте в эту папку свой all.spawn. Запустите .bat файл decompile(если его нет, то откройте блокнот, запишите в нем такие строки:

perl acdccop.pl -d all.spawn
pause


И сохраните под именем "decompile.bat" Запускайте батник. Через некоторое время появятся .ltx файлы. Все,  all.spawn распакован и ждет шаманства над собой

Структура файлов

Рассмотрим структуру файлов. Файлы типа alife_ - это основные файлы, в которых содержаться секции спавна. Файлы типа way_ - это и есть "вэй". Сквады, логика и прочая дребедень. Трогать мы их не будем. Откроем любой alife_ файл и увидим там много секций спавна. Вот одна из них:

[0]
; cse_abstract properties
section_name = breakable_object
name = meshes\brkbl#0.ogf
position = -160.539749145508,21.5325393676758,-195.387329101563
direction = -0.00700339116156101,-0.108852192759514,0.412739604711533
; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 293223
object_flags = 0xffffffba
; cse_visual properties
visual_name = meshes\brkbl#0
; cse_alife_object_breakable properties
health = 1


А теперь подробнее:

[0] - уникальный "id", то бишь номер секции
; cse_abstract properties - комментарий
section_name = breakable_object - название секции( НЕ В КОЕМ СЛУЧАЕ НЕ СТАВТЕ ЗДЕСЬ СВОЕ НАЗВАНИЕ, ИНАЧЕ all.spawn ВЫ НЕ ЗАПАКУЕТЕ)
name = meshes\brkbl#0.ogf - тоже название... Тут уже что годно можно написать
position = -160.539749145508,21.5325393676758,-195.387329101563 - позиция на которой будет спавн
direction = -0.00700339116156101,-0.108852192759514,0.412739604711533 - направление. В какую сторону "смотрит" обьект.
; cse_alife_object properties - комментарий
game_vertex_id = 0 - вертикс.
distance = 0
level_vertex_id = 293223 - тоже вертикс. (зачем они объяснять не буду)
object_flags = 0xffffffba - флаги обьекта. тоже рассматривать не будем
; cse_visual properties - комментарий
visual_name = meshes\brkbl#0 - визуал.
; cse_alife_object_breakable properties - комментарий.
health = 1 - здоровье.


Файл all.ltx - это список файлов, которые упакованы вall.spawn  .

Создаем новую секцию спавна
Ну вот, самое интересное начинается ) Открываем любой файл. Я буду спавнить свои объекты, на новой локации.

Допустим, нам нужно заспавнить сталкера. Создаем секцию спавна. (ВНИМАНИЕ! ПРЕЖДЕ ЧЕМ СПАВНИТЬ СТАЛКЕРА, ЕГО НУЖНО СОЗДАТЬ).

[20927] - уникальный номер секции
; cse_abstract properties
section_name = stalker - название секции. Если спавните сталкера - stalker. Своих названий быть не должно.
name = marsh_strelok - имя. я использую имя профиля, которого вы создавали при создании нпс
position = -150.17852783203,0.63608288764954,-293.19580078125 - координаты.
direction = 0.062321275472641,0.00316426996141672,0.0140644172206521 - направление. Куда сталкер будет смотреть.
; cse_alife_trader_abstract properties -
money = 50000 - деньги )
character_profile =
 marsh_strelok - профиль, который вы указали при создании нпс. Вот тут нужно указывать его ; cse_alife_object properties
game_vertex_id = 934 - вертикс локации
distance = 4.90000009536743 - дистанция, зачем нужна не знаю.
level_vertex_id = 1418 - вертикс локации )
object_flags = 0xffffffbf
custom_data = <<END - кастом дата. Очень важный элемент при создании нпс. Проще говоря - логика.
cfg = scripts/marsh/strelok.ltx - путь к конфигу кастом даты
[smart_terrains] - смарт террайны ( не рассматривается)
END - окончание кастом даты
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
(зачем нужно это не совсем понимаю, но заполнять так же, как и в основной секции)
upd:health = 1
upd:timestamp = 0x2009656c
upd:creature_flags = 0x3d
upd:position = -150.17852783203,0.63608288764954,-293.19580078125
upd:o_model = 0
upd:o_torso = 0.00316426996141672,0.062321275472641,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0
; cse_alife_human_abstract properties
predicate5 = 1,1,0,0,1
predicate4 = 2,2,0,2
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties


Сохраняем. Запаковываем  all.spawn, файлом compile.bat. Если такого батника нет, то опять открываем блокнот, пишем в него следующие строки и сохраняем как батник:

acdc_soc.pl -c all.ltx -o ./new.all.spawn
pause


В папке gamedata создаем папку spawns и копируем файл new.all.spawn(он будет называться именно так). Потом переименовываем в all.spawn.




  • Страница 1 из 1
  • 1
Поиск:
Пользователи, посетившие форум за текущий день
13:41
Обновить



Тени Чернобыля Чистое Небо Зов Припяти S.T.A.L.K.E.R. 2

Сайт управляется системой uCoz | Design by EXELENT
Авторское право на игру и использованные в ней материалы принадлежат GSC Game World
Администрация сайта не несёт ответственности за содержащиеся файлы на данном портале.
В случае полного, или частичного копирования ссылка на источник обязательна!
© 2012 Zona-chernobyl

  
Наверх