Pedro Colto Posted May 6, 2017 Posted May 6, 2017 function pedro(frontLeft, rearLeft, frontRight, rearRight) if localPlayer == getLocalPlayer() then local theVehicle = getPedOccupiedVehicle ( localPlayer ) for i, vehiclea in ipairs(getElementsByType("vehicle")) do local speedX, speedY, speedZ = getElementVelocity ( vehiclea ) local actualSpeed = (speedX^2 + speedY^2 + speedZ^2)^(0.5) local KMH = math.floor(actualSpeed*180) local frontLeft, rearLeft, frontRight, rearRight = getVehicleWheelStates ( theVehicle ) if frontLeft == 1 and theVehicle and KMH > 29 then outputChatBox(""..frontLeft) timer_Varible = setTimer(function()triggerServerEvent ( "someRoda1", root)end,5000,1) outputChatBox(KMH) else if frontLeft == 1 and theVehicle and KMH < 29 then if isTimer(timer_Varible) then killTimer(timer_Varible) timer_Varible=nil outputChatBox("AFF") end end end end end end .. O evento é "onClientRender". não esta dando kill no timer, me ajuda pfvr.
DNL291 Posted May 6, 2017 Posted May 6, 2017 Quantas vezes sai no chat a msg da linha 12? Deve ser porque o código executa setTimer várias vezes durante o onClientRender.
Pedro Colto Posted May 6, 2017 Author Posted May 6, 2017 Muitas vezes, após o player estar numa velocidade maior que 30 e o pneu estiver furado.
DNL291 Posted May 6, 2017 Posted May 6, 2017 Verifique se o timer já está ativo, na linha 9. Fora isso, também tem um loop em todos veículo - a velocidade verificada será dos veículos do server e não do veículo do jogador local (se é isso que você quer fazer). 1
Pedro861 Posted May 7, 2017 Posted May 7, 2017 (edited) Como assim meu xará setTimer dentro de onClientRender? o correto seria crie um setTimer dentro da função onde esta ligado o evento someRoda1 após isso criar um outro evento dando kill no timer, tipo esse: addEvent("eventName",true) addEventHandler("eventName",root, function() timers = getTimers ( 5000 ) -- obtém os milissegundo (ms) existentes for timerKey, timerValue in ipairs(timers) do killTimer ( timerValue ) outputChatBox("tempo cancelado!") end end) e ai sim chamar quando você quiser cancelar o tempo. Edited May 7, 2017 by Pedro861 1
Pedro Colto Posted May 8, 2017 Author Posted May 8, 2017 19 hours ago, Pedro861 said: Como assim meu xará setTimer dentro de onClientRender? o correto seria crie um setTimer dentro da função onde esta ligado o evento someRoda1 após isso criar um outro evento dando kill no timer, tipo esse: addEvent("eventName",true) addEventHandler("eventName",root, function() timers = getTimers ( 5000 ) -- obtém os milissegundo (ms) existentes for timerKey, timerValue in ipairs(timers) do killTimer ( timerValue ) outputChatBox("tempo cancelado!") end end) e ai sim chamar quando você quiser cancelar o tempo. Obrigado, consegui dar killtimer pelo server, não esta exatamente desses jeito que vc quis dizer mas pelo menos me ajudou a refazer a parte server e funcionou. Muito obrigado mesmo @Pedro861 e @DNL291. 1
DNL291 Posted May 8, 2017 Posted May 8, 2017 (edited) 22 hours ago, Pedro861 said: Como assim meu xará setTimer dentro de onClientRender? o correto seria crie um setTimer dentro da função onde esta ligado o evento someRoda1 após isso criar um outro evento dando kill no timer, tipo esse: addEvent("eventName",true) addEventHandler("eventName",root, function() timers = getTimers ( 5000 ) -- obtém os milissegundo (ms) existentes for timerKey, timerValue in ipairs(timers) do killTimer ( timerValue ) outputChatBox("tempo cancelado!") end end) e ai sim chamar quando você quiser cancelar o tempo. Dependendo do que ele quer fazer, deixaria mais complicado fazer com o timer noutro lado. Mas pra obtê-lo como você disse é só usar getTimers(5000). O timer dentro desse evento que é chamado múltiplas vezes por segundo, não é problema porque não vai ser executado continuamente (vai ter a variável do timer pra checar antes que a função seja chamada). Aquele loop em todos os veículo que eu não entendi - isso sim causa impacto pra performance dentro desse evento. Edited May 8, 2017 by DNL291
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now