[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Теория модостроения » Скрипты, конфиги, логика, движок » Спавн НПС через скрипты (Зов Припяти)
Спавн НПС через скрипты
HardtmuthДата: Пт, 06.06.2014, 16:44 | Сообщение # 1




Сообщений: 771
Награды: 5
Репутация:

Статус:

Спавн НПС через скрипты в Зов Припяти


Автор статьи: Johhan

Открываем файл
D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\creatures\spawn_sections_zaton
В самое начало добавляем это:

Код
[my_stalker]:stalker  
$spawn = "respawn\my_stalker"  
character_profile = my_stalker  
spec_rank = master  
community = stalker  
custom_data = scripts\zaton\my_stalker_npc_logic.ltx


Дальше идем в папку

D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\gameplay

Открываем character_desc_zaton
В самый конец добавляем, но перед <\xml>!

Код
<specific_character id="my_stalker" team_default = "1">  
<name>Johann</name>  
<icon>ui_inGame2_neutral_4</icon>  
<map_icon x="1" y="0"></map_icon>  
<bio>Опытный сталкер. Детальная информация отсутствует.</bio>  

<class>my_stalker</class>  
<community>stalker</community>  
<terrain_sect>stalker_terrain</terrain_sect>  
<snd_config>characters_voice\human_01\stalker\</snd_config>  

<rank>65</rank>  
<reputation>0</reputation>  
<money min="2500" max="5000" infinitive="0"/>  

<visual>actors\stalker_neutral\stalker_neutral_4</visual>  
<supplies>  
[spawn]\n  
wpn_beretta = 1 \n  
ammo_9x19_fmj = 1 \n  
grenade_rgd5 = 1 \n  
#include "gameplay\character_items.xml"  
#include "gameplay\character_food.xml"  
#include "gameplay\character_drugs.xml"  
</supplies>  

#include "gameplay\character_criticals_4.xml"  
</specific_character>


И открываем npc_profile
После строчки добавляем

Код
<character id="my_stalker">  
<class>my_stalker</class>  
</character>


А теперь создадим логику для него
D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\scripts тут создаем папку new а там файл my_stalker_npc_logic
И пишим там:

Если ты хочешь бесмертного то:

Код
  
[logic]active = remark1  
danger = danger_ignore  
invulnerable = true  

[danger_ignore]  
ignore_distance = 5  

[remark1]  
no_move = true  
anim = choose  
on_actor_dist_le = 2| remark@hello  
invulnerable = true  
meet = meet_guide  

[meet_guide]  
abuse = false  
use = true  
allow_break = false  
meet_on_talking = false  

[remark@hello]  
no_move = true  
invulnerable = true  
meet = meet_guide  
on_actor_dist_le = 10| remark1


А если смертного то:

Код
  
[logic]active = remark1  
danger = danger_ignore  
invulnerable = false  

[danger_ignore]  
ignore_distance = 5  

[remark1]  
no_move = true  
anim = choose  
on_actor_dist_le = 2| remark@hello  
invulnerable = false  
meet = meet_guide  

[meet_guide]  
abuse = false  
use = true  
allow_break = false  
meet_on_talking = false  

[remark@hello]  
no_move = true  
invulnerable = false  
meet = meet_guide  
on_actor_dist_le = 10| remark1


Открываем D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\scripts
И создаем скрипт sniper_add.script
И пишим там (открываем с помощью блокнота)

Код
function start_add_spawn()--\\  
--\\  
--  
spawn_sniper_one()  
end  

function spawn_sniper_one()  
local x= 111.75521087646  
local y= -3.9362425804138  
local z= 185.2212677022  
local level_vertex= 1158851  
local game_vertex_id= 316  
alife():create("my_stalker",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


И открываем скрипт тут же bind_stalker.script

Ищим строку:

Код
function actor_binder:update(delta)  
object_binder.update(self, delta)  

if string.find(command_line(), "-designer") then  
return  
end


И после неё пишим это:

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


Всё, мы сделали нпс, он появится около сыча слева от стойки. Удачи!

P.S. когда я делаю нпс смертным,то он просто шляется без дела по локации.






$
Форум » Теория модостроения » Скрипты, конфиги, логика, движок » Спавн НПС через скрипты (Зов Припяти)
  • Страница 1 из 1
  • 1
Поиск:

Войти Зарегистрироваться