В игре наверняка вы встречали такое - при получении какого-то задания или диалога появляются новые НПС или прочие ФПС. Пример в этой статье мы будем рассматривать на Ростке. Итак, нам понадобятся файлы info_l07rostok.xml, all.spawn и программа ACDC.
Начало
Начнем! Распакуем all.spawn и откроем файл alife_l06_rostok.ltx. В нём найдём такие строчки:
[3851]
; cse_abstract properties
section_name = stalker
name = bar_freedom_attacker_1
position = -214.942504882813,-2.09808349609375e-005,164.513900756836
direction = 0,0,0
; cse_alife_trader_abstract properties
money = 5000
character_profile = bar_Killer_regular
; cse_alife_object properties
game_vertex_id = 1335
distance = 6.29999971389771
level_vertex_id = 23441
object_flags = 0xffffffff
custom_data = <<END
[spawner]
cond = {+bar_heli_scene_stay_online}
[smart_terrains]
bar_freedom_attack = true
END
; cse_visual properties
visual_name = actors\killer\stalker_ki_mask
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 5
g_group = 7
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -214.942504882813,-2.09808349609375e-005,164.513900756836
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 0
upd:g_squad = 5
upd:g_group = 7
; 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 = 0,1,2,0,2
predicate4 = 0,1,1,0
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
В этой писанине нам нужно только это:
[spawner]
cond = {+bar_heli_scene_stay_online}
Это переход НПС в онлайн при выдаче инфопоршня. Чтбы убедится в этом найдём его в info_l07rostok.xml. Убедились? Отлично! Двигаемся дальше. Вместо знака + вы можете поставить знак -. Значит при этом инфопоршне НПС уйдет в оффлайн.
Можно менять эти инфопоршны на любые другие, в том числе свои. Теперь поменяем его к примеру на bar_kruglov_follow_tunnel. В итоге:
[spawner]
cond = {+bar_kruglov_follow_tunnel}
Этот НПС (или несколько неписей) буду рождаться, когда вы пройдете через туннель, где наёмники-снайперы. Все инфопоршны брать из файла, соответствующего локации. Вы можете сделать свой квест и применить инфопоршы к этому делу.
P.S.
Теперь сделаем, чтобы всё до конца работало. Найдём смарт_террейн, в котором прописан +bar_heli_scene_stay_online. И допишем туда свой.
[3857]
; cse_abstract properties
section_name = smart_terrain
name = bar_ecolog_crush
position = -294.061706542969,7.43865966796875e-005,140.005218505859
direction = 1.01860559880151e-005,-7.54995954643789e-010,7.41205367376097e-005
; cse_alife_object properties
game_vertex_id = 1350
distance = 2.79999995231628
level_vertex_id = 100
object_flags = 0xffffffbe
custom_data = <<END
[smart_terrain]
type = bar_ecolog_crush
capacity = 5
squad = 5
groups = 1,2
cond = {+bar_heli_scene_stay_online},{+bar_kruglov_follow_tunnel}
END
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2.66736793518066
; cse_alife_space_restrictor properties
restrictor_type = 0
; se_smart_terrain properties
Вот он. Вот и всё!