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











