Kail, тайник выдается, сообщение и метка на карте в наличии, просто некоторые тайники имеют содержимое, а некоторые не имеют, хотя по конфигам обязаны.
6poHR777, пусть безумная идея, но посмотри в all.spawn'e флаги тайников.Может: object_flags = 0xffffff3b -- если так, попробуй: object_flags = 0xffffff3f
function vzyal_key() if db.actor:object("key") then db.actor:disable_info_portion("doctor_one_start") news_manager.send_tip(db.actor, "%c[255,0,255,0]ПОЛУЧЕН ПОРШЕНЬ\\n%c[default]ЕСТЬ ШОМПОЛ.", 0, "trader", 30000) end end
и он выдаётся постоянно, если добавляю проверку наличия поршня, он вообще не выдаётся.
Code
function vzyal_key() -- new if db.actor:object("key") and not has_alife_info("have_shompl") then db.actor:give_info_portion("have_shompl") news_manager.send_tip(db.actor, "%c[255,0,255,0]ПОЛУЧЕН ПОРШЕНЬ\\n%c[default]ЕСТЬ ШОМПОЛ.", 0, "trader", 30000) end end
Запускаю из бинд_сталкер function actor_binder:update(delta). Подскажите где ошибка
Сообщение отредактировал ins33 - Суббота, 25.08.2012, 20:13
Stalk15, да не заметил, другую функцию в примере использовал, во втором варианте, что не так? Или есть другой способ через проверку наличия предмета, выдать поршень один раз?
#include "gameplay\character_criticals_4.xml" </specific_character> И открываем npc_profile После строчки добавляем Code <character id="my_stalker"> <class>my_stalker</class> </character> А теперь создадим логику для него D:\S.T.A.L.K.E.R. - Зов Припяти\нпс\configs\scripts тут создаем папку new а там файл my_stalker_npc_logic И пишим там Если ты хочешь бесмертного то Code [logic] active = remark1 danger = danger_ignore invulnerable = true
[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 И пишим там (открываем с помощью блокнота) Code 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
Ищим строку
Code function actor_binder:update(delta) object_binder.update(self, delta)
if string.find(command_line(), "-designer") then return end
И после неё пишим это Code 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. когда я делаю нпс смертным,то он просто шляется без дела по локации
Когда сделал НПС и приписал к нему диалог он не захотел вообще говорить (когда нажимаю на кнопку F , у меня он не выходит в меню диалогов) Может в инструкции по созданию НПС что-то не то написано?