Bom esse e meu primeiro post aki... vi esse script no otfans.net
e resolvi posta-lo aos que querem o sistema de refinamento em seu ot...
Creditos:98% ao Azi pelo script
1% ao Hamstery por te-lo postado no otfans.net e 1% para mim por estar postando aki.
Edited:
como o Eduardo falou ali em baixo, realmente ja tem topico para isso...
+ qndo eu era um "newbe" em script, eu naum tinha entendito muito o script do Mock.
entaum axei esse + facil e postei aki...
e sim Eduardo tem coisa diferente nesse..
nesse script. com esse script, voce pode refinar qualquer item.
ate bows e crossbows. no do Mock, voce nao pode refinar armas de distancia.
em data/actions/scripts, copie e cole um arquivo e renomei-o para upgrade.lua. Abra-o, apague tdo q estiver dentro e cole isso:
local conf = {}
-- // config // --
conf.maxItemLevel = 10 -- max item level
conf.successChance = 50 -- succes upgrade chance
conf["upgrade"] = { -- how many parcent attributes are rised?
attack = 5, -- attack %
extraAttack = 10, -- extra Attack %
defence = 5, -- defence %
extraDefence = 10, -- extra defence %
armor = 5, -- armor %
attackSpeed = 3, -- attack speed %
hitChance = 5, -- hit chance %
shootRange = 2, -- shoot range %
}
--// end // --
function getItemInfo(item)
local attr = {}
local name = string.explode(getItemName(item), '+');
if #name == 1 then
attr.name = name[1]
attr.level = math.abs(0)
else
attr.level = math.abs(name[2])
attr.name = name[1]
end
attr.attack = (getItemAttack(item) > 0) and getItemAttack(item) or 0
attr.extraAttack = (getItemExtraAttack(item) > 0) and getItemExtraAttack(item) or 0
attr.defence = (getItemDefense(item) > 0) and getItemDefense(item) or 0
attr.extraDefence = (getItemExtraDefense(item) > 0) and getItemExtraDefense(item) or 0
attr.armor = (getItemArmor(item) > 0) and getItemArmor(item) or 0
attr.attackSpeed = (getItemAttackSpeed(item) > 0) and getItemAttackSpeed(item) or 0
attr.hitChance = (getItemHitChance(item) > 0) and getItemHitChance(item) or 0
attr.shootRange = (getItemShootRange(item) > 0) and getItemShootRange(item) or 0
attr.weight = (getItemWeight(item) > 0) and getItemWeight(item) or 0
return attr
end
function upgradeValue(value, parcent)
local newValue = math.ceil(((value/100)*parcent)+value)
return (newValue > 0) and newValue or 0
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if toPosition.x == 65535 then
local upgradingItem = getItemInfo(itemEx.uid)
if (upgradingItem.attack > 0 or upgradingItem.defence > 0 or upgradingItem.armor > 0 or upgradingItem.shootRange > 1) then
if (upgradingItem.level < conf.maxItemLevel) then
if conf.successChance >= math.random(1,100) then
setItemName(itemEx.uid, upgradingItem.name.." + "..(upgradingItem.level+1))
setItemAttack(itemEx.uid, upgradeValue(upgradingItem.attack, conf["upgrade"].attack))
setItemExtraAttack(itemEx.uid, upgradeValue(upgradingItem.extraAttack, conf["upgrade"].extraAttack))
setItemDefense(itemEx.uid, upgradeValue(upgradingItem.defence, conf["upgrade"].defence))
setItemExtraDefense(itemEx.uid, upgradeValue(upgradingItem.extraDefence, conf["upgrade"].extraDefence))
setItemArmor(itemEx.uid, upgradeValue(upgradingItem.armor, conf["upgrade"].armor))
setItemAttackSpeed(itemEx.uid, upgradeValue(upgradingItem.attackSpeed, conf["upgrade"].attackSpeed))
setItemHitChance(itemEx.uid, upgradeValue(upgradingItem.hitChance, conf["upgrade"].hitChance))
setItemShootRange(itemEx.uid, upgradeValue(upgradingItem.shootRange, conf["upgrade"].shootRange))
doSendMagicEffect(toPosition, 30)
doPlayerSendTextMessage(cid, 22, "Upgraded was successful, your item has become stronger!")
else
doRemoveItem(itemEx.uid, itemEx.type)
doSendMagicEffect(toPosition, 2)
doPlayerSendTextMessage(cid, 22, "Upgrading fail... you lost upgraded item!")
end
doRemoveItem(item.uid, 1)
else
doPlayerSendCancel(cid, "This item is on max level!")
end
else
doPlayerSendCancel(cid, "You cannot upgrade this item!")
end
else
doPlayerSendCancel(cid, "You can upgrading items only in inventory!")
end
return TRUE;
end
explicando...
aki eh o atk... qnto ele ira aumenta a cada upgrade...
ex. uma sword com atk 25, ficara 30.
aki eh o atk extra... qnto ira aumentar a cada upgrade...
ex. uma sword com atk 25+6, ficara 30+16.
aki eh o shield... qnto ele ira aumenta a cada upgrade...
ex. um escudo com def 20, ficara com def 25.
aki eh o shield extra... qnto ele ira aumenta a cada upgrade...
ex. um escudo com def 20+5, ficara com def 25+15.
aki eh a armadura... qnto ele ira aumenta a cada upgrade...
ex. uma armadura com def 15, ficara com def 20.
aki eh a velocidade de atk... qnto ele ira aumenta a cada upgrade...
ex. um crossbow com velocidade 5, ficara com velocidade 8.
aki eh a chance de hit... qnto ele ira aumenta a cada upgrade...
ex. um crossbow com chance de hit 5, ficara com chance de hit 10.
e aki eh a distancia maxima... qnto ele ira aumenta a cada upgrade...
ex. um crossbow q so atk a 3 sqm de distancia, podera atacar a 5 sqm de distancia.
apos isso, abra actions.xml e cole isso:
<action itemid="8306" event="script" value="upgrade.lua"/>
explicando...
esse eh o id do item q ira fazer o upgrade...
se quiser vc pode muda-lo para outro id q obviamente sera outro item
bom... tai o sistema de refinamento de itens...
como esse eh meu primeiro post pode ter algumas coisas erradas om os quotes...
desculpem pela falta de acentos, meu teclado ta um lixo

qualquer duvida pq naum entendeu o script manda pm.
te+ gente abrass