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

Магазинное питание оружия


Kirag

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

Ребят, в общем я запутался с порядком установки.

сделал так для всех версий:

 

--Магазинное питание оружия v.1.0

--Обновлено до 1.1

--Лечение вылета по Can't open section 'секция_e_e' (все версии)

--Лечение вылета по kirag_take_drop.script:56: attempt to call field 'convert_addon' (все версии)

--Патч на вес и разрядку "стопки" оружия от 27.02.2011 (все версии)

---

Правильно ли я сделал??? Если да, то ват пак , 3 версии, ничего никуда добавлять не нужно, берете нужную версию и ставите...

gamedata_magazines_v1.1_fixed.7z.html 8.87 МБ

 

Проверить увы не могу, что-то с диском, надо качать...

Изменено пользователем Vano_Santuri

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение

Всем привет. Вот скажите, то я уже ополоумел или действительно кто-то что-то забыл дописать ...

 

FATAL ERROR

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....t.a.l.k.e.r\gamedata\scripts\kirag_take_drop.script:129: attempt to call field 'vodka_effect' (a nil value)


stack trace:

 

 

Идем по следам...

 

function on_update()
    for objid,sect in pairs (dropped) do
    --qqq("objid = "..objid.."   sect = "..sect)
    --local sect, 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,5) == "vodka" then
                item_effects.vodka_effect(sect)
            elseif sect == "repair_box" then 
                item_effects.repair_box_effect()
            elseif sect == "power_core" then 
                item_effects.power_core_effect()
            elseif sect == "inc_torque" then 
                heli_combat.inc_torque()
            elseif sect == "dec_torque" then 
                heli_combat.dec_torque()
            elseif string.sub(sect,1,4) == "zink" then 
                item_effects.zink_effect(sect)
            elseif string.sub(sect,1,3) == "nv_" then 
                item_effects.nv_effect(sect)
            elseif string.sub(sect,1,9) == "fake_wpn_" then 
                item_effects.fake_weapon_effect(sect)
            elseif string.sub(sect,1,11) == "fake_addon_" then 
                item_effects.fake_scope_effect(sect)
            end
        else -- объект существует, значит, продан или выброшен
            if sect == "fake_wpn_fist" then -- кулаки выкинуть нельзя :D
                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
        dropped[objid] = nil
        --xr_logic.pstor_store(db.actor, "dropid", -1)
        --xr_logic.pstor_store(db.actor, "dropsect", "non_exist") 
    --end
    end
end

 

 

item_effects.vodka_effect

 

function fake_weapon_effect(section)
    local length = string.len(section)
    local real_weapon = string.sub(section, -(length - 5))
    local slot = 15
    if system_ini():line_exist(real_weapon,"slot") then
        slot = system_ini():r_u32(real_weapon,"slot")
    else
        qqq("ERROR! item_effects.fake_weapon_effect: cannot find 'slot' variable")
        return
    end
--news_manager.send_tip(db.actor, "real_weapon: "..real_weapon, nil, nil, 20000) 
    local inslot = db.actor:item_in_slot(slot)
    if inslot ~= nil then
        local sect = "fake_"..inslot:section()
        if (real_weapon ~= inslot:section()) and system_ini():section_exist(sect) then -- меняется если есть фейк у того, что в слоте и не ставится то же самое
            alife():release(alife():object(inslot:id()), true)
            --qqq("released: "..inslot:section().." id = "..inslot:id())
            local cr = alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
            --qqq("created fake: "..sect.." id = "..cr.id)
            cr = alife():create(real_weapon, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
            --qqq("created real: "..real_weapon.." id = "..cr.id)
        else
            local cr = alife():create(section, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
            --qqq("re-created: "..section.." id = "..cr.id)
            return
        end
        --alife():release(alife():object(inslot:id()), true)
        --alife():create(sect, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    else
        alife():create(real_weapon, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    end
end

 

 

 

ИИИИ??? в чем прикол ? где функции??? Забыли отрезать вызов или добавить???

 

Если у кого подобное есть - просто сделайте так.

 

function on_update()
    for objid,sect in pairs (dropped) do
    --qqq("objid = "..objid.."   sect = "..sect)
    --local sect, 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 -- кулаки выкинуть нельзя :D
                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
        dropped[objid] = nil
        --xr_logic.pstor_store(db.actor, "dropid", -1)
        --xr_logic.pstor_store(db.actor, "dropsect", "non_exist") 
    --end
    end
end

 

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение

Marafon6540, Извини, я весь топ прочитать не додумался, думал в шапке все проблемы есть. Может я еще что-то упустил?

 

Вот тогда кому нужно, со всеми ( те которые я словил) правками

 

gamedata_magazines_v1.1_fixed.7z.html

 

Магазинное питание оружия v.1.0

--Обновлено до 1.1

--Пофикены

Лечение вылета по Can't open section 'секция_e_e'

Лечение вылета по kirag_take_drop.script:56: attempt to call field 'convert_addon'

--Установлен

Патч на вес и разрядку "стопки" оружия от 27.02.2011

--Правлены все вылеты по недостающи эффектам.

gamedata\scripts\kirag_take_drop.script:129: attempt to call field 'vodka_effect' (a nil value)

 

 

 

Да,

Marafon6540, не все закомментил

--item_effects.power_core_effect()

--heli_combat.inc_torque()

Хотя да. ПЗРК у нас нет...

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение

Marafon6540, Это точно, мне одних магазинов хватило. И зарядка выполнена качественно. Мне одно жаль: что все фишки приходится делать таки извращенным образом - множественные подмены и фейки... . Это несколько таких схемок вместе и неизвестно как скажется на работоспособности ...

Но все равно, Kirag молодчина, такие вещи вытворяет. Я как свои новости до финальной кондиции доведу. Попробую перенести сие чуда на ЗП...

Изменено пользователем Vano_Santuri

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение
ДеМЬян, небось патч 1.0006 ? Нужен 1.0004 или ручная адаптация.(всего- то один файл)

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение

Kirag,

xr_motivator.script

на 5-6 патче в отличии от 4го.

 

Строки:

    self.npc_script_version = alife():object(self.object:id()).script_version
    dialog_manager.load(self.object, reader, self.npc_script_version)

А в 4-ом

dialog_manager.load(self.object, reader)

Просто нужно заменить. И адаптация АМК к 1.0005-6 заключается практически только в этих строках.

 

 

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение

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

 

Все одним файлом.

 

--Магазинное питание оружия v.1.0

--Обновлено до 1.1

--Пофиксены

Лечение вылета по Can't open section 'секция_e_e'

Лечение вылета по kirag_take_drop.script:56: attempt to call field 'convert_addon'

--Установлен

Патч на вес и разрядку "стопки" оружия от 27.02.2011

--Правлены все вылеты по недостающи эффектам.

gamedata\scripts\kirag_take_drop.script:129: attempt to call field 'vodka_effect' (a nil value)

--Включены адаптации для

АМК 1.4.1, Народная солянка 03.09.10 и Народная солянка 18.11.2011 .

А так же правленые xr_motivator.script для патчей 1.0005-1.0006 (при игре на соответствующей версии нужно их заменить)

 

 

Скачать 8.5 мб

 

З.Ы. Смог протестировать только на НС 18.11.11 - загрузка - охранение без вылетов.

Будут ошибки - пишите в ЛС, - поправлю.

 

 

Что-то кончается, что-то начинается...

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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