SoC. Работа в offline и online — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
RedPython (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
− | В игре наверняка вы встречали такое - | + | В игре наверняка вы встречали такое - при получении какого-то задания или диалога появляются новые НПС или прочие ФПС. Пример в этой статье мы будем рассматривать на Ростке. Итак, нам понадобятся файлы '''info_l07rostok.xml''', '''all.spawn''' и программа '''ACDC'''. |
− | + | ||
− | + | ||
− | all.spawn | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ===Начало=== | |
− | <pre>[3851] | + | Начнем! Распакуем '''all.spawn''' и откроем файл '''alife_l06_rostok.ltx'''. В нём найдём такие строчки: |
+ | <pre> | ||
+ | [3851] | ||
; cse_abstract properties | ; cse_abstract properties | ||
section_name = stalker | section_name = stalker | ||
Строка 74: | Строка 64: | ||
upd:start_dialog = | upd:start_dialog = | ||
− | ; se_stalker properties</pre> | + | ; se_stalker properties |
+ | </pre> | ||
В этой писанине нам нужно только это: | В этой писанине нам нужно только это: | ||
− | <pre>[spawner] | + | <pre> |
− | cond = {+bar_heli_scene_stay_online}</pre> | + | [spawner] |
+ | cond = {+bar_heli_scene_stay_online} | ||
+ | </pre> | ||
− | Это переход НПС в онлайн при выдаче инфопоршня. Чтбы убедится в этом найдём его в info_l07rostok.xml | + | Это переход НПС в онлайн при выдаче инфопоршня. Чтбы убедится в этом найдём его в '''info_l07rostok.xml'''. |
− | Убедились? Отлично! Двигаемся дальше. Вместо знака + вы можете поставить знак -. Значит при этом инфопоршне НПС уйдет в оффлайн. | + | Убедились? Отлично! Двигаемся дальше. Вместо знака '''+''' вы можете поставить знак '''-'''. Значит при этом инфопоршне НПС уйдет в оффлайн. |
− | Можно менять эти инфопоршны на любые другие, в том числе свои. Теперь поменяем его к примеру на. | + | Можно менять эти инфопоршны на любые другие, в том числе свои. Теперь поменяем его к примеру на ''bar_kruglov_follow_tunnel''. В итоге: |
+ | |||
+ | <pre> | ||
+ | [spawner] | ||
+ | cond = {+bar_kruglov_follow_tunnel} | ||
+ | </pre> | ||
− | + | Этот НПС (или несколько неписей) буду рождаться, когда вы пройдете через туннель, где наёмники-снайперы. Все инфопоршны брать из файла, соответствующего локации. Вы можете сделать свой квест и применить инфопоршы к этому делу. | |
− | + | ||
− | + | ||
− | Этот НПС (или | + | |
− | P.S. | + | ===P.S.=== |
− | Теперь сделаем чтобы всё до конца | + | Теперь сделаем, чтобы всё до конца работало. Найдём смарт_террейн, в котором прописан ''+bar_heli_scene_stay_online''. И допишем туда свой. |
− | <pre>[3857] | + | <pre> |
+ | [3857] | ||
; cse_abstract properties | ; cse_abstract properties | ||
section_name = smart_terrain | section_name = smart_terrain | ||
Строка 124: | Строка 120: | ||
; se_smart_terrain properties | ; se_smart_terrain properties | ||
</pre> | </pre> | ||
− | + | Вот он. Вот и всё! | |
+ | |||
+ | ===См. также=== | ||
+ | Мою статью "[[Работа с ACDC]]". | ||
[[Категория:Скрипты]] | [[Категория:Скрипты]] |
Версия 17:48, 3 июня 2010
В игре наверняка вы встречали такое - при получении какого-то задания или диалога появляются новые НПС или прочие ФПС. Пример в этой статье мы будем рассматривать на Ростке. Итак, нам понадобятся файлы 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
Вот он. Вот и всё!
См. также
Мою статью "Работа с ACDC".