Tem Como Arrumar Esse Erro?

MonsterOt
em Scripts

MonsterOt

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 21/07/12Posts: 65
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

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

Vlw ae brun123 eu tinha feito o script no Tk soque pensava que o tempo sempre ficava meio que por ultimo. rep+

jeoz.png

MonsterOt

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 21/07/12Posts: 65

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

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

é 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

5303fg1.png

MonsterOt

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 21/07/12Posts: 65

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