• 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!

Lua Upgrade System TFS 0.4

ssiwyy158

Member
Joined
Jan 24, 2011
Messages
128
Solutions
2
Reaction score
13
TFS 0.4

Hello. I use this script:
Code:
    local conf = {}
    conf["level"] = {
    [1] = {successParcent = 100, downrageLevel = 0},
    [2] = {successParcent = 65, downrageLevel = 1},
    [3] = {successParcent = 40, downrageLevel = 2},
    [4] = {successParcent = 20, downrageLevel = 3},
    [5] = {successParcent = 10, downrageLevel = 4},
    }
    conf["upgrade"] = {
    attack = 1,
    extraAttack = 2,
    defense = 1,
    extraDefense = 2,
    armor = 1,
    hitChance = 1,
    }
   
    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 > 0 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, 28)
    doPlayerSendTextMessage(cid, 22, "Upgraded was successful!")
    else
    doSendMagicEffect(toPosition, 6)
    doPlayerSendTextMessage(cid, 22, "Upgrading fail!")
    doRemoveItem(itemEx.uid)
    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

When the item will be destroyed, Errors appear :

Photo:
Zapodaj.Net - Darmowy hosting zdjęć i obrazków bez rejestracji! - 71f32261817a9.png
 
Back
Top