Jump to content

Parar evento acontecendo


Recommended Posts

function DelayMessage(player)
        outputChatBox ("Instant text!")
    setTimer ( function()
        outputChatBox ( "5 second delay text!")
    end, 5000, 2 )
    setTimer ( function()
        outputChatBox ( "Final text")
    end, 10001, 1 )
end

addCommandHandler("msg", DeleyMessage)

Existe alguma forma de cancelar a função DelayMessage antes de que ela enviasse toda as mensagens?

usando alguma outra function

function stopmsg()
  	pararevento"delayMessage"
end

addCommandHandler("parar",stopmsg)

 

Edited by MTS_LoneWolf
Link to comment
  • Other Languages Moderators

Coloque os timers dentro de variáveis e então vc pode usar killTimer nas variáveis.

local TheTimers = {} -- Tabela vazia, onde ficarão os timers.

function DelayMessage(thePlayer)
    outputChatBox ("Instant text!")
    TheTimers[1] = setTimer(function() -- Cria o primeiro timer e coloca ele na 1 posição da tabela.
        outputChatBox("5 seconds delay text!")
    end, 5000, 2)
    TheTimers[2] = setTimer(function() -- Cria o segundo timer e coloca ele na 2 posição da tabela.
        outputChatBox("Final text")
    end, 10001, 1)
end
addCommandHandler("msg", DelayMessage)

addCommandHandler("parar", StopMsg()
    for i,v in pairs (TheTimers) do -- Para cada item da tabela TheTimers, faça:
        if (isTimer(v)) then -- Se o item é um timer ativo, então:
            killTimer(v) -- Cancela esse timer.
            TheTimers[i] = nil -- Anula a variável dele para desocupar memória.
        end
    end
end)

 

Edited by Lord Henry
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...