Ir para conteúdo
  • 0

TFS 0.4 ERRO Call stack overflow.


boxxer321

Pergunta

Galera, estou usando esse script

  Ocultar conteúdo
function onStepIn(cid, item, position, fromPosition)
         local storage = 89301 --storage gravada
         local delay = 2--tempo configuravel do delay
         if (getPlayerStorageValue(cid, storage) <= os.time()) then
            setPlayerStorageValue(cid, storage, os.time()+delay)
            return true
         else
             doTeleportThing(cid, fromPosition, false)
             doPlayerSendCancel(cid, "Espere um momento para usar esta escada.")
         end
   return true 
end

 

 

e quando eu subo uma escada, da esse erro no console e debug no client:

[Error - MoveEvent::executeStep] Call stack overflow.

e quando removo o script, o erro some e sem debug.

 

alguem pra ajudar?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Diretor

Esse erro ocorre porque você está utilizando um script de onStepIn, na pos Y que retorna você pra outra posição(X), na posição X o onStepIn te retorna pra posição Y. Isso causa um loop infinito e ai vem o erro stack overflow...

 

Tu poderia utilizar da seguinte maneira:

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
         local storage = 89301 --storage gravada
         local delay = 2--tempo configuravel do delay
         if (getPlayerStorageValue(cid, storage) <= os.time()) then
            setPlayerStorageValue(cid, storage, os.time()+delay)
         else
             doTeleportThing(cid, fromPosition, true)
             doPlayerSendCancel(cid, "Espere um momento para usar esta escada.")
         end
   return true 
end

Não tenho certeza se o debug irá ser corrigido. Porém, ainda irá retornar o erro de stack overflow(se você persistir em ir na escada enquanto ainda tem delay). Acho melhor você retirar esse script. Vi gente com problemas assim no TFS 1.X, parece que fizeram uma alteração lá, mas não sei se realmente vale apena.

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Yan Liima disse:

Esse erro ocorre porque você está utilizando um script de onStepIn, na pos Y que retorna você pra outra posição(X), na posição X o onStepIn te retorna pra posição Y. Isso causa um loop infinito e ai vem o erro stack overflow...

 

Tu poderia utilizar da seguinte maneira:


function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
         local storage = 89301 --storage gravada
         local delay = 2--tempo configuravel do delay
         if (getPlayerStorageValue(cid, storage) <= os.time()) then
            setPlayerStorageValue(cid, storage, os.time()+delay)
         else
             doTeleportThing(cid, fromPosition, true)
             doPlayerSendCancel(cid, "Espere um momento para usar esta escada.")
         end
   return true 
end

Não tenho certeza se o debug irá ser corrigido. Porém, ainda irá retornar o erro de stack overflow(se você persistir em ir na escada enquanto ainda tem delay). Acho melhor você retirar esse script. Vi gente com problemas assim no TFS 1.X, parece que fizeram uma alteração lá, mas não sei se realmente vale apena.

agora eu uso a escada e nunca mais consigo usar :(

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...