Показать сообщение отдельно
Старый 27.04.2009, 02:24   #1796
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
Решил описать как заспавнить нового НПС

для того что бы заспавнить НПС нам понядобится:

Программа 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>
всё, все наши манипуляции закончены, если всё сделано правильно то увидете примерно это:
Скрытый текст:


Скачать НПС заспавниного возле пенька
__________________
"Чем больше нас, тем меньше их..."
Jesh вне форума  
Ответить с цитированием