local items = {2376,1256,7542}
local conf = {}
conf['level'] = {
[1] = {successPercent = 100, downrageLevel = 0, dopisek = {'Zwykly','Zuzyty'}},
[2] = {successPercent = 50, downrageLevel = 1, dopisek = {'Ulepszony','Lepszy'}},
[3] = {successPercent = 45, downrageLevel = 2, dopisek = {'Wzmocniony'}},
[4] = {successPercent = 40, downrageLevel = 3, dopisek = {'Dobrej Jakosci'}},
[5] = {successPercent = 35, downrageLevel = 4, dopisek = {'Bez Skazy'}},
[6] = {successPercent = 30, downrageLevel = 5, dopisek = {'Mocny'}},
[7] = {successPercent = 25, downrageLevel = 6, dopisek = {'Potezny'}},
[8] = {successPercent = 20, downrageLevel = 7, dopisek = {'Niebianski'}},
[9] = {successPercent = 15, downrageLevel = 8, dopisek = {'Blogoslawiony'}}
}
conf['upgrade'] = {
--in percent
attack = 5,
extraAttack = 10,
defense = 5,
extraDefense = 10,
armor = 5
}
local upgrading = {
upValue = function (value, level, percent)
if value < 0 then return false end
for i = 1, level do
value = math.ceil(((value / 100) * percent) + 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)
if isInArray(items, itemEx.itemid) then
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)].successPercent >= math.random(1,100)) and (level+1) or conf['level'][level].downrageLevel
if(nLevel > level)then
x = 1
doSendMagicEffect(toPosition, CONST_ME_FIREWORK_RED)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Udalo sie! Przedmiot zyskal na mocy')
else
x = -1
doSendMagicEffect(toPosition, CONST_ME_POFF)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Cholera, nie udalo sie... przedmiot stracil troche mocy!')
end
if level+x == 0 then
doItemSetAttribute(itemEx.uid, 'name', getItem.name)
else
doItemSetAttribute(itemEx.uid, 'name', conf['level'][(level+x)].dopisek[math.random(1,#conf['level'][(level+x)].dopisek)]..' '..getItem.name..((nLevel > 0) and ' +'..nLevel or ''))
end
if ELEM[itemEx.itemid] then
doItemSetAttribute(itemEx.uid, 'aid', (itemEx.actionid + math.random(ELEM[itemEx.itemid].value[1], ELEM[itemEx.itemid].value[2])) * x)
end
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))
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Przykro mi ten item ma juz maksymalny level.')
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Tego itemu nie da sie ulepszyc.')
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Tego itemu nie da sie ulepszyc.')
end
return true
end