• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Solved error in item :C

Thorn

Spriting since 2013
Joined
Sep 24, 2012
Messages
2,203
Solutions
1
Reaction score
921
Location
Chile
hii, this item upgrades an equip item, but now it's infinite, i think if for this error:

XML:
[19/07/2013 13:50:44] [Error - Action Interface] 
[19/07/2013 13:50:44] data/actions/scripts/upgrade2.lua:onUse
[19/07/2013 13:50:44] Description: 
[19/07/2013 13:50:44] data/actions/scripts/upgrade2.lua:55: attempt to index field 'upgrade' (a nil value)
[19/07/2013 13:50:44] stack traceback:
[19/07/2013 13:50:44] 	data/actions/scripts/upgrade2.lua:55: in function <data/actions/scripts/upgrade2.lua:41>

and here is the script

Lua:
local conf = {}
 
conf["level"] = {
-- [item_level] = {successParcent=PARCENT FOR UPGRADING SUCCESS, downrageLevel = IF UPGRADING FAIL - ITEM WAS DECRASED TO LEVEL HERE}
 [1] = {successParcent = 100, downrageLevel = 1},
 [2] = {successParcent = 100, downrageLevel = 2},
 [3] = {successParcent = 100, downrageLevel = 3},
 [4] = {successParcent = 100, downrageLevel = 4},
 [5] = {successParcent = 100, downrageLevel = 5},
 [6] = {successParcent = 100, downrageLevel = 6},
 [7] = {successParcent = 100, downrageLevel = 7},
 [8] = {successParcent = 100, downrageLevel = 8},
 [9] = {successParcent = 100, downrageLevel = 9},
 [10] = {successParcent = 100, downrageLevel = 10},
}
conf["upgrade2"] = { -- how many parcent attributes are rised?
    attack = 10, -- attack %
    extraAttack = 0, -- extra Attack %
    defense = 0, -- defence %
    extraDefense = 0, -- extra defence %
    armor = 20, -- armor %
    hitChance = 50, -- hit chance %
}
 
-- // do not touch // --
-- Upgrading system v.3.1 by Azi [Ersiu] --
local upgrading = {
    upValue = function (value, level, parcent)
        if(not(value>0))then return 0 end
        for i=1,level do
            value = math.ceil(((value/100)*parcent)+value)+1
        end
        return (value > 0) and value or 0
    end,
 
    getLevel = function (item)
        local name = string.explode(getItemName(item), '+')
        return (#name == 1) and 0 or math.abs(name[2])
    end,
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local getItem = getItemInfo(itemEx.itemid)
    if((getItem.weaponType == WEAPON_SHIELD or getItem.armor > 0) and not isItemStackable(itemEx.itemid))then
        local level = upgrading.getLevel(itemEx.uid)
        if(level < #conf["level"])then
            local nLevel = (conf["level"][(level+1)].successParcent >= math.random(1,100)) and (level+1) or conf["level"][level].downrageLevel
            if(nLevel > level)then
                doSendMagicEffect(toPosition, 30)
                doPlayerSendTextMessage(cid, 22, "Congratz! El refinado a sido todo un Exito, Tu item ahora es mas fuerte!")
            else
                doSendMagicEffect(toPosition, 2)
                doPlayerSendTextMessage(cid, 22, "Argh! El Refinado fallo... TU ITEM A PERDIDO FUERZA!")
            end
            doItemSetAttribute(itemEx.uid, "name", getItem.name..((nLevel>0) and "+"..nLevel or ""))
            doItemSetAttribute(itemEx.uid, "attack",  upgrading.upValue(getItem.attack, nLevel, conf["upgrade"].attack))
            doItemSetAttribute(itemEx.uid, "extraattack", upgrading.upValue(getItem.extraAttack, nLevel, conf["upgrade"].extraAttack))
            doItemSetAttribute(itemEx.uid, "defense", upgrading.upValue(getItem.defense,nLevel, conf["upgrade"].defense))
            doItemSetAttribute(itemEx.uid, "extradefense", upgrading.upValue(getItem.extraDefense, nLevel, conf["upgrade"].extraDefense))
            doItemSetAttribute(itemEx.uid, "armor", upgrading.upValue(getItem.armor, nLevel, conf["upgrade"].armor))
            doItemSetAttribute(itemEx.uid, "hitChance", upgrading.upValue(getItem.hitChance,nLevel, conf["upgrade"].hitChance))
            doRemoveItem(item.uid, 1)
        else
            doPlayerSendTextMessage(cid, 19, "Sorry this item is on max level.")
        end
    else
        doPlayerSendTextMessage(cid, 19, "You cannot upgrade this item.")
    end
end
 
Back
Top