Статистика форума
Самые активные пользователи
Уважаемые пользователи
Недавно обновленные темы
Новые участники
  • Страница 1 из 1
  • 1
Точный разбор секций all.spawn
Основатель сайта
Пользователь №: 1
Регистрация: 11.10.2012
Звание: Легенда
Сообщений: 677
Статус: Оффлайн
Сообщение # 1
Дата: 03.03.2014 в 21:51
Здарова всем. Рассматривать будем на сталкере.
[править]
Разбор секция alife

[81]
Цитата
; cse_abstract properties
section_name = stalker
name = esc_soldier_death
position = -150.2001953125,-29.2462558746338,-228.743957519531
direction = -150.2001953125,-29.2462558746338,-228.743957519531

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_sold_dead

; cse_alife_object properties
game_vertex_id = 98
distance = 16.1000003814697
level_vertex_id = 339597
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
none=true
END

; cse_visual properties
visual_name = actors\soldier\soldier_bandana_3

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 0
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -150.2001953125,-29.2462558746338,-228.743957519531
upd:o_model = 0
upd:o_torso = -150.2001953125,-29.2462558746338,-228.743957519531
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; 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,2,2,1,2
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

Английские буквы..цифры...:(. Сейчас всё будет понятней:

[81] порядковый номер обьекта(не должен повторяться)
; cse_abstract properties (имя секции в acdc.pl или функции я не кодер, так шо хз но ето нам и не надо)
section_name = stalker (системное имя которое задано acdc.pl=> функция package alife_object;)
name = esc_soldier_death (свободное имя на английском языке)
position = -150.2001953125,-29.2462558746338,-228.743957519531 (позиция типа x,y,z, на уровне)
direction = -150.2001953125,-29.2462558746338,-228.743957519531 (направление взгляда x,y,z, на уровне)

; cse_alife_trader_abstract properties (пропорции для торговли)
money = 5000 (кол-во деньжат на старте игры)
character_profile = esc_sold_dead (профиль сталкера из xml,ltx файлов смотри урок по созданию нового НПС)

; cse_alife_object properties (опции обьекта)
game_vertex_id = 98 (вертекс уровня, подробно будет разобрано ниже)
distance = 16.1000003814697 (хз чё за фигня, в переходах например как радиус действия)
level_vertex_id = 339597 (всё понятно, вертекс на уровне )
object_flags = 0xffffffbf (флаг обьекта, типа  offset для чтения движком и респавнером)
custom_data = <<END (далее идёт логика, эта строчка может отсутствовать)
[smart_terrains]
none=true                          {далее логика, смотреть в другой статье
END (завершение логики)

; cse_visual properties (Опция визуализации)

; cse_alife_creature_abstract properties (опции создания обьекта, если дословно)
g_team = 0 (команда НПС, все сталкеры 0)
g_squad = 1 (...)
g_group = 2 (группа, чё то около движка:()
health = 1 (количество жизней при старте НПС)
dynamic_out_restrictions = (...)
dynamic_in_restrictions = (...)

upd:health = 0 (...)
upd:timestamp = 0 (...)
upd:creature_flags = 0 (...)
upd:position = -150.2001953125,-29.2462558746338,-228.743957519531 (дополнительная позиция, лично я её учитываю при спавне)
upd:o_model = 0
upd:o_torso = -150.2001953125,-29.2462558746338,-228.743957519531 (кординаты те же что и в дирекции)
upd:g_team = 0 (...)
upd:g_squad = 1 (...)
upd:g_group = 2 (...)

кое что: upd, скорее всего параметры которые не используются, или почти не используются

cse_alife_monster_abstract properties

upd:next_game_vertex_id = 31 (работает как гейм_вертекс) upd:prev_game_vertex_id = 15523 (работает как левел вертекс) upd:distance_from_point = 0 (...) значения не менять upd:distance_to_point = 0 (...) значения не менять

cse_alife_human_abstract properties

predicate5 = 2,2,0,1,1 (...) значение не менять predicate4 = 0,2,0,2 (...) значение не менять

Цитата
cse_ph_skeleton properties (...)

upd:start_dialog = (...)

se_stalker properties (...)


Автора не забываем указать

Участник:Rez@niy Участник:Loxotron
[править]
Код
Подробный разбор некоторых секций


game_vertex. Действительно, очень интересная секция. Как известно, можно поставить лишь начальный вертекс уровня и НПС заспавнится там где надо. Но уровни у GSC большие. Для удобства движок делит уровень на секции (сектора, поля, полигоны, называйте как хотите). Каждому уровню присвоен свой начальный game_vertex и исходя из него он делится на части.
[править]
Разбор некоторых "штук" и закидонов acdc.pl

Разберём некоторые секции acdc.pl package alife_object; содержит:

Цитата
 actor => 'cse_alife_creature_actor',

graph_point => 'cse_alife_graph_point',

stalker => 'se_stalker',
stalker_monolith => 'se_stalker',
stalker_zombied => 'se_stalker',
stalker_trader => 'se_stalker',
stalker_sakharov => 'se_stalker',
m_barman => 'se_stalker',
m_osoznanie => 'se_stalker',
mil_killer_respawn_1 => 'se_stalker',

m_trader => 'cse_alife_trader',


mil_freedom_respawn_1 => 'se_stalker',
mil_freedom_respawn_3 => 'se_stalker',
dolg_regular => 'se_stalker',

m_bloodsucker_e => 'se_monster',
bloodsucker_weak => 'se_monster',
bloodsucker_normal => 'se_monster',
bloodsucker_strong => 'se_monster',
bloodsucker_arena => 'se_monster',
bloodsucker_mil => 'se_monster',

m_boar_e => 'se_monster',
boar_weak => 'se_monster',
boar_normal => 'se_monster',
boar_strong => 'se_monster',

m_burer_e => 'se_monster',
burer_arena => 'se_monster',
m_burer_normal => 'se_monster',
m_burer_normal_black => 'se_monster',
burer_indoor => 'se_monster',
burer_outdoor => 'se_monster',

m_cat_e => 'se_monster',
cat_weak => 'se_monster',
cat_normal => 'se_monster',
cat_strong => 'se_monster',

m_chimera_e => 'se_monster',
chimera_weak => 'se_monster',
chimera_normal => 'se_monster',
chimera_strong => 'se_monster',

m_controller_e => 'se_monster',
m_controller_normal => 'se_monster',
m_controller_normal_fat => 'se_monster',
m_controller_old => 'se_monster',
m_controller_old_fat => 'se_monster',
controller_tubeman => 'se_monster',

m_crow => 'cse_alife_creature_crow',

m_dog_e => 'se_monster',
dog_weak => 'se_monster',
dog_normal => 'se_monster',
dog_strong => 'se_monster',

m_flesh_e => 'se_monster',
flesh_weak => 'se_monster',
flesh_normal => 'se_monster',
flesh_strong => 'se_monster',

m_fracture_e => 'se_monster',
fracture_normal => 'se_monster',
fracture_strong => 'se_monster',

m_gigant_e => 'se_monster',
gigant_normal => 'se_monster',
gigant_strong => 'se_monster',

m_phantom => 'cse_alife_creature_phantom',

m_poltergeist_e => 'se_monster',
m_poltergeist_normal => 'se_monster',
m_poltergeist_normal_tele => 'se_monster',
m_poltergeist_tele_outdoor => 'se_monster',
m_poltergeist_normal_flame => 'se_monster',
m_poltergeist_strong_flame => 'se_monster',

m_pseudodog_e => 'se_monster',
pseudodog_weak => 'se_monster',
pseudodog_normal => 'se_monster',
pseudodog_strong => 'se_monster',
pseudodog_arena => 'se_monster',
psy_dog => 'se_monster',
psy_dog_phantom => 'se_monster', # cse_alife_psy_dog_phantom really
psy_dog_radar => 'se_monster',

Теперь по русски.

       dodik(класс из dll)                                   => 'se_dodik', (имя скрипта)

Чтобы не переименовывать all.spawn смотрите конец acdc.pl и просто смените формат с all.spawn.new на all.spawn




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



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

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

  
Наверх