AT

[Resolvido] Learnspell E Unlearn Spell Por Tempo

Por atzka, 14 de out. de 2011 em Scripts

otserv
tibia
5
1.6k
atzkaA
14 de outubro de 2011 às 00:06

Olá pessoal, temos aqui 2 funções que fazem o jogador aprender a magia e desaprender a magia, respectivamente.

doPlayerLearnInstantSpell(cid, Spell)
doPlayerUnlearnInstantSpell(cid, Spell)

 

Eu tentei fazer o jogador aprender a magia durante determinado tempo com a função addEvent mas não deu certo.

function onUse(cid, item, frompos, item2, topos)
local tempo = 1000
           addEvent(doPlayerLearnInstantSpell,10*tempo,cid, "Haste")
return true
end

 

 

Alguém poderia me ajudar?

 

  • Como fazer uma função que depois de X tempo acontece o evento? (Exemplo: Quando o jogador usa o item ele aprende a magia e quando se passam 10 segundos ele "desaprende" a magia.)
    Algo como:
     
    ---- EDIT -----
    function onUse(cid, item, frompos, item2, topos)
               doPlayerLearnInstantSpell(cid, "Haste")
               funcEvent(doPlayerUnlearnInstantSpell, tempo, cid, "Haste")
    
    return true
    end
    


    Sendo a funcEvent uma funçao que achei no topico do nosso amigo Demonbholder
     

     
    function funcEvent(func, time, ...)
    
    local i, timeLimit, timeFunc = os.time(), time/1000, os.time
    
    while true do
    if timeFunc() - i >= timeLimit then
    func(...)
    break
    end
    end
    
    end
    


 

 

 

Editado Outubro 14 por atzka

RiatiR
14 de outubro de 2011 às 01:20

Acho que nao é possivel fazer isso se nao deu com a funçao addEvent

atzkaA
14 de outubro de 2011 às 01:40

@NoFuway

Não entendi pq nao vai funcionar.

 

 

 

@Henrique Moura

os.time() oq? ;o

digo1040D
14 de outubro de 2011 às 02:00

Eai, tudo bem? tente assim.

 

function onUse(cid, item, frompos, item2, topos)
doPlayerLearnInstantSpell(cid, "Haste")
addEvent(doPlayerUnlearnInstantSpell, 10*1000, cid, "Haste")
return true
end

 

E lembre que no arquivo spells.xml, o argumento needlearn na tag da magia precisa ser 1

 

:P::D

atzkaA
14 de outubro de 2011 às 02:38

@Digaao

Vlw Digaao.

 

 

Resolvido.

Podem fechar o topico.

 

Obrigado.