Regeneration System

Saudações jovens guerreiros, hoje venho trazer para vocês uma espécie de Buffs, como seria? Você equipa um "Ring of the Count" (Se quiser pode trocar o item), e aí cada vocação tem suas configurações no script, regeneração de HP, SOUL, MP + Effects
Instalação

Vá em data/movements/scripts, copie algum arquivo da pasta ou crie, com o nome regeneration.lua e adicione isso dentro:
local vocs = { [1] = {regenHp = 5, regenMana = 15, regenSoul = 1, secsTo = 5, effectTo = 13}, [2] = {regenHp = 5, regenMana = 15, regenSoul = 1, secsTo = 5, effectTo = 13}, [3] = {regenHp = 10, regenMana = 10, regenSoul = 1, secsTo = 5, effectTo = 32}, [4] = {regenHp = 15, regenMana = 5, regenSoul = 1, secsTo = 5, effectTo = 34}, [5] = {regenHp = 10, regenMana = 20, regenSoul = 2, secsTo = 3, effectTo = 30}, [6] = {regenHp = 10, regenMana = 20, regenSoul = 2, secsTo = 3, effectTo = 30}, [7] = {regenHp = 20, regenMana = 20, regenSoul = 1, secsTo = 3, effectTo = 49}, [8] = {regenHp = 20, regenMana = 10, regenSoul = 1, secsTo = 3, effectTo = 44}, } function onEquip(cid) if getPlayerStorageValue(cid, 10001) > os.time() then doPlayerSendTextMessage(cid, 20, "Você deve aguardar "..getPlayerStorageValue(cid, 10001) - os.time().." segundos para utilizar este recurso novamente.") return false end if not vocs[getPlayerVocation(cid)] then return false end startAura(cid) return true end function startAura(cid) local colors = {16, 161, 149, 251, 211, 200} if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == 8752 then doPlayerAddSoul(cid, vocs[getPlayerVocation(cid)].regenSoul) doCreatureAddHealth(cid, vocs[getPlayerVocation(cid)].regenHp) doCreatureAddMana(cid, vocs[getPlayerVocation(cid)].regenMana) doSendMagicEffect(getCreaturePosition(cid), vocs[getPlayerVocation(cid)].effectTo) doSendAnimatedText(getCreaturePosition(cid), "RegenE !", colors[math.random(1, #colors)]) addEvent(startAura, vocs[getPlayerVocation(cid)].secsTo * 1000, cid) setPlayerStorageValue(cid, 10001, os.time() + 10) end return false end
Abra o arquivo movements.xml com o bloco de notas e adicione a seguinte tag:
<movevent type="Equip" itemid="8752" slot="ring" event="script" value="regeneration.lua"/>
Configuração

Nesta seguinte parte do código, você encontra:
local vocs = { [1] = {regenHp = 5, regenMana = 15, regenSoul = 1, effectTo = 13, secsTo = 5}, [2] = {regenHp = 5, regenMana = 15, regenSoul = 1, effectTo = 13, secsTo = 5}, [3] = {regenHp = 10, regenMana = 10, regenSoul = 1, effectTo = 32, secsTo = 5}, [4] = {regenHp = 15, regenMana = 5, regenSoul = 1, effectTo = 34, secsTo = 5}, [5] = {regenHp = 10, regenMana = 20, regenSoul = 2, effectTo = 30, secsTo = 5}, [6] = {regenHp = 10, regenMana = 20, regenSoul = 2, effectTo = 30, secsTo = 5}, [7] = {regenHp = 20, regenMana = 20, regenSoul = 1, effectTo = 49, secsTo = 5}, [8] = {regenHp = 20, regenMana = 10, regenSoul = 1, effectTo = 44, secsTo = 5}, }
Cada linha dessa ("[1], [2], [3], [4]....") representam os IDS das vocações, ou seja de Sorcerer até Elite Knight, as 8.
regenHp é quanto de HP reala, regenMana quanto de Mana heala, regenSoul é o Soul (óbvio), effectTo você coloca o ID do efeito que fica saindo para esta vocação, coloquei conforme achei bonito rsrs. E enfim, secsTo você coloca a cada quantos segundos vai acontecer tudo isso com o player
Enquanto ele estiver com o item equipado, vai acontecer essas regenerações e efeitos a cada o "secsTo", tudo bem configuradinho no começo do código.
E nessa linha:
local itemRegenerator = 8752
Você coloca o ITEM ID do item que te da a Regeneration, no caso DEVE ser o mesmo da tag do movements.xml.
Demonstração


Créditos pelas ideias + imagem: Overxin