Jump to content

[AJUDA] KillTimer não funciona nesse caso


Recommended Posts

MarkerBike = createMarker(1086.3326416016,-1802.1416015625,12.60143661499, "cylinder", 1.5, 255,255,255,50)
BlipLS = createBlipAttachedTo(MarkerBike, 33)
setBlipVisibleDistance(BlipLS, 800)
--local Veiculos = {510} -- IDs dos Veículos.
Rumpo = {}
AparecerBike = Rumpo[source]
function spawn (source)
    if isElementWithinMarker(source, MarkerBike) then 
        if getPlayerMoney(source) >= 500 then 
            takePlayerMoney (source, 500)
            if AparecerBike and isElement(AparecerBike) then
                destroyElement(AparecerBike)
            end
            AparecerBike = createVehicle (510, 1091.2088623047,-1796.9704589844,13.606305122375)   
            setElementData(AparecerBike, "kart.race", true)  
            setElementData(source, "owner", AparecerBike) 
            setElementData(AparecerBike, "conta.tempo", false)                                
            setElementRotation(AparecerBike,0,0,0)
            fadeCamera ( source, false, 0, 0, 0, 0 )   
            setTimer ( fadeCamera, 500, 1, source , true, 0.5 )
            setTimer ( setCameraTarget, 500, 1, source )
            outputChatBox ("#FF0000✘ #ffffffINFO #FF0000✘➺ #FF0000Bicicleta Alugada com sucesso, faça bom uso!", source, 255, 255, 255, true)
            warpPedIntoVehicle (source, AparecerBike)
        else
            outputChatBox("#FF0000✘ #ffffffINFO #FF0000✘➺ #FF0000Você não tem dinheiro suficiente para alugar uma bike!", source, 255,255,255,true)
        end
    end
end
addCommandHandler("alugar", spawn)

function enterVehicle ( player, seat, jacked ) 
    if getElementData(source, "kart.race") == true and seat == 0 then 
	   local owner = getElementData(source, "owner")
	   else
         cancelEvent()
        outputChatBox ( "Você não é dono desta bicicleta, alugue sua bike para poder usá-la.", player )
    end
  end
addEventHandler ( "onVehicleStartEnter", getRootElement(), enterVehicle ) 


function destroyVehicle(vehicle)
   local check=false
   for i,player in ipairs(getElementsByType("player")) do
       if getPedOccupiedVehicle(player)==vehicle then
           check=true
       end
   end
   if check==false then
       destroyElement(AparecerBike)
   end
end
 
local minutos = 1

function exitVehicle(AparecerBike, seat)
    if getElementData(AparecerBike, "kart.race") == true and seat == 0 then
        if isTimer(Rumpo[AparecerBike]) then
            killTimer(Rumpo[AparecerBike]) -- Mesmo com esse killTimer ele não funciona
        end
        Rumpo[AparecerBike] = setTimer(destroyVehicle,5000*minutos,0,AparecerBike) -- Esse é o timer que não para...
    end
end
addEventHandler("onPlayerVehicleExit",getRootElement(),exitVehicle)

function onPlayerVehicleEnter (AparecerBike, seat)
    if getElementData(AparecerBike, "kart.race") == true and seat == 0 then
	    if isTimer(Rumpo[AparecerBike]) then
		    killTimer(Rumpo[AparecerBike])
		end
	end
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), onPlayerVehicleEnter)

function onResourceStop (AparecerBike)
    if isTimer(Rumpo[AparecerBike]) then
        killTimer(Rumpo[AparecerBike])
    end
end
addEventHandler("onResourceStop", getResourceRootElement( getThisResource() ), onResourceStop)

function DestroyVeiculo ()
    if getElementData(source, "kart.race") then
        setElementData(source, "kart.race", false)
        destroyElement (AparecerBike)
        killTimer(Rumpo[AparecerBike])
    end
end
addEventHandler ("onPlayerLogout", root, DestroyVeiculo)
addEventHandler ("onPlayerQuit", root, DestroyVeiculo)
addEventHandler ("onPlayerWasted", root, DestroyVeiculo)
addEventHandler ("onPlayerBan", root, DestroyVeiculo)
addEventHandler ("onResourceStop", root, DestroyVeiculo)

Não consigo parar o timer (está com descrição no código qual o timer estou informando). Já tentei de várias maneiras, mas todas sem sucesso, o elemento é destruído mas o timer não para, recebo a seguinte informação no console:

server.Lua:50: Bad argument @ 'destroyElement' [Expected element at argument 1]

Se alguém puder ajudar agradeço!

Link to comment
9 hours ago, joao2235 said:

MarkerBike = createMarker(1086.3326416016,-1802.1416015625,12.60143661499, "cylinder", 1.5, 255,255,255,50)
BlipLS = createBlipAttachedTo(MarkerBike, 33)
setBlipVisibleDistance(BlipLS, 800)
--local Veiculos = {510} -- IDs dos Veículos.
Rumpo = {}
AparecerBike = Rumpo[source]
function spawn (source)
    if isElementWithinMarker(source, MarkerBike) then 
        if getPlayerMoney(source) >= 500 then 
            takePlayerMoney (source, 500)
            if AparecerBike and isElement(AparecerBike) then
                destroyElement(AparecerBike)
            end
            AparecerBike = createVehicle (510, 1091.2088623047,-1796.9704589844,13.606305122375)   
            setElementData(AparecerBike, "kart.race", true)  
            setElementData(source, "owner", AparecerBike) 
            setElementData(AparecerBike, "conta.tempo", false)                                
            setElementRotation(AparecerBike,0,0,0)
            fadeCamera ( source, false, 0, 0, 0, 0 )   
            setTimer ( fadeCamera, 500, 1, source , true, 0.5 )
            setTimer ( setCameraTarget, 500, 1, source )
            outputChatBox ("#FF0000✘ #ffffffINFO #FF0000✘➺ #FF0000Bicicleta Alugada com sucesso, faça bom uso!", source, 255, 255, 255, true)
            warpPedIntoVehicle (source, AparecerBike)
        else
            outputChatBox("#FF0000✘ #ffffffINFO #FF0000✘➺ #FF0000Você não tem dinheiro suficiente para alugar uma bike!", source, 255,255,255,true)
        end
    end
end
addCommandHandler("alugar", spawn)

function enterVehicle ( player, seat, jacked ) 
    if getElementData(source, "kart.race") == true and seat == 0 then 
	   local owner = getElementData(source, "owner")
	   else
         cancelEvent()
        outputChatBox ( "Você não é dono desta bicicleta, alugue sua bike para poder usá-la.", player )
    end
  end
addEventHandler ( "onVehicleStartEnter", getRootElement(), enterVehicle ) 


function destroyVehicle(vehicle)
   local check=false
   for i,player in ipairs(getElementsByType("player")) do
       if getPedOccupiedVehicle(player)==vehicle then
           check=true
       end
   end
   if check==false then
       destroyElement(AparecerBike)
   end
end
 
local minutos = 1

function exitVehicle(AparecerBike, seat)
    if getElementData(AparecerBike, "kart.race") == true and seat == 0 then
        if isTimer(Rumpo[AparecerBike]) then
            killTimer(Rumpo[AparecerBike]) -- Mesmo com esse killTimer ele não funciona
        end
        Rumpo[AparecerBike] = setTimer(destroyVehicle,5000*minutos,0,AparecerBike) -- Esse é o timer que não para...
    end
end
addEventHandler("onPlayerVehicleExit",getRootElement(),exitVehicle)

function onPlayerVehicleEnter (AparecerBike, seat)
    if getElementData(AparecerBike, "kart.race") == true and seat == 0 then
	    if isTimer(Rumpo[AparecerBike]) then
		    killTimer(Rumpo[AparecerBike])
		end
	end
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), onPlayerVehicleEnter)

function onResourceStop (AparecerBike)
    if isTimer(Rumpo[AparecerBike]) then
        killTimer(Rumpo[AparecerBike])
    end
end
addEventHandler("onResourceStop", getResourceRootElement( getThisResource() ), onResourceStop)

function DestroyVeiculo ()
    if getElementData(source, "kart.race") then
        setElementData(source, "kart.race", false)
        destroyElement (AparecerBike)
        killTimer(Rumpo[AparecerBike])
    end
end
addEventHandler ("onPlayerLogout", root, DestroyVeiculo)
addEventHandler ("onPlayerQuit", root, DestroyVeiculo)
addEventHandler ("onPlayerWasted", root, DestroyVeiculo)
addEventHandler ("onPlayerBan", root, DestroyVeiculo)
addEventHandler ("onResourceStop", root, DestroyVeiculo)

Não consigo parar o timer (está com descrição no código qual o timer estou informando). Já tentei de várias maneiras, mas todas sem sucesso, o elemento é destruído mas o timer não para, recebo a seguinte informação no console:

server.Lua:50: Bad argument @ 'destroyElement' [Expected element at argument 1]

Se alguém puder ajudar agradeço!

eu te mandei o  código arrumado no pv

 

https://prnt.sc/p29jd4

Link to comment

Sim, no código o timer está funcionando, mas é preciso que o timer para destruir a bike seja parado quando o player entre nela novamente. O que está dando erro é que quando bate o timer para destruir a bike após o player ficar fora dela a bike é destruída, mas o timer não para.

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