Gostaria de uma ajuda, não sei se é necessario uma script ou pode ser mudado no items.xml.... Um life/mana ring que ao invés de healar "200" de life por segundo, healasse por exemplo: 5% de life por segundo
consegui fazer os script após algum esforço:
crie um arquivo lua com o nome que quiser, no meu caso 'ringmana.lua' e adicione:
--script de heal ring por porcentagem-- --Creditos ao Leo-- function onEquip(cid, item, slot) if getPlayerStorageValue(cid, 29110) == 1 then SendEffect(cid) end return true end function onDeEquip(cid, item, slot) setPlayerStorageValue(cid, 29110, -1) if item.itemid == 2124 then -- id do ring quando equipado doTransformItem(item.uid, 2123) -- id do ring quando nao equipado end return true end function SendEffect(cid) if not isPlayer(cid) then return end local delay = 1000 -- tempo em milisegundos para healar dnovo local maxh = getCreatureMaxHealth(cid) local maxm = getCreatureMaxMana(cid) local mpe = 10 * maxm / 100 -- no '10' é a porcentagem que vai healar de mana local hpe = 10 * maxh / 100 -- no '10' é a porcentagem que vai healar de life if getPlayerStorageValue(cid, 29110) == 1 then if getCreatureHealth(cid) < maxh or getCreatureMana(cid) < maxm then doCreatureAddHealth(cid, hpe) doCreatureAddMana(cid, mpe) addEvent(SendEffect, delay, cid) else addEvent(SendEffect, delay, cid) end end end
depois crie outro arquivo .lua no meu caso 'ringequip.lua' e adicione :
function onEquip(cid, item, slot) setPlayerStorageValue(cid, 29110, 1) if item.itemid == 2123 then -- item quando nao equipado doTransformItem(item.uid, 2124) -- item quando equipado end return true end
depois em movements.xml adicione:
<movevent type="Equip" itemid="2124" slot="ring" event="script" value="ringmana.lua"/> -- item equipado <movevent type="DeEquip" itemid="2124" slot="ring" event="script" value="ringmana.lua"/> -- item equipado <movevent type="Equip" itemid="2123" slot="ring" event="script" value="ringequip.lua"/> -- item quando nao equipado