Создание эксклюзивных НПС на новых локациях для ЗП с использованием приложения  X-Ray SDK0.7

Продолжение «Создание default_squad на новых локациях для ЗП с использованием приложения  X-Ray SDK0.7» Создадим xml файл и в нём создадим эксклюзивного непися: C:\Program Files\X-Ray CoP SDK\editors\gamedata\configs\gameplay\ character_desc_escape. xml

<?xml version='1.0' encoding="windows-1251"?> <specific_character id="esc_viktor_popov" team_default = "1"> <name>Виктор Попов</name> <icon>ui_inGame2_neutral_2_mask</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>esc_viktor_popov</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_02\stalker\</snd_config> <rank>100</rank> <money min="2500" max="5000" infinitive="0"/> <reputation>0</reputation> <visual>actors\stalker_neutral\stalker_neutral_2_mask</visual> <supplies> [spawn] \n wpn_spas12 \n ammo_12x76_zhekan = 1 \n wpn_sig220 \n ammo_11.43x23_hydro = 1 \n grenade_f1 = 3 \n #include "gameplay\character_items_2.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs_3.xml" #include "gameplay\character_drugs_sci.xml" #include "gameplay\character_sell_weapons.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> </xml>

Файл зарегистрировать в: C:\Program Files\X-Ray CoP SDK\editors\gamedata\configs \system.ltx

specific_characters_files =….., character_desc_escape

Зарегистрировать в: C:\Program Files\X-Ray CoP SDK\editors\gamedata\configs\gameplay\npc_profile.xml

<character id="esc_viktor_popov"> <class>esc_viktor_popov</class> </character>

Открываем — C:\Program Files\X-Ray CoP SDK\editors\gamedata\configs\creatures\ Создать файл:  spawn_sections_escape.ltx и зарегистрировать в spawn_sections.ltx:

#include"spawn_sections_escape.ltx"

В файле spawn_sections_escape.ltx прописать созданный профиль:

[esc_viktor_popov]:stalker $spawn = " respawnesc_esc_viktor_popov " character_profile = esc_viktor_popov spec_rank = master community = stalker story_id = esc_viktor_popov

Итак, профиль НПС создан. Добавим эксклюзива к дефолтному сквадру:

gamedata\configs\scripts\escape\smart\esc_polyna.ltx(прописать в созданный файл)

[smart_terrain]; esc_polyna squad_id = 1 (Номер ID – будем считать что это первый смарт на новой локации) max_population = 3 [exclusive] esc _stalker_ popov = escape\esc_ popov_logic.ltx

gamedata\configs\misc\simulation_object_props.ltx

[esc_polyna]: default_squad sim_avail = false

gamedata\configs\misc\smart_terrain_masks.ltx

[esc_polyna] 255,255,255,152

gamedata\configs\misc\squad_descr.ltx

#include "squad_descr_ escape.ltx"

По адресу «gamedata\configs\misc» создать файл с именем «squad_descr_ escape.ltx»

; Здесь содержатся дескрипшены сквадов, которые потом можно создавать используя спец функции. [esc_polyna _stalker_squad]:online_offline_group faction = stalker (Группировка  НПС) npc = sim_default_stalker_1, sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_3, sim_default_stalker_4, esc_viktor_popov (участие 6 НПС) target_smart = esc_polyna  (Принадлежность  отряда к этому смарту) ;spawn_point = esc_polyna_ spawn_point (точка спавна отряда, должна стоять в сцене локации) story_id = esc_polyna _stalker_squad (ID отряда)

gamedata\configs\misc\simulation.ltx

;;;;;;;;;;;;;;;;;;;;;; FINAL ZATON ;;;;;;;;;;;;;;;;;;;;;;;;; [start_position_ escape] esc_polyna _stalker_squad = esc_polyna

Теперь создадим и укажем простую логику esc_viktor_popov

Ссылаясь на gamedata\configs\scripts\escape\smart\esc_polyna.ltx …..= escape\esc_ popov_logic.ltx создадим файл с этим именем по адресу : gamedata\configs\scripts\escape\esc_ popov_logic.ltx и пропишем логику: Первый вариант:

[logic@ esc _stalker_ popov] suitable = {=check_npc_name(esc_viktor_popov)} active = walker@leader prior = 200 [walker@leader] path_walk = viktor_popov_leader_walk path_look = viktor_popov_leader_look meet = meet [meet] ;on_info  =  %=play_sound(zat_b100_heli_2_maps)% no_move = true abuse = false allow_break = false ;не разрешаем ему прерывать диалог meet_on_talking = false ; не разрешаем ему начинать разговор trade_enable = true ; разрешаем ему торговать с ГГ close_distance = 5 ; на расстоянии 5 метров от ГГ close_anim = wait_na ; должен встать в позу охранника close_victim = actor use = {=actor_has_weapon} false, true ; на откликнется, если у ГГ нет в руках ствола snd_on_use = {=actor_has_weapon} meet_hello, nil ; если у ГГ ствол — попросит убрать Теперь в сцене локации в созданном smart_terrain  esc_polyna доставим way и look путь для эксклюзива: <Префикс-имя-локации>_<имя смарта>_<эксклюзивное имя >_<работа> esc_polyna_viktor_popov_leader_walk esc_polyna_viktor_popov_leader_look

Второй вариант:

[logic@ esc _stalker_ popov] suitable = {=check_npc_name(esc_viktor_popov)} active = animpoint @leader prior = 200 [animpoint @leader] cover_name = popov_smart_cover avail_animations = animpoint_sit_normal combat_ignore_cond = false ;out_restr = можно поставить рестиктор вокруг смарта, он не даст уйти с этого места combat_ignore = combat_ignore combat_ignore_keep_when_attacked = false meet = meet [meet] ;on_info  =  %=play_sound(zat_b100_heli_2_maps)% no_move = true abuse = false allow_break = false ;не разрешаем ему прерывать диалог meet_on_talking = false ; не разрешаем ему начинать разговор trade_enable = true ; разрешаем ему торговать с ГГ close_distance = 5 ; на расстоянии 5 метров от ГГ close_anim = wait_na ; должен встать в позу охранника close_victim = actor use = {=actor_has_weapon} false, true ; на откликнется, если у ГГ нет в руках ствола snd_on_use = {=actor_has_weapon} meet_hello, nil ; если у ГГ ствол — попросит убрать

Теперь в сцене локации в созданном smart_terrain esc_polyna доставим smart_cover для эксклюзива с именем:

popov_smart_cover – как написать имя не имеет значения. Всё, непись готов, не забываем скопировать редактированный файлы в игру.