Создание NPC через all.spawn
 
 Нам понадобятся: 
 1. all.spawn 
 2. spawn_sections.ltx 
 3. character_desc_escape.xml 
 4. npc_profile.xml 
 5. game_story_ids.ltx 
 Начнем. 
 1. Распаковываем all.spawn с помощью ACDC. После декомпиляции открываем файл alife_l01_escape.ltx. Пролистываем его до конца. Если у вас чистый all.spawn, то последняя секция должна быть [869]. В самом конце вставляем эту секцию: 
 Код
[870] 
 ; cse_abstract properties 
 section_name = stalker 
 name = esc_newbie 
 position = -214.590072631836,-23.1829700469971,-125.076843261719 
 direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942 
 ; cse_alife_trader_abstract properties 
 money = 5000 
 character_profile = esc_newbie 
 ; cse_alife_object properties 
 game_vertex_id = 59 
 distance = 0 
 level_vertex_id = 39266 
 object_flags = 0xffffffbf 
 custom_data = <<END 
     
 [logic] 
 active = walker@stay_at_position 
 combat_ignore = combat_ignore 
 danger = danger_condition 
     
 [walker@stay_at_position] 
 path_walk = esc_newbie_position_walk 
 path_look = esc_newbie_position_look 
     
 [combat_ignore] 
 combat_ignore_cond = always 
     
 [danger_condition] 
 ignore_distance = 0 
 ignore_distance_corpse = 0 
     
 ; cse 
 [smart_terrains] 
 none = true 
 END 
 story_id = 10000 
 ; cse_visual properties 
 visual_name = actors\neytral\ stalker_neytral_nauchniy.ogf 
 ; cse_alife_creature_abstract properties 
 g_team = 0 
 g_squad = 1 
 g_group = 5 
 health = 1 
 dynamic_out_restrictions =   
 dynamic_in_restrictions =   
 upd:health = 1 
 upd:timestamp = 0x6d6d695f 
 upd:creature_flags = 0x75 
 upd:position = -214.590072631836,-23.1829700469971,-125.076843261719 
 upd:o_model = 0 
 upd:o_torso = -0.000645029998850077,0.0445535257458687,0 
 upd:g_team = 0 
 upd:g_squad = 1 
 upd:g_group = 5 
 ; 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,0,0,2,0 
 predicate4 = 2,2,1,2 
 ; cse_ph_skeleton properties 
 upd:start_dialog =   
 ; se_stalker properties 
 
 Думаю, нужно объяснить что к чему. 
 Код
[870] 
 ; cse_abstract properties 
 section_name = stalker - тип предмета, в нашем случае NPC 
 name = esc_newbie - это мы будем вписывать в game_story_ids.ltx 
 position = -214.590072631836,-23.1829700469971,-125.076843261719 - координаты спавна NPC 
 direction = 0.0445535257458687,-0.000645029998850077,0.0144814234226942 - координаты взгляда NPC 
 ; cse_alife_trader_abstract properties 
 money = 5000 - его деньги 
 character_profile = esc_newbie - ссылка на character_desc_escape.xml, раз мы в alife_l01_escape.ltx работаем 
 ; cse_alife_object properties 
 game_vertex_id = 59 - гейм вертекс спавна 
 distance = 0 
 level_vertex_id = 39266 - левел вертекс спавна 
 object_flags = 0xffffffbf 
 custom_data = <<END 
     
 [logic] - тут прописывается логика, в нашем случае "пассивный"  walker 
 active = walker@stay_at_position 
 combat_ignore = combat_ignore 
 danger = danger_condition 
     
 [walker@stay_at_position] 
 path_walk = esc_newbie_position_walk 
 path_look = esc_newbie_position_look 
     
 [combat_ignore] 
 combat_ignore_cond = always 
     
 [danger_condition] 
 ignore_distance = 0 
 ignore_distance_corpse = 0 
     
 ; cse 
 [smart_terrains] - здесь прописывается смарт террейн, где будет бродить NPC. У нас ходит везде. 
 none = true 
 END 
 story_id = 10000 - его id, нужен для game_story_ids.ltx 
 ; cse_visual properties 
 visual_name = actors\neytral\ stalker_neytral_nauchniy.ogf - модель NPC   
 ; cse_alife_creature_abstract properties 
 g_team = 0 
 g_squad = 1 
 g_group = 5 
 health = 1 - здоровье NPC 
 dynamic_out_restrictions =   
 dynamic_in_restrictions =   
 upd:health = 1 
 upd:timestamp = 0x6d6d695f 
 upd:creature_flags = 0x75 
 upd:position = -214.590072631836,-23.1829700469971,-125.076843261719 
 upd:o_model = 0 
 upd:o_torso = -0.000645029998850077,0.0445535257458687,0 
 upd:g_team = 0 
 upd:g_squad = 1 
 upd:g_group = 5 
 ; 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,0,0,2,0 
 predicate4 = 2,2,1,2 
 ; cse_ph_skeleton properties 
 upd:start_dialog =   
 ; se_stalker properties 
 
 C этим файлом закончили. Сохраняем, выходим. 
 2. Открываем way_l01_escape.ltx. В самом конце вписываем эту секцию: 
 Код
[esc_newbie_position_walk] 
 points = p0 
 p0:name = name00 
 p0:flags = 0x1 
 p0:position =   
 p0:game_vertex_id =   
 p0:level_vertex_id = 
     
 [esc_newbie_position_look] 
 points = p0 
 p0:name = name00 
 p0:flags = 0x1 
 p0:position =   
 p0:game_vertex_id =   
 p0:level_vertex_id =
 Объясняю: 
 Код
[esc_newbie_position_walk] 
 points = p0 
 p0:name = name00 
 p0:flags = 0x1 
 p0:position =  координаты, на которых стоит NPC 
 p0:game_vertex_id = гейм вертекс спавна NPC 
 p0:level_vertex_id = левел вертекс спавна NPC 
     
 [esc_newbie_position_look] 
 points = p0 
 p0:name = name00 
 p0:flags = 0x1 
 p0:position =  координаты, на которых стоит NPC 
 p0:game_vertex_id = гейм вертекс спавна NPC 
 p0:level_vertex_id = левел вертекс спавна NPC
 Сохраняем. Запускаем компиляцию нового all.spawn. 
 3. В character_desc_escape.xml перед секцией Волка добавляем эту секцию: 
 Код
<!---------------------------------------esc_newbie-----------------------------------------------------> 
   <specific_character id="esc_newbie" team_default = "1"> 
    <name>Тестовый</name> 
    <icon>ui_npc_u_stalker_neytral_rukzak_3</icon> 
    <bio>Тестовый непись</bio> 
    <class>esc_newbie</class> 
    <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> 
      
    <rank>1000</rank> 
    <reputation>400</reputation> 
    <money min="1000" max="3000" infinitive="0"/> 
      
    <snd_config>characters_voice\human_01\stalker\</snd_config> 
    <crouch_type>-1</crouch_type> 
     
    <visual>actors\neytral\ stalker_neytral_nauchniy.ogf</visual> 
    <supplies> 
     [spawn] \n 
     wpn_pm \n 
     ammo_9x18_fmj = 1 \n 
     wpn_ak74 \n 
     ammo_5.45x39_fmj \n 
    </supplies> 
      
 #include "gameplay\character_criticals_4.xml" 
    <start_dialog>hello_dialog</start_dialog> 
   </specific_character>
 Сохраняем, выходим. 
 4. В npc_profile.xml после секции "escape_trader" добавляем эту секцию: 
 Код
              <character id="esc_newbie"> 
    <class>esc_newbie</class> 
   </character>
 Сохряняем. 
 5. В spawn_sections.ltx после секции [dolg_regular] вставляем эту секцию: 
 Код
[esc_newbie]:stalker 
 $spawn     = "respawn\esc_newbie" 
 character_profile    = esc_newbie 
 spec_rank = master 
 community = stalker
 Сохраняем, выходим. 
 6. Ну и в game_story_ids.ltx в самом конце вписываем эту строчку 
  
 Сохраняем и выходим. Все, наш NPC готов! 
 P.S. Нужно начинать новую игру. 
 Автор: [MarveL]