Ir para conteúdo

◄ Life Fountain ►


sejameuamigo

Posts Recomendados

Nome: Life Fountain

Versão Testada: 8.54

Descrição: Você vai ganhando 'x' vida (sem poder se mover), quando sua vida chega no máximo o script para. Caso você logue, para evitar bugs, há um creature event que bloqueia que continue healando, e mude o storage.

 

Code:

Creature Scripts:

 

fonte.lua

function onLogout(cid)
local storage = 9977
       if getPlayerStorageValue(cid,storage) == 1 then
doPlayerSetStorageValue(cid,storage,-1)
doCreatureSetNoMove(cid,false)
end
       return TRUE
end

 

creaturescripts.xml

       <event type="logout" name="Fountain" event="script" value="fonte.lua"/>

 

 

Actions:

 

fonte.lua

-- Life Fountain by sejameuamigo
function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = getCreaturePosition(cid)
local storage = 9977 -- storage, se mudou aki mude no creaturescripts
local health = 50 -- vida que vai healar por delay
local Und = 1334 -- unique id do item
local delay = 1 -- delay por heal(segundos)
local effect = 12 -- efeito, ta naqueles brilhos azuis que e de heal msm

function foder()
if getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then
doPlayerSendTextMessage(cid,4,"It ends now.")
doPlayerSetStorageValue(cid,storage,-1)
doCreatureSetNoMove(cid,false)
elseif getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then
doCreatureSetNoMove(cid,true)
addEvent(doCreatureAddHealth,delay*1000,cid,health)
addEvent(doSendMagicEffect,delay*1000,pos,12)
addEvent(foder,1000)
end
end

if getPlayerStorageValue(cid,storage) == 1 then
doPlayerSendTextMessage(cid,4,"Machine is already working. Please wait.")

elseif item.uid == Und and getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then
doPlayerSendTextMessage(cid,4,"Your life is already full.")

elseif item.uid == Und and getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then
doPlayerSendTextMessage(cid,4,"Machine starts.")
doPlayerSetStorageValue(cid,storage,1)
addEvent(foder,100)
end
return TRUE
end

 

actions.xml

       <action uniqueid="1334" script="fonte.lua"/>

O 1334 é o unique id, tem que ser o mesmo do "local Und = xxx" do fonte.lua.

 

 

 

Observação: Se o player logar no meio do script, vai aparecer um erro no console que não conseguiu achar o player e healar ele. Não muda nada.

 

Gostou? Rep+

Não Gostou? Rep+

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

Tem esse aqui que recupera o max de de mana e hp:

 

estatuaheal.lua

--by Henrique Alves
function onUse(cid, item, frompos, item2, topos)

if getPlayerLevel(cid) >= 10
then

doSendAnimatedText(getPlayerPosition(cid), "AhhHah...", 105)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doTransformItem(item.uid, 5739)
doSendMagicEffect(topos, 12)
else
doPlayerSendTextMessage(cid,22,"Vc num e lvl 10.")
return 0
end
return 1
end

 

Actions.xlm

<action itemid="5739" script="estatuaheal.lua" />

 

 

Usei uma fonte :)

Usando em TFS 0.4 e Tibia 8.6

 

tipow sem querer dar uma de noob mais sendo noob pra que serve esse script?

nao entendi muito bem =/

Quando você tem pouca life ou mana você clica na fonte e ela enche tua mana e hp ate o max.

"O script que eu postei faz isso."

Link para o comentário
Compartilhar em outros sites

@Lolboss: Ao usar, você não pode mais se mover e você vai ganhando 50 de vida, e quando sua vida chegar ao máximo, você poderá se mover e para de healar.

 

@small201: Eu curti mais o meu, principalmente pelos erros de língua portuguesa. Sabe? Dá mais um RPG.

Me add: eitorlaba@hotmail.com que eu demonstro como funciona no meu server, ou qualquer outra coisa.

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

O fato é que são dois scripts diferentes, o dele heala o máximo de vida já de cara, o seu heala tanto de vida de tantos em tantos segundos.

 

Uma formula legal que você poderia ter usado é:

 

(getCreatureMaxHealth(cid) - getCreatureHealth(cid))/10

 

Nesse caso iria healar diferente de jogador para jogador e depois de 10 vezes que o addEvent é executado, a vida dele chega ao máximo.

 

Seu script está bom, até.

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

Tinha esquecido:

Demonbholder diz:
 Eu curti mais o meu, principalmente pelos erros de língua portuguesa. Sabe? Dá mais um RPG.
desde quando lingua portuguesa da mais rpg
lol
' - eitor - . diz:
nao
o meu script da mais rpg
nao a lingua portuguesa

 

Porém se você quer falar igual um gângster, quem sou eu pra te julgar? :D

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

  • 4 months later...

Nome: Life Fountain

Versão Testada: 8.54

Descrição: Você vai ganhando 'x' vida (sem poder se mover), quando sua vida chega no máximo o script para. Caso você logue, para evitar bugs, há um creature event que bloqueia que continue healando, e mude o storage.

 

Code:

Creature Scripts:

 

fonte.lua

function onLogout(cid)
local storage = 9977
       if getPlayerStorageValue(cid,storage) == 1 then
doPlayerSetStorageValue(cid,storage,-1)
doCreatureSetNoMove(cid,false)
end
       return TRUE
end

 

creaturescripts.xml

       <event type="logout" name="Fountain" event="script" value="fonte.lua"/>

 

 

Actions:

 

fonte.lua

-- Life Fountain by sejameuamigo
function onUse(cid, item, fromPosition, itemEx, toPosition)
local pos = getCreaturePosition(cid)
local storage = 9977 -- storage, se mudou aki mude no creaturescripts
local health = 50 -- vida que vai healar por delay
local Und = 1334 -- unique id do item
local delay = 1 -- delay por heal(segundos)
local effect = 12 -- efeito, ta naqueles brilhos azuis que e de heal msm

function foder()
if getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then
doPlayerSendTextMessage(cid,4,"It ends now.")
doPlayerSetStorageValue(cid,storage,-1)
doCreatureSetNoMove(cid,false)
elseif getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == 1 then
doCreatureSetNoMove(cid,true)
addEvent(doCreatureAddHealth,delay*1000,cid,health)
addEvent(doSendMagicEffect,delay*1000,pos,12)
addEvent(foder,1000)
end
end

if getPlayerStorageValue(cid,storage) == 1 then
doPlayerSendTextMessage(cid,4,"Machine is already working. Please wait.")

elseif item.uid == Und and getCreatureHealth(cid) == getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then
doPlayerSendTextMessage(cid,4,"Your life is already full.")

elseif item.uid == Und and getCreatureHealth(cid) < getCreatureMaxHealth(cid) and getPlayerStorageValue(cid,storage) == -1 then
doPlayerSendTextMessage(cid,4,"Machine starts.")
doPlayerSetStorageValue(cid,storage,1)
addEvent(foder,100)
end
return TRUE
end

 

actions.xml

       <action uniqueid="1334" script="fonte.lua"/>

O 1334 é o unique id, tem que ser o mesmo do "local Und = xxx" do fonte.lua.

 

 

 

Observação: Se o player logar no meio do script, vai aparecer um erro no console que não conseguiu achar o player e healar ele. Não muda nada.

 

Gostou? Rep+

Não Gostou? Rep+

Bom se nesse fds eu tiver um tempinho livre e arrumo o erro do console e te passo a solução e vc atualiza aqui... mais como eu disse se eu tive tempo sobrando não posso garantir nada

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...