local conf = {} conf["level"] = { [1] = {successParcent = 50, downrageLevel = 0}, [2] = {successParcent = 50, downrageLevel = 1}, [3] = {successParcent = 50, downrageLevel = 2}, [4] = {successParcent = 50, downrageLevel = 3}, [5] = {successParcent = 50, downrageLevel = 4}, [6] = {successParcent = 50, downrageLevel = 5}, [7] = {successParcent = 1, downrageLevel = 5}, [8] = {successParcent = 1, downrageLevel = 6}, } conf["upgrade"] = { attack = 4, extraAttack = 4, defense = 9, extraDefense =9, armor = 9, hitChance = 17, } 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, 117) doPlayerSendTextMessage(cid, 22, "Upgraded was successful!") else doSendMagicEffect(toPosition, 117) doPlayerSendTextMessage(cid, 22, "Upgrading fail!") 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, "Your level to max.") end else doPlayerSendTextMessage(cid, 19, "This item cant upgraded!") end end