Перейти к контенту

Создание NPC "привязанного к точке" без редактирования all.spawn


Рекомендуемые сообщения

Создание НПС "привязанного к точке" без редактирования all.spawn


Предисловие:В Личке меня спрашивали как создать НПСа с логикой Снайпера без редактирования алл.спавна.Такой вопрос мне задавали раза 3 - 4.Поэтому решил создать тему(временную) где опишу как быстро и без особых усилий это сделать.Просьба Модераторам Не Удалять и не закрывать эту тему денька два.Пусть Народ Увидит и Поспрашивает.
Изменено пользователем ColR_iT
  • Нравится 2
Ссылка на комментарий

единственное подозрение:

т.к. из секции респавна берутся профили для спавна неписей в симуляции, не будет ли клонирования данного конкретного непися?

Ссылка на комментарий

Такого не замечал :)..Как был такой один (тестовый),так и за всё прохождение игры моим отцом под моим наблюдением второго такого не было:)

Ссылка на комментарий

Можно , в название секции писать то название которое вы ему дали ,к примеру test_sniper_csky.

то есть можно писать что угодно?

Да,только латиницей.

Ссылка на комментарий

меченый(стрелок), спасибо за объясния! Очень помогло!

Но есть пара вопросов:

1. Не мог бы ты написать о спаун-скрипте поподробней? Я видимо что-то неправильно делаю, подскажи где ошибка, если не сложно:

---------------------------------------------
function start_add_spawn()
spawn_sniper_one()
end
---------------------------------------------
function spawn_sniper_one()
alife():create("esc_sniper_v_derevne",vector():set(-164.61051940918,-7.5868330001831,-153.0520324707),353216,1)
end

function save_variable(variable_name, value)
xr_logic.pstor_store(db.actor, variable_name, value)
end
function load_variable(variable_name, value_if_not_found)
return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)
end
end

2. А возможно скриптом заспаунить спящего на опр. точке нпс? И ходящего от точки к точке нпс (патрульного)? Какую логику им прописывать?

Изменено пользователем Bip-Bip
1ca5625b.jpg
Ссылка на комментарий

Но для этого нужны пути в all.spawn-е. Хотя, можно использовать и remark (без путей):

[remark@sleeper]
anim = sleep
snd = sleep

Но у непися, использующего логику remark, есть особенность - зависать. Обычно это происходит, если непись срывается в бой, либо после выброса, либо если испугается\почует врага. Поэтому, лучше такому добавить combat_ignore и danger_ignore. Если же вообще не планируется вести с ним беседы, то можно отключить у него диалог - meet = no_meet.

А вот для создания перемещающегося, уже необходимы пути и ковыряние all.spawn. Логика: camper, walker, patrol и т.д. Но раз тут тема без ковыряния коварного файла, то можно использовать follower - но только в том случае, если есть за кем идти. Например:

[follower]
leader = 6 -- story_id ведущего (здесь ID Волка);
distance = 1.0 -- дистанция до ведущего, в метрах (можно и больше);
anim_sprint = run -- это
anim_run = rush -- это
anim_walk = walk -- и это - "ходячая" анимация, которую непись будет использовать, следуя за ведущим.

 

Кстати, в xr_conditions.script, нет функции is_enemy_actor, так что комбат игнор не сработает.

Строку:

combat_ignore_cond = {!is_enemy_actor}

Заменить на:

combat_ignore_cond = {!actor_enemy}

И вообще combat_ignor не сработает без добавления её в блок logic.

[logic]
active = ....
combat_ignor = combat_ignore

[combat_ignore]

 

Продублировал пост в личку без спойлеров.

Изменено пользователем WAWKA
Ссылка на комментарий

if moskiton_add.load_variable("spawn_moskiton",false)==false then
	moskiton_add.start_add_spawn()
	moskiton_add.save_variable("spawn_moskiton",true)
end  

у меня вместо

if sniper_add.load_variable("spawn_sniper",false)==false then
sniper_add.start_add_spawn()
sniper_add.save_variable("spawn_sniper",true)
end

если не сложно после какой строчки добавлять эту функцию, так как я добавил как сказано в теме был вылет

exp​ression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no exp​ression>
Arguments     : LUA error: ...:\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:568: attempt to index global 'moskiton_add' (a nil value)

Изменено пользователем Moskiton
Ссылка на комментарий

Вообщем вылет без лога, вот чего я добился эхх

 

 

№1

!Фаил который редактирую = \gamedata\config\gameplay\character_desc_escape.xml

 

<!---------------------------------------esc_Moskiton----------------------------------------------------->

<specific_character id="esc_moskiton" team_default = "1">

<name>Москитон</name>

<icon>ui_npc_u_hunter_70_novice</icon>

<map_icon x="1" y="0"></map_icon>

<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

 

<class>esc_moskiton</class>

<community>trader</community> <terrain_sect>stalker_terrain</terrain_sect>

 

<rank>900</rank>

<reputation>1000</reputation>

<money min="100000" max="110000" infinitive="1"/>

 

<snd_config>characters_voice\human_03\stalker\</snd_config>

<crouch_type>-1</crouch_type>

<panic_treshold>0</panic_treshold>

 

<visual>actors\exoskelet_black</visual>

<supplies>

[spawn] \n

wpn_vintorez \n

ammo_9x39_sp5 = 1 \n

</supplies>

 

#include "gameplay\character_criticals_4.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

№2

!Фаил который редактирую = \gamedata\config\gameplay\npc_profile.xml

 

<character id="esc_moskiton">

<class>Trader</class>

<specific_character>esc_moskiton</specific_character>

</character>

 

№3

!Фаил который редактирую = \gamedata\config\creatures\spawn_sections.ltx

 

[esc_moskiton_respawn]:stalker_sakharov

$spawn = "respawn\esc_moskiton_respawn"

character_profile = esc_moskiton

spec_rank = master

community = Trader

custom_data = scripts\moskiton_addon\moskiton_addon_friend_logic.ltx

 

№4

!Фаил который редактирую = \gamedata\scripts\xr_conditions.script

 

function is_moskiton_enemy(enemy, object)

return enemy:id() ~= db.actor:id()

end

 

№5 пункты 5.1 и 5.2 пропустил так как работает все правильно, пункт 5.3

!Фаил который редактирую = \gamedata\scripts\moskiton_add.script

 

function spawn_moskiton()

end

 

function spawn_moskiton()

local x=130.7614440918

local y=0.21727779507637

local z=336.71932983398

local level_vertex=435469

local game_vertex_id=233

alife():create("esc_moskiton_respawn",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function save_variable(variable_name, value)

xr_logic.pstor_store(db.actor, variable_name, value)

end

function load_variable(variable_name, value_if_not_found)

return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)

end

 

№5.4

!Фаил который редактирую = \gamedata\scripts\bind_stalker.script строки 568-571

 

if moskiton_add.load_variable("spawn_moskiton",false)==false then

moskiton_add.spawn_moskiton()

moskiton_add.save_variable("spawn_moskiton",true)

end

 

№6

!Папка которую редактирую = \gamedata\config\scripts\moskiton_addon\

 

№6.1

!Фаил который редактирую = \gamedata\config\scripts\moskiton_addon\moskiton_addon_friend_logic.ltx

 

[logic]

active = walker

combat_ignore = combat_ignore

trade = misc\moskiton\moskiton.ltx

 

[remark]

anim = ward

combat_ignore_cond = always

danger_ignore = danger_ignore

 

[combat_ignore]

 

[danger_ignore]

ignore_distance = 0

 

[walker]

path_walk = walk

path_look = look

№6.2

!Фаил который редактирую = \gamedata\config\scripts\moskiton_addon\moskiton_addon_enemy_logic.ltx

 

[logic]

active = remark

combat_ignore = combat_ignore

trade = misc\moskiton\moskiton.ltx

 

[remark]

anim = ward

combat_ignore_cond = always

danger_ignore = danger_ignore

 

[combat_ignore]

 

[danger_ignore]

ignore_distance = 0

 

№7

!Фаил который редактирую = \gamedata\config\misc\moskiton\moskiton.ltx

 

[trader]

buy_condition = generic_buy

sell_condition = generic_sell

buy_supplies = generic_start_sell

 

 

[generic_buy]

 

matras = 1, 1

treasure_item = 1, 1

gorelka = 1, 1

manometr = 1, 1

trubka = 1, 1

flamethrower_bad = 1, 1

amk_kanistra = 1, 1

amk_ballon = 1, 1

wpn_flame = 1, 1

tisku_arhara = 1, 1

device_pda_npc = 1, 1

arc_art_box_basic = 1, 1

arc_art_box_1basic = 1, 1

arc_art_box_8basic = 1, 1

 

;Артефакты

af_medusa = 1, 1

af_cristall_flower = 1, 1

af_night_star = 1, 1

af_vyvert = 1, 1

af_gravi = 1, 1

af_gold_fish = 1, 1

af_blood = 1, 1

af_mincer_meat = 1, 1

af_soul = 1, 1

af_electra_sparkler = 1, 1

af_electra_flash = 1, 1

af_electra_moonlight = 1, 1

af_rusty_thorn = 1, 1

af_rusty_kristall = 1, 1

af_rusty_sea-urchin = 1, 1

af_ameba_slime = 1, 1

af_ameba_slug = 1, 1

af_ameba_mica = 1, 1

af_drops = 1, 1

af_fireball = 1, 1

af_cristall = 1, 1

af_dummy_glassbeads = 1, 1

af_dummy_pellicle = 1, 1

af_dummy_battery = 1, 1

af_dummy_dummy = 1, 1

af_dummy_spring = 1, 1

af_fuzz_kolobok = 1, 1

af_buliz = 1, 1

af_spirit_1 = 1, 1

af_spirit_2 = 1, 1

af_spirit_3 = 1, 1

af_spirit_4 = 1, 1

af_cry_1 = 1, 1

af_cry_2 = 1, 1

af_cry_3 = 1, 1

af_babka_1 = 1, 1

af_babka_2 = 1, 1

af_babka_3 = 1, 1

af_pudd_1 = 1, 1

af_pudd_2 = 1, 1

af_pudd_3 = 1, 1

af_pudd_4 = 1, 1

af_dik_1 = 1, 1

af_dik_2 = 1, 1

af_dik_3 = 1, 1

af_dik_4 = 1, 1

af_kol_1 = 1, 1

af_kol_2 = 1, 1

af_kol_3 = 1, 1

af_kol_4 = 1, 1

af_armor_1 = 1, 1

af_armor_2 = 1, 1

af_armor_3 = 1, 1

af_armor_4 = 1, 1

af_simbion = 1, 1

af_dummy_battery_red = 1, 1

af_dummy_spring_red = 1, 1

af_dummy_pellicle_red = 1, 1

af_medusa_green = 1, 1

af_vyvert_green = 1, 1

af_blood_green = 1, 1

gold_art = 1, 1

af_caterpillar = 1, 1

 

;Архара капсулы от Симбиона

caps_mosquito_bald = 1, 1

caps_gravi = 1, 1

caps_mincer = 1, 1

caps_electra = 1, 1

caps_zharka = 1, 1

caps_ameba = 1, 1

 

;Аммуниция

ammo_9x39_sp5 = 1, 1

ammo_9x39_ap = 1, 1

ammo_9x39_pab9 = 1, 1

 

grenade_f1 = 1, 1

grenade_rgd5 = 1, 1

 

;Оружие

wpn_vintorez = 1, 1

 

 

;БРОНЯ ЕЕ МАТЬ

 

scientific_outfit = 1, 1

 

;Медикаменты

bandage = 1, 1

medkit = 1, 1

medkit_scientic = 1, 1

medkit_army = 1, 1

antirad = 1, 1

antizombie = 1, 1

 

;Детали монстров

mutant_flesh_eye = 1, 1

mutant_boar_leg = 1, 1

mutant_dog_tail = 1, 1

mutant_psevdodog_tail = 1, 1

mutant_krovosos_jaw = 1, 1

mutant_burer_hand = 1, 1

mutant_zombie_hand = 1, 1

mutant_snork_leg = 1, 1

mutant_face_tushkano = 1, 1

mutant_hand_kontroler = 1, 1

mutant_poltergeist_glas = 1, 1

mutant_psevdogigant_hand = 1, 1

mutant_tail_cat = 1, 1

mutant_chimera_kogot = 1, 1

mutant_fracture_hand = 1, 1

mutant_spleen_rat = 1, 1

 

;Еда

bread = 1, 1

kolbasa = 1, 1

conserva = 1, 1

vodka = 1, 1

energy_drink = 1, 1

mozg = 1, 1

lekarstvo = 1, 1

vorona_egg = 1, 1

 

;Предметы

zamok = 1, 1

bioradar = 1, 1

device_torch = 1, 1

detector_simple = 1, 1

detector_advances = 1, 1

detector_elite = 1, 1

device_pda = 1, 1

hand_radio = 1, 1

guitar_a = 1, 1

harmonica_a = 1, 1

arhara_tele = 1, 1

 

 

[generic_sell]

 

matras = 1, 1

treasure_item = 1, 1

gorelka = 1, 1

manometr = 1, 1

trubka = 1, 1

flamethrower_bad = 1, 1

amk_kanistra = 1, 1

amk_ballon = 1, 1

wpn_flame = 1, 1

tisku_arhara = 1, 1

device_pda_npc = 1, 1

arc_art_box_basic = 1, 1

arc_art_box_1basic = 1, 1

arc_art_box_8basic = 1, 1

 

;Артефакты

af_medusa = 1, 1

af_cristall_flower = 1, 1

af_night_star = 1, 1

af_vyvert = 1, 1

af_gravi = 1, 1

af_gold_fish = 1, 1

af_blood = 1, 1

af_mincer_meat = 1, 1

af_soul = 1, 1

af_electra_sparkler = 1, 1

af_electra_flash = 1, 1

af_electra_moonlight = 1, 1

af_rusty_thorn = 1, 1

af_rusty_kristall = 1, 1

af_rusty_sea-urchin = 1, 1

af_ameba_slime = 1, 1

af_ameba_slug = 1, 1

af_ameba_mica = 1, 1

af_drops = 1, 1

af_fireball = 1, 1

af_cristall = 1, 1

af_dummy_glassbeads = 1, 1

af_dummy_pellicle = 1, 1

af_dummy_battery = 1, 1

af_dummy_dummy = 1, 1

af_dummy_spring = 1, 1

af_fuzz_kolobok = 1, 1

af_buliz = 1, 1

af_spirit_1 = 1, 1

af_spirit_2 = 1, 1

af_spirit_3 = 1, 1

af_spirit_4 = 1, 1

af_cry_1 = 1, 1

af_cry_2 = 1, 1

af_cry_3 = 1, 1

af_babka_1 = 1, 1

af_babka_2 = 1, 1

af_babka_3 = 1, 1

af_pudd_1 = 1, 1

af_pudd_2 = 1, 1

af_pudd_3 = 1, 1

af_pudd_4 = 1, 1

af_dik_1 = 1, 1

af_dik_2 = 1, 1

af_dik_3 = 1, 1

af_dik_4 = 1, 1

af_kol_1 = 1, 1

af_kol_2 = 1, 1

af_kol_3 = 1, 1

af_kol_4 = 1, 1

af_armor_1 = 1, 1

af_armor_2 = 1, 1

af_armor_3 = 1, 1

af_armor_4 = 1, 1

af_simbion = 1, 1

af_dummy_battery_red = 1, 1

af_dummy_spring_red = 1, 1

af_dummy_pellicle_red = 1, 1

af_medusa_green = 1, 1

af_vyvert_green = 1, 1

af_blood_green = 1, 1

gold_art = 1, 1

af_caterpillar = 1, 1

 

;Архара капсулы от Симбиона

caps_mosquito_bald = 1, 1

caps_gravi = 1, 1

caps_mincer = 1, 1

caps_electra = 1, 1

caps_zharka = 1, 1

caps_ameba = 1, 1

 

;Аммуниция

ammo_9x39_sp5 = 1, 1

ammo_9x39_ap = 1, 1

ammo_9x39_pab9 = 1, 1

 

grenade_f1 = 1, 1

grenade_rgd5 = 1, 1

 

;Оружие

wpn_vintorez = 1, 1

 

 

;БРОНЯ ЕЕ МАТЬ

 

scientific_outfit = 1, 1

 

;Медикаменты

bandage = 1, 1

medkit = 1, 1

medkit_scientic = 1, 1

medkit_army = 1, 1

antirad = 1, 1

antizombie = 1, 1

 

;Детали монстров

mutant_flesh_eye = 1, 1

mutant_boar_leg = 1, 1

mutant_dog_tail = 1, 1

mutant_psevdodog_tail = 1, 1

mutant_krovosos_jaw = 1, 1

mutant_burer_hand = 1, 1

mutant_zombie_hand = 1, 1

mutant_snork_leg = 1, 1

mutant_face_tushkano = 1, 1

mutant_hand_kontroler = 1, 1

mutant_poltergeist_glas = 1, 1

mutant_psevdogigant_hand = 1, 1

mutant_tail_cat = 1, 1

mutant_chimera_kogot = 1, 1

mutant_fracture_hand = 1, 1

mutant_spleen_rat = 1, 1

 

;Еда

bread = 1, 1

kolbasa = 1, 1

conserva = 1, 1

vodka = 1, 1

energy_drink = 1, 1

mozg = 1, 1

lekarstvo = 1, 1

vorona_egg = 1, 1

 

;Предметы

zamok = 1, 1

bioradar = 1, 1

device_torch = 1, 1

detector_simple = 1, 1

detector_advances = 1, 1

detector_elite = 1, 1

device_pda = 1, 1

hand_radio = 1, 1

guitar_a = 1, 1

harmonica_a = 1, 1

arhara_tele = 1, 1

 

[generic_start_sell]

 

 

matras = 1, 1

treasure_item = 1, 1

gorelka = 1, 1

manometr = 1, 1

trubka = 1, 1

flamethrower_bad = 1, 1

amk_kanistra = 1, 1

amk_ballon = 1, 1

wpn_flame = 1, 1

tisku_arhara = 1, 1

device_pda_npc = 1, 1

arc_art_box_basic = 1, 1

arc_art_box_1basic = 1, 1

arc_art_box_8basic = 1, 1

 

;Артефакты

af_medusa = 1, 1

af_cristall_flower = 1, 1

af_night_star = 1, 1

af_vyvert = 1, 1

af_gravi = 1, 1

af_gold_fish = 1, 1

af_blood = 1, 1

af_mincer_meat = 1, 1

af_soul = 1, 1

af_electra_sparkler = 1, 1

af_electra_flash = 1, 1

af_electra_moonlight = 1, 1

af_rusty_thorn = 1, 1

af_rusty_kristall = 1, 1

af_rusty_sea-urchin = 1, 1

af_ameba_slime = 1, 1

af_ameba_slug = 1, 1

af_ameba_mica = 1, 1

af_drops = 1, 1

af_fireball = 1, 1

af_cristall = 1, 1

af_dummy_glassbeads = 1, 1

af_dummy_pellicle = 1, 1

af_dummy_battery = 1, 1

af_dummy_dummy = 1, 1

af_dummy_spring = 1, 1

af_fuzz_kolobok = 1, 1

af_buliz = 1, 1

af_spirit_1 = 1, 1

af_spirit_2 = 1, 1

af_spirit_3 = 1, 1

af_spirit_4 = 1, 1

af_cry_1 = 1, 1

af_cry_2 = 1, 1

af_cry_3 = 1, 1

af_babka_1 = 1, 1

af_babka_2 = 1, 1

af_babka_3 = 1, 1

af_pudd_1 = 1, 1

af_pudd_2 = 1, 1

af_pudd_3 = 1, 1

af_pudd_4 = 1, 1

af_dik_1 = 1, 1

af_dik_2 = 1, 1

af_dik_3 = 1, 1

af_dik_4 = 1, 1

af_kol_1 = 1, 1

af_kol_2 = 1, 1

af_kol_3 = 1, 1

af_kol_4 = 1, 1

af_armor_1 = 1, 1

af_armor_2 = 1, 1

af_armor_3 = 1, 1

af_armor_4 = 1, 1

af_simbion = 1, 1

af_dummy_battery_red = 1, 1

af_dummy_spring_red = 1, 1

af_dummy_pellicle_red = 1, 1

af_medusa_green = 1, 1

af_vyvert_green = 1, 1

af_blood_green = 1, 1

gold_art = 1, 1

af_caterpillar = 1, 1

 

;Архара капсулы от Симбиона

caps_mosquito_bald = 1, 1

caps_gravi = 1, 1

caps_mincer = 1, 1

caps_electra = 1, 1

caps_zharka = 1, 1

caps_ameba = 1, 1

 

;Аммуниция

ammo_9x39_sp5 = 1, 1

ammo_9x39_ap = 1, 1

ammo_9x39_pab9 = 1, 1

 

grenade_f1 = 1, 1

grenade_rgd5 = 1, 1

 

;Оружие

wpn_vintorez = 1, 1

 

 

;БРОНЯ ЕЕ МАТЬ

 

scientific_outfit = 1, 1

 

;Медикаменты

bandage = 1, 1

medkit = 1, 1

medkit_scientic = 1, 1

medkit_army = 1, 1

antirad = 1, 1

antizombie = 1, 1

 

;Детали монстров

mutant_flesh_eye = 1, 1

mutant_boar_leg = 1, 1

mutant_dog_tail = 1, 1

mutant_psevdodog_tail = 1, 1

mutant_krovosos_jaw = 1, 1

mutant_burer_hand = 1, 1

mutant_zombie_hand = 1, 1

mutant_snork_leg = 1, 1

mutant_face_tushkano = 1, 1

mutant_hand_kontroler = 1, 1

mutant_poltergeist_glas = 1, 1

mutant_psevdogigant_hand = 1, 1

mutant_tail_cat = 1, 1

mutant_chimera_kogot = 1, 1

mutant_fracture_hand = 1, 1

mutant_spleen_rat = 1, 1

 

;Еда

bread = 1, 1

kolbasa = 1, 1

conserva = 1, 1

vodka = 1, 1

energy_drink = 1, 1

mozg = 1, 1

lekarstvo = 1, 1

vorona_egg = 1, 1

 

;Предметы

zamok = 1, 1

bioradar = 1, 1

device_torch = 1, 1

detector_simple = 1, 1

detector_advances = 1, 1

detector_elite = 1, 1

device_pda = 1, 1

hand_radio = 1, 1

guitar_a = 1, 1

harmonica_a = 1, 1

arhara_tele = 1, 1

 

 

 

 

 

Добавлено:

Неделя мучений увенчалась успехом, но данным способом лучше спавнить врагов которых убил и забыл, если хотите спавнить торговцев или охрану чего бы то нибыло лучше использовать all.spawn

Изменено пользователем DiGGeR
Ссылка на комментарий

Здраствуйте сталкеры-ветераны! Подскажите пожалуйста новичку, как создать нового нпс и заспаунить его с помощью программы ACDC! Я уж пытался создать но у меня были вылеты...можете пожалуйста поподробнее мне разжевать что делать) заранее спасибо

Разработка Andrew's Pack Mod V0.5..

Ссылка на комментарий

andrewrap зря пишешь одно и тоже сообщение в разных темах

 

http://www.amk-team.ru/forum/index.php?showtopic=6356 - создание нового НПЦ

http://www.amk-team.ru/forum/index.php?showtopic=6458 - работа с асдс (ищи в первом сообщении)

Ссылка на комментарий
[follower]

leader = 6 -- story_id ведущего (здесь ID Волка);

 

А стори id надо от НПС обязательно?

Допустим,если я стори id от предмета задам и возьму предмет в инвентарь - он будет за ГГ ходить?)

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...