Ir para conteúdo

Regeneration System


Roksas

Posts Recomendados

Regeneration System

 

divisor.png

 

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

 

divisor.png

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

 

divisor.png

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

 

divisor.png

5mq2v.jpg

Créditos pelas ideias + imagem: Overxin

Editado por Roksas
Link para o comentário
Compartilhar em outros sites

  • 3 years later...

 

Regeneration System

 

divisor.png

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

 

divisor.png

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:


 

Configuração

 

divisor.png

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

 

divisor.png

 

5mq2v.jpg

 

Créditos pelas ideias + imagem: Overxin

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...