Regeneration System

Roksas
Por Roksas
em Actions e Talkactions

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

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


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

kaiotp

Xtibiano
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 25/02/13Posts: 169Gênero: MasculinoChar no Tibia: Fodinha

Parabéns rep+

 

1# a comentar u.u

Meus Trabalhos :

Dbo Rox V2 8.60

Overxin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/05/13Posts: 7Char no Tibia: NoTengo

Parabens, depois de muitas tentativas finalmente system saiu do "papel" (: REP+

866664

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/08/12Posts: 25Char no Tibia: Apoway

manero , bom script Rep+

AlexandreKG

Estudante de TI
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 30/10/11Posts: 1153Gênero: Masculino

Ótimo script, parabéns Roksas.

 

Continue com seu trabalho maravilhoso!

guieray

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/13Posts: 32

Tu é brabo mesmo!

ScythePhantom

Conde
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 27/01/13Posts: 443Gênero: Masculino

Uma espécie de Pair of soft boots, só que com atributos ainda não vistos, como exemplo o "regensoul", enfim, gostei muito, parabéns mais uma vez e REP+ pelo script.

Att. CelinoAndrade

 

 

 

 

 

 

 

 

 

 

 

 

appearance.png [Show Off] ScythePhantom

network.png pbOT-Skyline

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Exatamente, mas no caso é infinita, e como disse, nome novos atributos + effect. :)


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

Gufipl

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/06/15Posts: 38Gênero: Masculino

 

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