Решил описать как заспавнить нового НПС
для того что бы заспавнить НПС нам понядобится:
Программа
PositionExtracter для того что бы узнать координаты позиции спавна,
level_vertex_id и
game_vertex_id
Файлы, который будем редактировать:
all.spawn в gamedata/spawns
character_desc_escape.xml в gamedata/config/gameplay
npc_profile.xml в gamedata/config/gameplay
начнём с того, что выберем позицию нового НПС и снимим координаты с помощью
PositionExtracter(как устанавливатся и пользоватся, указано в ридми)
Скрытый текст:
начнём игру, выберем место:

возле того пенька думаю будет не плохо, подбегаем поближе:

нажимаем
Esc после
F1:

вписываем любое имя латинецей
после через
posExtracter получим наши координаты:
перейдём к правке
all.spawn, он нам потребуется в распакованом виде, для того что этого добится, просьба ознакомится с
этим тутором
в нём уже редактировать файлы
alife_l01_escape.ltx и
way_l01_escape.ltx
в
alife_l01_escape.ltx в низу допишем:
Цитата:
[870]
; cse_abstract properties
section_name = stalker
name = mehanik
position=-236.36477661133,-19.738483428955,-131.2624206543
direction = 0,0,0
; cse_alife_trader_abstract properties
money = 5000
character_profile = mehanik
; cse_alife_object properties
game_vertex_id = 8
distance = 15.3999996185303
level_vertex_id=18766
object_flags = 0xffffffff
custom_data = <<END
[logic]
active = camper
[camper]
path_look = my_own_camper_look
path_walk = my_own_camper_walk
radius = 1
sniper = true
[spawn]
wpn_ak74
ammo_5.45x39_fmj = 1
[smart_terrains]
none = true
END
; cse_visual properties
visual_name = actors\soldier\soldier_bandana_6
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -236.36477661133,-19.738483428955,-131.2624206543
upd _model = 0
upd _torso = 0,0,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0
; 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,2,0,2
predicate4 = 0,2,1,2
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
|
где мы правили:
name = mehanik - имя нашего непися
position=-236.36477661133,-19.738483428955,-131.2624206543 - берём с
posExtracter
character_profile = mehanik - имя нашего непися
game_vertex_id = 8- берём с
posExtracter
level_vertex_id=18766 - берём с
posExtracter
Цитата:
[logic]
active = camper
[camper]
path_look = my_own_camper_look
path_walk = my_own_camper_walk
radius = 1
sniper = true
[spawn]
wpn_ak74
ammo_5.45x39_fmj = 1
[smart_terrains]
none = true
|
простейшая логика, спавн и то что не принадлежит не одному из смарт терейнов(none = true)
visual_name = actors\soldier\soldier_bandana_6 - как будет выглядеть наш НПС
upd:position = -236.36477661133,-19.738483428955,-131.2624206543 - берём с
posExtracter
в
way_l01_escape.ltx допишем:
Цитата:
[my_own_camper_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -236.36477661133,-19.738483428955,-131.2624206543
p0:game_vertex_id = 8
p0:level_vertex_id = 18766
[my_own_camper_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -236.36477661133,-19.738483428955,-131.2624206543
p0:game_vertex_id = 8
p0:level_vertex_id = 18766
|
my_own_camper_look и
my_own_camper_walk работают из:
Цитата:
[camper]
path_look = my_own_camper_look
path_walk = my_own_camper_walk
|
game_vertex_id, level_vertex_id, position с
posExtracter, у меня они одни(что бы НПС постоянно стоял на одном месте)
после данных правок собираем наш all.spawn обратно
перейдём к правке
character_desc_escape.xml, допишем там:
Цитата:
<specific_character id="mehanik" team_default = "1">
<name>mehanik</name>
<icon>ui_npc_u_green_stalker_5</icon>
<bio>esc_stalker_novice_bio</bio>
<class>mehanik</class>
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<rank>350</rank>
<reputation>10</reputation>
<money min="200" max="600" infinitive="0"/>
<snd_config>characters_voice\human_01\newbie\</snd_config>
<crouch_type>-1</crouch_type>
<visual>actors\soldier\soldier_bandana_6</visual>
<supplies>
[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
wpn_bm16 \n
ammo_12x70_buck \n
device_torch \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
</supplies>
#include "gameplay\character_criticals_3.xml"
<start_dialog>hello_dialog</start_dialog>
</specific_character>
|
жирным казано, где вводится имя нашего НПС, жирным и подчёркнутым, его визуал(как выглядеть будет)
теперь осталось подправить
npc_profile.xml, допишем:
Цитата:
<character id="mehanik">
<class>mehanik</class>
<specific_character>mehanik</specific_character>
</character>
|
всё, все наши манипуляции закончены, если всё сделано правильно то увидете примерно это:
Скачать НПС заспавниного возле пенька