Статистика Форума
Последние обновленные темы
Самые популярные темы
Активисты форума
Авторитеты форума
Bioshock 2

Ответил: WurDalaK
Mass Effect

Ответил: greendayone82
Dead Space

Ответил: greendayone82
Беседы у костра

Создал: WurDalaK; ответов: 2105
Вопросы по модострою

Создал: WurDalaK; ответов: 1161
Ходка №1

Создал: Алеся; ответов: 301
Какой трек у вас сейчас и...

Создал: Never; ответов: 65
Злой админ

Создал: WurDalaK; ответов: 54
WurDalaK

Постов: 2057
Возрожденный

Постов: 1621
Wo1fRam

Постов: 592
Алеся

Постов: 183
Marsel

Постов: 174
WurDalaK

Уважение: 28
Venus

Уважение: 23
Never

Уважение: 17
Возрожденный

Уважение: 13
Wo1fRam

Уважение: 13

  • Страница 1 из 1
  • 1
Модератор форума: WurDalaK  
Форум » Уроки по созданию модов » Правка файла all.spawn » Разбор секции alife
Разбор секции alife
  WurDalaK
Дата: Пятница, 30.03.2012, 18:49 | Сообщение # 1
Mysterious asari
Статус
Страж
Группа Администраторы
Сообщений 2057
Награды 9
-
28
+
Разбор секции 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

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

Цитата
[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 = < [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

Хочешь сказать спасибо? Ставь + в репутацию!
Спрятать подпись Спрятать все подписи
 
Форум » Уроки по созданию модов » Правка файла all.spawn » Разбор секции alife
  • Страница 1 из 1
  • 1
Поиск:
Мини-чат
Яндекс.Метрика