Jump to content

Espera para executar


Recommended Posts

estou pensando em algo mas não sei como fazer algo como

function Assaltar(player)
    toggleAllControls(player, false)
	next:giveItem(player, "Dinheiro Sujo", 5000)
	(esperar 10 seg)
	next:giveItem(player, "Dinheiro Sujo", 5000)
	(esperar 10 seg)
	next:giveItem(player, "Dinheiro Sujo", 5000)
	toggleAllControls(player, true)
end

seria possível algo desse gênero?

Link to comment
  • Other Languages Moderators

Olá, @MTS_LoneWolf!

Sim, isso é possível utilizando de timers. (setTimer)

A lógica por trás desse exemplo que você deu, seria usar um timer com duas (2) execuções a cada 10 segundos, ou seja, ela iria demorar 20 segundos para executar todo o processo dado como exemplo e, caso estivesse executando pela segunda vez, a função toggleAllControls também iria ser chamada.

Exemplo:

addCommandHandler("assaltar", function(player)
    toggleAllControls(player, false)
    givePlayerMoney(player, 5000)
    setTimer(function(player)
        if isElement(player) then -- IMPORTANTE! Aqui checará se o jogador existe, pois ele pode sair do servidor, o timer continuaria executando e geraria um erro no '/debugscript 3'.
            local _, rTimes = getTimerDetails(sourceTimer) -- Será armazenado na variável 'rTimes' quantas vezes restam para terminar.
            givePlayerMoney(player, 5000)
          
            if rTimes == 0 then -- Caso esteja restando 0, ou seja, nada, então nós voltamos à situação normal do jogador, com todos os controles funcionando.
                toggleAllControls(player, true)
            end
        end
    end, 10000, 2, player)
end)

 

Edited by androksi
  • Thanks 1
Link to comment
3 hours ago, androksi said:

Olá, @MTS_LoneWolf!

Sim, isso é possível utilizando de timers. (setTimer)

A lógica por trás desse exemplo que você deu, seria usar um timer com duas (2) execuções a cada 10 segundos, ou seja, ela iria demorar 20 segundos para executar todo o processo dado como exemplo e, caso estivesse executando pela segunda vez, a função toggleAllControls também iria ser chamada.

Exemplo:

addCommandHandler("assaltar", function(player)
    toggleAllControls(player, false)
    givePlayerMoney(player, 5000)
    setTimer(function(player)
        if isElement(player) then -- IMPORTANTE! Aqui checará se o jogador existe, pois ele pode sair do servidor, o timer continuaria executando e geraria um erro no '/debugscript 3'.
            local _, rTimes = getTimerDetails(sourceTimer) -- Será armazenado na variável 'rTimes' quantas vezes restam para terminar.
            givePlayerMoney(player, 5000)
          
            if rTimes == 0 then -- Caso esteja restando 0, ou seja, nada, então nós voltamos à situação normal do jogador, com todos os controles funcionando.
                toggleAllControls(player, true)
            end
        end
    end, 10000, 2, player)
end)

 

caso eu crie uma outra função que de set no rTimes para 0, ele cancelaria o evento?

caso ele tenha que executar a função por exemplo, 5 vezes, a variavel rTimes seria 5, caso quando ela estiver em 3, eu setar ela em 0, ele cancela as outras 2 ações que aconteceriam?

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...