• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: FAN, V@Dik008  
Спавн NPC через all.spawn
# 1
Суббота, 01.02.2014, 10:09:03

Ранг: Мастер
Сообщений: 743
Награды: 36 Регистрация: 08.11.2012 Город: Красноярск    

Создание 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 в самом конце вписываем эту строчку

Код
10000          = "esc_newbie"


Сохраняем и выходим. Все, наш NPC готов!
P.S. Нужно начинать новую игру.
Автор: [MarveL]


И даже после всего прочего - мы все равно остаемся здесь.
  • Страница 1 из 1
  • 1
Поиск:
Вверх
Правила чата
Мини-чат
+Мини-чат
0