Сповіщення
Очистити все

SoC. Робота в offline та online


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
7 місяців тому
 

У грі, напевно, ви зустрічали таке - при отриманні якогось завдання або діалогу з'являються нові НПС або інші ФПС. Приклад у цій статті ми розглядатимемо на Ростку. Отже, нам знадобляться файли 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 direct0 _ _ _ _ _ 
 
 
; 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_s 
 
 



 
 
[ 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.5139007 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
</pre>
 
У цій писанині нам потрібне тільки це:
<pre>
[ spawner ]
 cond = { + bar_heli_scene_stay_online } 
 

Це перехід НПС онлайн при видачі інфопоршня. Щоб переконатися в цьому, знайдемо його в info_l07rostok.xml . Переконалися? Чудово! Рухаємось далі. Замість знака + можна поставити знак - . Значить, при цьому інфопоршні НПС піде в офлайн.

Можна змінювати ці інфопоршні на будь-які інші, зокрема свої. Тепер поміняємо його наприклад на bar_kruglov_follow_tunnel . В підсумку:

[Spawner]
cond = {+bar_kruglov_follow_tunnel}

Цей НПС (або кілька неписів) народжуватимуться, коли ви пройдете через тунель, де найманці-снайпери. Усі інфопоршні брати з файлу, що відповідає локації. Ви можете зробити свій квест та застосувати інфопорші до цієї справи.

PS

Тепер зробимо, щоби все до кінця працювало. Знайдемо смарт_террейн, в якому написано +bar_heli_scene_stay_online . І допишемо туди свій.

 
[ 3857 ]
 ; cse_abstract 
properties section_name = smart_terrain 
name = bar_ecolog_crush 
position = -294.061706542969 , 7 .43865966796875e -005 , 140.005218505850 50 , -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_crus = { + 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
 

Ось він. От і все!


   
Цитата