Снайпер с пулеметом 15 Опубликовано 28 Марта 2012 (изменено) Кто скажет, как работает смена оружия в слоте? Я прописал в бинд_сталкер скрипте что надо и где надо, заспавнил себе в инвентарь ССовский кинжал (и фейк, и реал) (с надлежащим изменением конфига) и кулаки... Реалы в слот не ставятся, а фейки тупо хаваются... Как исправлять? Попробовал начать НИ с тем escape_dialog.script, который был в архиве - на этот раз в слоте кулаки и ничего не ставится, ГГ все хавает) Я прописал в бинд_сталкер после game_stats.update (delta, self.object) это: ----------------------------------------------Проверка на использование предметов by Kirag----------- local section, objid objid = xr_logic.pstor_retrieve(db.actor, "dropid", -1) sect = xr_logic.pstor_retrieve(db.actor, "dropsect", "non_exist") if objid ~= -1 then local obj = alife():object(objid) if not obj then -- объект не существует, занчит использован if string.sub(sect,1,9) == "fake_wpn_" then item_effects.fake_weapon_effect(sect) end else -- объект существует, значит, продан или выброшен if sect == "fake_wpn_fist" then -- кулаки выкинуть нельзя alife():release(obj, true) alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end xr_logic.pstor_store(db.actor, "dropid", -1) xr_logic.pstor_store(db.actor, "dropsect", "non_exist") end --news_manager.send_tip(db.actor, "test_message", nil, nil, 20000) ---------------------------------------------------конец предметов-------- if not db.actor:item_in_slot(0) then -- Ударить кулаком можно всегда, выдаем, если вообще ничего нет. alife():create("wpn_fist", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end --------------------------------------------------------------------------- Ничего больше не надо прописывать? P.S. - Я адаптирую под свою сборку (без элементов АМК) Изменено 28 Марта 2012 пользователем Снайпер с пулеметом Поделиться этим сообщением Ссылка на сообщение
Снайпер с пулеметом 15 Опубликовано 30 Марта 2012 (изменено) Нашел, дописал. Но в том бинд сталкере, который в архиве, какая-то странная фигня function actor_binder:on_item_drop (obj) level_tasks.proceed(self.object) --game_stats.update_drop_item (obj, self.object) end ----------------------------------------------Проверка на использование предметов by Kirag----------- local objid, sect if obj then sect = obj:section() objid = obj:id() xr_logic.pstor_store(db.actor, "dropid", objid) xr_logic.pstor_store(db.actor, "dropsect", sect) end ---------------------------------------------------конец предметов-------- --game_stats.update_drop_item (obj, self.object) end подчеркнул эту ерунду. Если после Проверки на использование --game_stats.update_drop_item (obj, self.object) end не писать, то ничего не работает, а если оставить как есть - вылет Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...publishing\1s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) Вот и в чем причина? Изменено 30 Марта 2012 пользователем Снайпер с пулеметом Поделиться этим сообщением Ссылка на сообщение
Снайпер с пулеметом 15 Опубликовано 30 Марта 2012 (изменено) Да, совсем забыл написать - я юзаю стандартный _g.script без правок... Изменено 30 Марта 2012 пользователем Снайпер с пулеметом Поделиться этим сообщением Ссылка на сообщение