Jump to content

Como faço para colocar delay em uma função.


Recommended Posts

Olá, Boa noite

Estou fazendo um script para corporações pegarem armas, e fiz a função de quando eles passarem em cima do marker aparecer uma mensagem, o código a seguir:

Marker1 = createMarker ( 1005.14197, 831.82520, 32.85537, "cylinder", 1.5, 255, 255, 255, 50 ) 

function msg(thePlayer)
	outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
	outputChatBox("- Digite /rifle para pegar seu Rifle.",player, 255, 255, 0, true)
	outputChatBox("- Digite /sub para pegar sua Submetralhadora.",player, 255, 255, 0, true)
	outputChatBox("- Digite /shotgun para pegar sua Shotgun.",player, 255, 255, 0, true)
	outputChatBox("- Digite /deagle para pegar sua Pistola.",player, 255, 255, 0, true)
	outputChatBox("- Digite /tazer para pegar seu Tazer.",player, 255, 255, 0, true)
	outputChatBox("- Digite /cacetete para pegar seu Cacetete.",player, 255, 255, 0, true)
	outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
end
addEventHandler("onMarkerHit", Marker1, msg)

Tudo funciona perfeitamente, no entanto queria saber se tem alguma maneira de eu não deixar o player ficar passando varias vezes em cima do marker e floodar a mensagem no chat dele, ou seja, aparecer a mensagem uma vez a cada 5 segundos, algo do genêro.

Agradeço desde já aos que puderem ajudar.

Link to comment

Você Pode Estar Utilizando o setTimer para colocar o delay, e identificar se ele passou por um ElementData ou por uma Tabela.

Exemplo Que Recomendo :

PassouMarker = {}
Marker1 = createMarker ( 1005.14197, 831.82520, 32.85537, "cylinder", 1.5, 255, 255, 255, 50 ) 

function msg(thePlayer)
    if getElementType(thePlayer) == "player" then -- ISSO É PRA NÃO DAR ERRO NO DEBUG QUANDO PASSAR NO MARKER COM UM VEICULO
        if not PassouMarker[thePlayer] then
            outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
            outputChatBox("- Digite /rifle para pegar seu Rifle.",player, 255, 255, 0, true)
            outputChatBox("- Digite /sub para pegar sua Submetralhadora.",player, 255, 255, 0, true)
            outputChatBox("- Digite /shotgun para pegar sua Shotgun.",player, 255, 255, 0, true)
            outputChatBox("- Digite /deagle para pegar sua Pistola.",player, 255, 255, 0, true)
            outputChatBox("- Digite /tazer para pegar seu Tazer.",player, 255, 255, 0, true)
            outputChatBox("- Digite /cacetete para pegar seu Cacetete.",player, 255, 255, 0, true)
            outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
            PassouMarker[thePlayer] = true
            setTimer(function()
                PassouMarker[thePlayer] = false
            end,5000,1) -- 5000 = 5 Segundos, o 1 Seria Para Só Fazer 1 vez
        end
    end
end
addEventHandler("onMarkerHit", Marker1, msg)

Outro Exemplo  :

Marker1 = createMarker ( 1005.14197, 831.82520, 32.85537, "cylinder", 1.5, 255, 255, 255, 50 ) 

function msg(thePlayer)
    if getElementType(thePlayer) == "player" then -- ISSO É PRA NÃO DAR ERRO NO DEBUG QUANDO PASSAR NO MARKER COM UM VEICULO
        if not getElementData(thePlayer, "PassouMarker") then
            outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
            outputChatBox("- Digite /rifle para pegar seu Rifle.",player, 255, 255, 0, true)
            outputChatBox("- Digite /sub para pegar sua Submetralhadora.",player, 255, 255, 0, true)
            outputChatBox("- Digite /shotgun para pegar sua Shotgun.",player, 255, 255, 0, true)
            outputChatBox("- Digite /deagle para pegar sua Pistola.",player, 255, 255, 0, true)
            outputChatBox("- Digite /tazer para pegar seu Tazer.",player, 255, 255, 0, true)
            outputChatBox("- Digite /cacetete para pegar seu Cacetete.",player, 255, 255, 0, true)
            outputChatBox("=============== ARMAS PRF ================",player, 0, 0, 255, true)
            setElementData(thePlayer,"PassouMarker",true)
            setTimer(function()
                setElementData(thePlayer,"PassouMarker",false)
            end,5000,1) -- 5000 = 5 Segundos, o 1 Seria Para Só Fazer 1 vez
        end
    end
end
addEventHandler("onMarkerHit", Marker1, msg)

 

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