• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Magic LvL and Distance Item Upgrading.

darkeaux

New Member
Joined
Jul 9, 2010
Messages
2
Reaction score
0
Hello guys,
i found this upgrading script on OTLand, but i have a question. Is it possible to upgrade mlvl and distance with the same way or similar way as the script does to attack,defense, etc.

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 = 0},
[2] = {successParcent = 95, downrageLevel = 1},
[3] = {successParcent = 90, downrageLevel = 2},
[4] = {successParcent = 85, downrageLevel = 3},
[5] = {successParcent = 80, downrageLevel = 4},
[6] = {successParcent = 75, downrageLevel = 5},
[7] = {successParcent = 70, downrageLevel = 6},
[8] = {successParcent = 65, downrageLevel = 7},
[9] = {successParcent = 60, downrageLevel = 8},
[10] = {successParcent = 50, downrageLevel = 9},
[11] = {successParcent = 40, downrageLevel = 11},
[12] = {successParcent = 30, downrageLevel = 12},
[13] = {successParcent = 20, downrageLevel = 13},
[14] = {successParcent = 10, downrageLevel = 14},
[15] = {successParcent = 5, downrageLevel = 15},
}
conf["upgrade"] = { -- how many parcent attributes are rised?
attack = 1, -- attack %
extraAttack = 2, -- extra Attack %
defense = 1, -- defence %
extraDefense = 2, -- extra defence %
armor = 1, -- armor %
hitChance = 1, -- 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 > 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, 30)
doPlayerSendTextMessage(cid, 22, "Congratulation! Upgraded was successful, your item has become stronger!")
else
doSendMagicEffect(toPosition, 2)
doPlayerSendTextMessage(cid, 22, "Argh! Upgrading fail... you item lost some of strong!")
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

Any help or suggestions?
Thanks in advance.
 
Code:
doItemSetAttribute(itemEx.uid, "defense", upgrading.upValue(getItem.defense,nLevel, conf["upgrade"].defense))

Try to replace defense to magic, or distance?, Good Luck.
 
Back
Top