Ir para conteúdo
  • 0

Tem Como Arrumar Esse Erro?


MonsterOt

Pergunta

local events ={}

local tempo = 30 -- tempo em segundos

local pos = {x = 1, y = 1, z = 1}

function onStepIn(cid, item, pos)

doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado")

events[getPlayerGUID(cid)] = addEvent(doTeleportThing, pos, tempo * 1000, cid)

return true

end

 

function onStepOut(cid, item, pos)

doPlayerSendTextMessage(cid, 28, "Contagem zerada.")

stopEvent(events[getPlayerGUID(cid)])

events[getPlayerGUID(cid)] = nil

return true

end

 

da esse erro:

 

695nezwhrkmc6qq8zd03.png

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

6 respostass a esta questão

Posts Recomendados

  • 0

mudar isso:

 

addEvent(doTeleportThing, pos, tempo * 1000, cid)

 

para isso:

 

addEvent(doTeleportThing, tempo * 1000, cid, pos)

 

lembrando que vai dar erro se o player morrer/fizer logout, pois vai tentar teleportar uma creature que não existe mais

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

  • 0

Amanha mais rep brun123

 

lembrando que vai dar erro se o player morrer/fizer logout, pois vai tentar teleportar uma creature que não existe mais

 

tem como tirar esse bug?

 

 

Edit:

 

o player depois de 30 segundos nao é teleportado para a posição ;p

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

  • 0

é porque tem um conflito no nome de variáveis, no function onStepIn(cid, item, pos) está declarando "pos" por cima da pos que você configurou lá em cima, é só mudar o "pos" do function onStepIn para qualquer outra coisa, aqui 100%:

 

local events ={}
local tempo = 30 -- tempo em segundos
local pos = {x = 1, y = 1, z = 1}
local function doTeleportThingNoError(guid, pos)
   local cid = getPlayerByGUID(guid)
   if not isCreature(cid) then return end
   doTeleportThing(cid, pos)
end

function onStepIn(cid, item, oldPos)
doPlayerSendTextMessage(cid, 27, "Contagem iniciada, daqui " .. tempo .. " segundos você será teleportado")
events[getPlayerGUID(cid)] = addEvent(doTeleportThingNoError, tempo * 1000, getPlayerGUID(cid), pos)
return true
end

function onStepOut(cid, item, pos)
doPlayerSendTextMessage(cid, 28, "Contagem zerada.")
stopEvent(events[getPlayerGUID(cid)])
events[getPlayerGUID(cid)] = nil
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

queria que quando o player pise no tile, comece a contar e depois de 30 segundos ele seja teleportada, OU se o player sair do tile antes de ser teleportado o tempo pare de contar, e se ele entrar de volta no tile comece a contar do 0.

 

Tem como fazer isso?

 

 

 

grato

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...