function actor_binder:OnUseObject(obj, who) if obj then if obj:section() =="repair_kit_outfit" then my_spawn.repair_outfit() end end end
Вместо repair_kit_outfit ставь свою водку, вместо my_spawn.repair_outfit() название своего скрипта.своей функции. Только не проще ли через диалог удалить поршень? <disable>doctor_one_start</disable>
Arist, Проще, но тогда концовка квеста не интересной будет.
sedmoy23,
Code
function Delete_ak74u_from_Actor() local oItem = db.actor:object("предмет") --/ определяем предмет у ГГ if oItem then --/ у ГГ есть предмет db.actor:drop_item(oItem) --/ выбрасываем предмет (опционально) alife():release(alife():object(oItem:id()), true) --/ удаляем из игры end end
Как хочешь. Можно через диалог, можно просто где-то в скрипте.
Quote (Arist)
...предварительно в game_relations.ltx изменив...
Ни чего про это не знаю. Я использовал функцию set_relation и все. Пример:
Code
local npc = level_object_by_sid(32) --возьмем, например, кузнецова if npc ~= nil then npc:set_relation(game_object.neutral, db.actor) --сделать нейтралом npc:set_relation(game_object.friend, db.actor) --сделать другом npc:set_relation(game_object.enemy, db.actor) --сделать врагом end
ins33, Зачем два раза коллбек добавляешь? Там же было написано:
Quote
можно добавить данную функцию в виде метода в bind_stalker сделав так: function actor_binder:OnUseObject(obj, who) сюда ставим проверки end тогда каллбек нужно прописать так self.object:set_callback(callback.use_object, self.OnUseObject, self)
function actor_friend() local npc = level_object_by_sid(32) if npc ~= nil then npc:set_relation(game_object.neutral,db.actor) end end
Делал и function actor_friend(npc,actor) и function actor_friend(actor,npc) Вызывал из диалога. не работает.
Добавлено (22.08.2012, 17:07) --------------------------------------------- prohodchik, в файле system.ltx есть ссылка(типа #include "misc\costs.ltx "), а самого файла costs.ltx нет.