Jump to content

Velocímetro e gasosa


Recommended Posts

Você deve ver qual elementDate o script está usando e depois fazer um getElementData no velocimetro puxando o element da gasolina.

Provavelmente deve ser "fuel", caso seja basta por no velocímetro:

local vehicle = getPedOccupiedVehicle(getLocalPlayer()) -- identifica o veiculo q a pessoa tá (Provavelmente já deve ter isso no seu velocimetro)
getElementData(vehicle, "fuel") -- puxa a elementDate do veiculo.

caso não consiga, envie a client da gasolina e a client do velocimetro.

Edited by juaosilv
Link to comment
4 minutes ago, juaosilv said:

Você deve ver qual elementDate o script está usando e depois fazer um getElementData no velocimetro puxando o element da gasolina.

Provavelmente deve ser "fuel", caso seja basta por no velocímetro:


getElementData(source, "fuel")

caso não consiga, envie a client da gasolina e a client do velocimetro.

Então basta por na script do velocímetro em qualquer lado isso? É que não aparece no ecrã um medidor de combustível 

 

 

4 minutes ago, juaosilv said:

 

 

 

Edited by Barradas
Link to comment
5 minutes ago, Barradas said:

Então basta por na script do velocímetro em qualquer lado isso?

 

 

Não, você deve por no local aonde deseja que apareça a quantidade de gasolina do veiculo.

Manda o código do script de gasolina e do velocimetro que irei adicionar pra vc.

Edited by juaosilv
Link to comment
Link to comment
local Veiculos = { 581, 462, 521, 463, 522, 461, 448, 468, 586, 602, 496, 401, 518, 527, 589, 419, 587, 533, 526, 474, 545, 517, 410, 600, 436, 439, 549, 491, 445, 604, 507, 585, 466, 492, 546, 551, 516, 467, 426, 547, 405, 580, 409, 550, 566, 540, 421, 529, 485, 431, 438, 437, 574, 420, 525, 408, 552, 416, 433, 427, 490, 528, 407, 544, 523, 470, 596, 598, 599, 597, 428, 499, 609, 498, 524, 532, 578, 486, 406, 573, 455, 588, 423, 414, 443, 531, 456, 459, 422, 482, 605, 530, 418, 572, 582, 413, 440, 543, 483, 478, 554, 579, 400, 404, 489, 505, 479, 442, 458, 536, 575, 534, 567, 535, 576, 412, 402, 542, 603, 475, 429, 541, 415, 480, 562, 565, 434, 494, 502, 503, 411, 559, 561, 560, 506, 451, 558, 555, 477, 568, 424, 504, 457, 483, 508, 571, 500, 444, 556, 557, 471, 495, 539 }

MarkersTable = {}
BomberTable = {}
Mangueira = {}
TampaCombustivel = {}
TableMangueira_Veh = {}
Tempo = {}
Areas = {}

function getVehicleByID(id)
    v = false
    for i, vehicle in ipairs (getElementsByType("vehicle")) do
        if getElementData(vehicle, "ID_Mangueira") == id then
            v = vehicle
            break
        end
    end
    return v
end


--[[
         ><><><><><><><><><><><><><><><><
         ><       Anti_Bugs Area       ><
         ><><><><><><><><><><><><><><><><
--]]   
function HitPlayerArea (source)
    for i, areacol in ipairs (Areas) do
        local ID_Area = getElementData(areacol, "ID_Area") or 0
        if getElementData(areacol, "Area_Protetora") == true then
            if isElementWithinColShape(source, areacol) then
                setElementData(source, "ID_Area", ID_Area)
            end
        end
    end
end

function Block_Area (source)
    for i, areacol in ipairs (Areas) do
        local ID_Area = getElementData(areacol, "ID_Area") or 0
        if getElementData(areacol, "Area_Protetora") == true then
            if getElementData(source, "ID_Area") == ID_Area then
                local Kick1 = getElementData(areacol, "Pos_Kick(1)") or 0 -- Pos Kick X
                local Kick2 = getElementData(areacol, "Pos_Kick(2)") or 0 -- Pos Kick Y
                local Kick3 = getElementData(areacol, "Pos_Kick(3)") or 0 -- Pos Kick Z
                if getElementData(source, "Mangueira_Mão") == true then        
                    outputChatBox ( "#00ff00✘ #ffffffINFO #00ff00✘➺ #ffffffVocê não pode sair do posto Com mangueira em mãos.", source, 255,255,255, true)
                    setElementPosition(source, Kick1, Kick2, Kick3)
                else
                    setElementData(source, "ID_Area", false)
                end
            end
        end
    end
end

--[[
         ><><><><><><><><><><><><><><><><><><
         ><       Veiculo Hit Marker       ><
         ><><><><><><><><><><><><><><><><><><
--]]
function Vehicle_HitM (theVehicle)
    if getElementType(theVehicle) == "vehicle" then -- O Elemento a Colidir é um veiculo
        for i, Marker in ipairs (MarkersTable) do -- Loop Dos Markes De Gasolina
            if getElementData(Marker, "Posto:Gasolina") == true then -- Verifica se o Marker é um Posto
                if isElementWithinMarker(theVehicle, Marker) then -- Verifica se o Veiculo está dentro do Marker    
                    if getElementData(Marker, "Bomba") == false then -- verifica se não tem veiculo na bomba
                        for _, players in ipairs( getElementsByType 'player' ) do -- Verifica Todos jogadores Online
                            local Vehicle = getPedOccupiedVehicle ( players ) -- Verifica o Veiculo que os Jogadores estão Ocupando
                            if ( Vehicle ) then -- Verificação
                                for _, veh in ipairs ( Veiculos ) do    
                                local ID_Veh = getElementModel ( Vehicle )
                                    if ID_Veh == veh then
                                        if getPedOccupiedVehicleSeat ( players ) == 0 then -- Verifica se o Jogador é Motorista
                                            bindKey (players, "k", "down", Perm_Abastercer ) -- Da a permissão pro jogador Seguir em frente com o abastecimento
                                            outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte a Letra #00ff00'K' #ffffffPara Que Possa Abastecer Seu Veiculo.", players, 255, 255, 255, true )
                                        end -- Fim
                                    end -- Fim
                                end -- Fim
                            end -- Fim
                        end -- Fim
                    end -- Fim
                end -- Fim
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><
         ><       Veiculo Leave Marker       ><
         ><><><><><><><><><><><><><><><><><><><
--]]
function Vehicle_LeaveM (theVehicle)
    if getElementType(theVehicle) == "vehicle" then -- O Elemento a Colidir deve ser Veiculo
        for _, Bombas in ipairs( getElementsByType 'marker' ) do -- Verifica todos os marker do jogo
            if getElementData(Bombas, "Posto:Gasolina") == true then -- Verifica se o marker e um posto de gasolina
                if getElementData(theVehicle, "Decidir") == "Abastecer?" then -- Verifica se o veiculo está em modo decisão
                    for _, players in ipairs( getElementsByType 'player' ) do -- Todos jogadores online
                        local Vehicle = getPedOccupiedVehicle ( players ) -- Verifica veiculo de todos os jogadores
                        if ( Vehicle ) then -- Verificação
                            if getElementData(Vehicle, "Decidir") == "Abastecer?" then -- Verifica se o Carro do Jogador está em modo decidir
                                if getPedOccupiedVehicleSeat ( players ) == 0 then -- Verifica se é o motorista
                                    unbindKey (players, "k", "down", Perm_Abastercer ) -- Remove a bind de abastecer
                                    unbindKey (players, "k", "down", Sair_Veh ) -- Remove bind sair
                                end    -- Fim
                            end    -- Fim
                        end    -- Fim
                    end    -- Fim
                end    -- Fim
            end    -- Fim
        end -- Fim
    end -- Fim
end -- Fim

for ia, va in ipairs (Areas_Protetoras) do
    Areas[ia] = createColRectangle (va[1], va[2], va[3], va[4])
    setElementData(Areas[ia], "Area_Protetora", true)
    setElementData(Areas[ia], "Pos_Kick(1)", va[5])
    setElementData(Areas[ia], "Pos_Kick(2)", va[6])
    setElementData(Areas[ia], "Pos_Kick(3)", va[7])
    setElementData(Areas[ia], "ID_Area", ia)
    addEventHandler("onColShapeHit", Areas[ia], HitPlayerArea)
    addEventHandler ( "onColShapeLeave", Areas[ia], Block_Area )
end

for i, v in ipairs (Bombas_Combustivel) do
    MarkersTable = createMarker ( v[1], v[2], v[3] -1, "cylinder", 1.7, 0, 255, 0, 0 )
    setElementData(MarkersTable, "Posto:Gasolina", true)
    setElementData(MarkersTable, "Pos_Bomber(1)", v[4])
    setElementData(MarkersTable, "Pos_Bomber(2)", v[5])
    setElementData(MarkersTable, "Pos_Bomber(3)", v[6])
    setElementData(MarkersTable, "Pos_Car(1)", v[7])
    setElementData(MarkersTable, "Pos_Car(2)", v[8])
    setElementData(MarkersTable, "Pos_Car(3)", v[9])
    setElementData(MarkersTable, "Rot_Car", v[10])
    setElementData(MarkersTable, "Pos_Mangueira(1)", v[11])
    setElementData(MarkersTable, "Pos_Mangueira(2)", v[12])
    setElementData(MarkersTable, "Pos_Mangueira(3)", v[13])
    setElementData(MarkersTable, "Pos_Tampa(1)", v[14])
    setElementData(MarkersTable, "Pos_Tampa(2)", v[15])
    setElementData(MarkersTable, "Pos_Tampa(3)", v[16])
    setElementData(MarkersTable, "ID_Bomba", i)
    addEventHandler("onMarkerHit", MarkersTable, Vehicle_HitM)
    addEventHandler("onMarkerLeave", MarkersTable, Vehicle_LeaveM)
end

--[[
         ><><><><><><><><><><><><><><><><><><>
         ><       Permissão Abastecer       ><
         ><><><><><><><><><><><><><><><><><><>
--]]                   
function Perm_Abastercer (source)
    for i, Marker in ipairs (MarkersTable) do -- Verifica Todos os Markers Criados
        local Bomber1 = getElementData(Marker, "Pos_Bomber(1)") or 0 -- Pos Bomba X
        local Bomber2 = getElementData(Marker, "Pos_Bomber(2)") or 0 -- Pos Bomba Y
        local Bomber3 = getElementData(Marker, "Pos_Bomber(3)") or 0 -- Pos Bomba Z
        local Pos_Car1 = getElementData(Marker, "Pos_Car(1)") or 0 -- Pos Car X
        local Pos_Car2 = getElementData(Marker, "Pos_Car(2)") or 0 -- Pos Car Y
        local Pos_Car3 = getElementData(Marker, "Pos_Car(3)") or 0 -- Pos Car Z
        local Rot_Car = getElementData(Marker, "Rot_Car") or 0  -- Root Car
        local Mangueira1 = getElementData(Marker, "Pos_Mangueira(1)") or 0 -- Pos Mangueira X
        local Mangueira2 = getElementData(Marker, "Pos_Mangueira(2)") or 0 -- Pos Mangueira Y
        local Mangueira3 = getElementData(Marker, "Pos_Mangueira(3)") or 0 -- Pos Mangueira Z
        local Pos_Tampa1 = getElementData(Marker, "Pos_Tampa(1)") or 0 -- Pos Mangueira Z
        local Pos_Tampa2 = getElementData(Marker, "Pos_Tampa(2)") or 0 -- Pos Mangueira Z
        local Pos_Tampa3 = getElementData(Marker, "Pos_Tampa(3)") or 0 -- Pos Mangueira Z
        local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica Veiculo do Jogador
        if ( Vehicle ) then    -- Verificação
            for _, veh in ipairs ( Veiculos ) do    
            local ID_Veh = getElementModel ( Vehicle )
                if ID_Veh == veh then
                    if isElementWithinMarker(Vehicle, Marker) then -- Verifica se o Veiculo Está dentro do Marker
                        if BomberTable[Vehicle] and isElement( BomberTable[Vehicle] ) then destroyElement ( BomberTable[Vehicle] ) BomberTable[Vehicle] = nil end -- Destroi bombar veiculo
                        if TampaCombustivel[Vehicle] and isElement( TampaCombustivel[Vehicle] ) then destroyElement ( TampaCombustivel[Vehicle] ) TampaCombustivel[Vehicle] = nil end -- Destroi tampa veiculo            
                        BomberTable[Vehicle] = createMarker ( Bomber1, Bomber2, Bomber3 -1, "cylinder", 1.1, 0, 255, 0, 0 ) -- Cria Bomba pra Abastecer
                        addEventHandler("onMarkerHit", BomberTable[Vehicle], Confirmar_Abastecimento) -- Adiciona Evento nos Marker de Abastecimento
                        setElementData(Marker, "Bomba", "Ocupada") -- Seta a Bomba do Posto "Ocupada"
                        setElementData(BomberTable[Vehicle], "Bomba:Gasolina", true) -- Dar valor A Bomba de abastecimento
                        setElementData(BomberTable[Vehicle], "Pos_Mangueira(1)", Mangueira1) -- Seta Posição Line (X)
                        setElementData(BomberTable[Vehicle], "Pos_Mangueira(2)", Mangueira2) -- Seta Posição Line (Y)
                        setElementData(BomberTable[Vehicle], "Pos_Mangueira(3)", Mangueira3) -- Seta Posição Line (Z)
                        setElementFrozen(Vehicle, true) -- Trava o Veiculo
                        setElementPosition(Vehicle,    Pos_Car1, Pos_Car2, Pos_Car3 -0.2) -- Seta Posição~ do Veiculo
                        setElementRotation(Vehicle, 0, 0, Rot_Car) -- Setar Rotação do Veiculo
                        setElementData(Vehicle, "Aguardando_Gasolina", true) -- Seta Veiculo Aguardando Abastecimento
                        unbindKey (source, "k", "down", Perm_Abastercer ) -- Remove a bind de abastecer
                        bindKey (source, "k", "down", Sair_Veh ) -- Adiciona bind sair
                        TampaCombustivel[Vehicle] = createMarker ( Pos_Tampa1, Pos_Tampa2, Pos_Tampa3, "corona", 1.3, 0, 255, 0, 0 ) -- Cria Bomba pra Abastecer
                        setElementData(TampaCombustivel[Vehicle], "Tanque_Fuel", true) -- Seta Tanque_Fuel no Veiculo
                        addEventHandler("onMarkerHit", TampaCombustivel[Vehicle], Mensagem_Veh) -- Adiciona Evento nos Marker de Abastecimento
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSaia do Veiculo e Vá Até a Bomba de Combustivel.", source, 255, 255, 255, true )
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que saia com seu veiculo.", source, 255, 255, 255, true )
                    end
                end
            end
        end
    end
end

function Sair_Veh (source)
    for i, v in ipairs (MarkersTable) do -- Faz um loop com todos os marker na tabela MarkersTable
        local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica o veiculo que o jogador está conduzindo
        if ( Vehicle ) then -- Verificação
            if isElementWithinMarker(Vehicle, v) then -- Verifica se o veiculo está em algum posto
                if (BomberTable[Vehicle]) and isElement(BomberTable[Vehicle]) then destroyElement(BomberTable[Vehicle]) end -- Destroi bomba
                if TampaCombustivel[Vehicle] and isElement( TampaCombustivel[Vehicle] ) then destroyElement ( TampaCombustivel[Vehicle] ) TampaCombustivel[Vehicle] = nil end -- Destroi tampa de adicionar gasolina
                setElementFrozen(Vehicle, false) -- Destrava o veiculo
                setElementData(v, "Bomba", false) -- Adiciona a Bomba como desocupada      
                unbindKey (source, "k", "down", Sair_Veh ) -- Remove bind
                setElementData(Vehicle, "Aguardando_Gasolina", false) -- Remove o carro como aguardando gasolina
                setElementData(Vehicle, "Mangueira_Veiculo", false) -- Remove a Mangueira do Veiculo
                setElementData(Vehicle, "Abastecendo", false) -- Adiciona o veiculo como abastecendo
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

function Enter_Vehicle (source)
    local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica o veiculo que o jogador está conduzindo
    if ( Vehicle ) then    -- Verificação
        if getElementData(Vehicle, "Aguardando_Gasolina") == true then -- Veiculo precisa está aguardando gasolina
            if getElementData(Vehicle, "Mangueira_Veiculo") == false then -- O veiculo não pode está com mangueira acionada nele
                bindKey (source, "k", "down", Sair_Veh ) -- adiciona bindkey pra sair com veiiculo
                outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que saia com seu veiculo.", source, 255, 255, 255, true )
            else -- Ou se o veiculo estiver com mangueira envia a mensagem abaixo
                outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffPara sair com o veiculo remova a mangueira dele.", source, 255, 255, 255, true )
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim
addEventHandler ( "onVehicleEnter", getRootElement(), Enter_Vehicle )

function Exit_Vehicle (source)
    local Veiculo = getPedOccupiedVehicle(source) -- Verifica o veiculo que o jogador está conduzindo
    if getElementData(Veiculo, "Aguardando_Gasolina") == true then -- O Veiculo precisa está aguardando a gasolina
        unbindKey (source, "k", "down", Perm_Abastercer ) -- Remove uso da função Abastecer veiculo
        unbindKey (source, "k", "down", Sair_Veh ) -- Remove uso da função sair com veiculo
    end -- Fim
end -- Fim
addEventHandler ( "onVehicleStartExit", getRootElement(), Exit_Vehicle )

--[[
         ><><><><><><><><><><><><><><><><><><
         ><       Mangueira Veiculo        ><
         ><><><><><><><><><><><><><><><><><><
--]]
function Confirmar_Abastecimento (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do servidor
    for _, veiculos in ipairs( vehicles ) do -- Loop de todos os veiculos
        if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Os veiculos precisa estar aguardando gasolina
            if isElementWithinMarker(source, BomberTable[veiculos]) then -- O Jogador precisa está na bomba de gasolina.
                if getElementData(source, "Mangueira_Mão") == false then -- O Jogador Precisa está sem mangueira
                    if getElementData(BomberTable[veiculos], "Mangueira_Acionada") == false then  -- A bomba deve esta desocupada
                        bindKey (source, "k", "down", Abastecer_Veh ) -- Adiciona BindKey pra abastecer
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que Pegue a Mangueira", source, 255, 255, 255, true )            
                    end -- Fim
                end -- Fim
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><
         ><       Começar Abastecimento      ><
         ><><><><><><><><><><><><><><><><><><><
--]]
function Abastecer_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
    for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
        if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Os veiculos precisa está aguardando gasolina        
            if isElementWithinMarker(source, BomberTable[veiculos]) then -- o Jogador precisa está dentro da bomba de gasolina
                if getElementData(source, "Mangueira_Mão") == false then -- Jogador não pode está com mangueira na mão
                    if getElementData(BomberTable[veiculos], "Mangueira_Acionada") == false then -- A bomba deve estar desocupada
                        local Mangueira1 = getElementData(BomberTable[veiculos], "Pos_Mangueira(1)") or 0 -- Pos Mangueira X
                        local Mangueira2 = getElementData(BomberTable[veiculos], "Pos_Mangueira(2)") or 0 -- Pos Mangueira Y
                        local Mangueira3 = getElementData(BomberTable[veiculos], "Pos_Mangueira(3)") or 0 -- Pos Mangueira Z
                        local px, py, pz = getElementPosition(source) -- Verifica posição do jogador
                        Mangueira[source] = createObject (14463, px, py, pz) -- Cria uma mangueira
                        exports.bone_attach:attachElementToBone (Mangueira[source], source, 12, 0, 0, 0.06, -180, 0, 0) -- Gruda a mangueira na mão do jogador
                        setElementData(source, "Mangueira_Mão", true) -- Aciona mangueira na mão dele.
                        setElementData(source, "Pos_Mangueira(1)", Mangueira1) -- Posição X pra criar a line3d
                        setElementData(source, "Pos_Mangueira(2)", Mangueira2) -- Posição Y pra criar a line3d
                        setElementData(source, "Pos_Mangueira(3)", Mangueira3) -- Posição Z pra criar a line3d
                        unbindKey (source, "k", "down", Abastecer_Veh ) -- Remove Bind De abastecer
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAdicione a Mangueira no Veiculo.", source, 255, 255, 255, true )    
                    else -- Caso a bomba de gasolina estiver sendo usada, Então envia a seguinte mensagem
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffA Bomba já está sendo usada no veiculo", source, 255, 255, 255, true )    
                    end -- Fim
                else -- Caso o jogador já estiver com uma mangueira envia a seguinte mensagem
                    outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê já tem mangueira em suas mãos", source, 255, 255, 255, true )    
                end -- Fim
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><><><
         ><       Acionar mangueira no Veiculo       ><
         ><><><><><><><><><><><><><><><><><><><><><><><
--]]
function Mensagem_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
    for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
        if getElementData(veiculos, "Aguardando_Gasolina") == true then -- o Veiculo precisa está aguardando pra abastecer
            if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Jogador precisa está na tampa de combustivel
                if getElementData(veiculos, "Mangueira_Veiculo") == false then -- o Veiculo não pode está com mangueira      
                    if getElementData(source, "Mangueira_Mão") == true then -- Jogador precisa está com mangueira na mão        
                        bindKey (source, "k", "down", Mangueira_Veh ) -- Adiciona Bindkey pra por mangueira no veiculo.
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara colocar a Mangueira no Veiculo", source, 255, 255, 255, true )
                    end -- Fim
                else -- Se caso o veiculo já estiver com mangueira então Aciona as linhas abaixo    
                    if getElementData(source, "Mangueira_Mão") == false then -- Jogador precisa está com mangueira na mão        
                        bindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Aciona bindKey Da funçao pra remover mangueira
                        outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara remover a Mangueira do Veiculo", source, 255, 255, 255, true )
                    end -- Fim
                end -- Fim
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

function Mangueira_Veh (source)
    local Mangueira1 = getElementData(source, "Pos_Mangueira(1)") or 0 -- Pos Mangueira (Jogador) X
    local Mangueira2 = getElementData(source, "Pos_Mangueira(2)") or 0 -- Pos Mangueira (Jogador) Y
    local Mangueira3 = getElementData(source, "Pos_Mangueira(3)") or 0 -- Pos Mangueira (Jogador) Z
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
    for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
        for i, Marker in ipairs (MarkersTable) do -- Verifica Todos os Markers Criados
            if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Veiculo precisa está aguardando gasolina
                if getElementData(veiculos, "Mangueira_Veiculo") == false then -- Veiculo não pode está com Mangueira.        
                    if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Jogador precisa está na tampa de combustivel do veiculo
                        if isElementWithinMarker(veiculos, Marker) then -- Jogador precisa está na tampa de combustivel do veiculo
                            if getElementData(source, "Mangueira_Mão") == true then -- Jogador precisa está com mangueira em mãos
                                if Mangueira[source] and isElement( Mangueira[source] ) then destroyElement ( Mangueira[source] ) Mangueira[source] = nil end -- Destroi mangueira do jogador
                                local px, py, pz = getElementPosition(veiculos) -- Verifica posição do veiculo
                                local Combustivel = tonumber(getElementData(veiculos, "DNL:Combustivel")) or 0 -- Verifica a quantia de Combustivel do veiculo
                                TableMangueira_Veh[veiculos] = createObject (14463, px, py, pz) -- Cria mangueira
                                attachElements (TableMangueira_Veh[veiculos], veiculos, 1.2, -2, 0 +0.2) -- Gruda Mangueira Veh
                                setElementData(TableMangueira_Veh[veiculos], "ID_Mangueira", i) -- seta um ID Nas mangueira
                                local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[veiculos], "ID_Mangueira")) or 0 -- Verifica o ID Da mangueira do veiculo
                                local mx, my, mz = getElementPosition(TableMangueira_Veh[veiculos]) -- Verifica posição DA Mangueira do veiculo
                                setElementData(source, "Mangueira_Mão", false) -- Remove mangueira do jogador
                                setElementData(TableMangueira_Veh[veiculos], "Mangueira:Gasolina", true) -- Aciona a mangueira do veiculo como ocupada
                                setElementData(veiculos, "ID_Mangueira", ID_Mangueira) -- Adiciona o ID Da mangueira no ID Do veiculo
                                setElementData(veiculos, "Pos_Mangueira(1)", mx) -- Pos Mangueira (Veiculo) X
                                setElementData(veiculos, "Pos_Mangueira(2)", my) -- Pos Mangueira (Veiculo) Y
                                setElementData(veiculos, "Pos_Mangueira(3)", mz) -- Pos Mangueira (Veiculo) Z                    
                                setElementData(veiculos, "Pos_MangueiraPlayer(1)", Mangueira1) -- Pos Mangueira (Jogador) X
                                setElementData(veiculos, "Pos_MangueiraPlayer(2)", Mangueira2) -- Pos Mangueira (Jogador) Y
                                setElementData(veiculos, "Pos_MangueiraPlayer(3)", Mangueira3) -- Pos Mangueira (Jogador) Z        
                                setElementData(veiculos, "Mangueira_Veiculo", true) -- Aciona veiculo com a mangueira
                                setElementData(BomberTable[veiculos], "Mangueira_Acionada", true) -- Aciona a bomba como ocupada
                                outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSeu veiculo está na Bomba #00ff00"..ID_Mangueira.." #ffffffFique Ciente disso quando for abastecer.", source, 255, 255, 255, true )    
                                unbindKey (source, "k", "down", Mangueira_Veh ) -- Remove bind
                                if Combustivel >= 90 then -- Verifica se o combustivel do veiculo é Maior ou igual a 90.
                                    setElementData(TableMangueira_Veh[veiculos], "Combustivel_Cheio", true) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
                                    setElementData(veiculos, "Combustivel_Cheio", true) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
                                    outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse Veiculo não precisa ser abastecido, Por favor retire a mangueira.", source, 255, 255, 255, true )    
                                else -- se for menor que 90 então...
                                    setElementData(TableMangueira_Veh[veiculos], "Combustivel_Cheio", false) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
                                    setElementData(veiculos, "Combustivel_Cheio", false) -- Então aciona o combustivel como vazio
                                end -- Fim
                            end -- Fim
                        end -- Fim
                    end -- Fim
                end -- Fim
            end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><
         ><       Remover mangueira veiculo      ><
         ><><><><><><><><><><><><><><><><><><><><><
--]]
function Remover_Mangueira_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
    for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
        if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Veiculo deve esta aguardando pra abastecer
            if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Verifica se o jogado está na tampa de combustivel    
                if getElementData(veiculos, "Mangueira_Veiculo") == true then -- Mangueira deve está no veiculo
                    if getElementData(source, "Mangueira_Mão") == false then -- Jogador não pode ta com mangueira em mãos    
                        if getElementData(veiculos, "Abastecendo") == false then -- O Veiculo não pode está sendo abastecido            
                                if TableMangueira_Veh[veiculos] and isElement( TableMangueira_Veh[veiculos] ) then destroyElement ( TableMangueira_Veh[veiculos] ) TableMangueira_Veh[veiculos] = nil end -- Destroi mangueira do veiculo
                                setElementData(veiculos, "Pos_Mangueira(1)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Pos_Mangueira(2)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Pos_Mangueira(3)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Pos_MangueiraPlayer(1)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Pos_MangueiraPlayer(2)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Pos_MangueiraPlayer(3)", 0) -- Seta posição da mangueira 0
                                setElementData(veiculos, "Mangueira_Veiculo", false) -- Aciona o veiculo como sem mangueira
                                setElementData(BomberTable[veiculos], "Mangueira_Acionada", false) -- Aciona A Mangueira como vazia
                                unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
                            else -- se o veiculo estiver sendo abastecido envia a seguinte mensagem
                                unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
                                outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffO Veiculo está sendo abastecido, Aguarde terminar.", source, 255,255,255,true)
                            end -- Fim
                        else -- se o jogador estiver com mangueira envia a seguinte mensagem
                            unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
                            outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffVocê está com mangueira nas mãos!", source, 255,255,255,true)
                        end -- Fim
                    end -- Fim
                end -- Fim
        end -- Fim
    end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><
         ><       Veiculo sendo abastecido       ><
         ><><><><><><><><><><><><><><><><><><><><><
--]]
function Abastecendo_Veiculo (source, Nome_Veh, Id_Veh, getQuantia)
    for _, vehicle in ipairs( getElementsByType ( "vehicle" ) ) do  -- Verifica todos os veiculos do servidor
        local VehicleID = tonumber(Id_Veh) -- Pega o ID do veiculo
        if(VehicleID) then -- Verifica se o id Do veiculo é valido
            local Vehicle2 = getVehicleByID(VehicleID) -- Verifica o id do veiculo
            if(Vehicle2) then -- Verificação
                for i, Marker in ipairs (MarkersTable) do -- Verifica todos os postos do servidor    
                    if getElementData(vehicle, "Aguardando_Gasolina") == true then -- Verifica se o carro está aguardando pra ser abastecido        
                        if isElementWithinMarker(vehicle, Marker) then -- Verifica se o Veiculo Está dentro do Marker
                        local ID_Mangueira = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0 -- Verifica ID Da mangueira do veiculo
                        local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
                            if tonumber(Id_Veh) == ID_Mangueira then -- Id do veiculo deve ter o mesmo Id da mangueira       
                                if getElementData(vehicle, "Mangueira_Veiculo") == true then -- Verifica se o veiculo está com mangueira
                                    if getElementData(source, "Mangueira_Mão") == false then -- O Jogador não pode esta com mangueira em suas mãos
                                        if getElementData(vehicle, "DNL:Combustivel") < 90 then -- Gasolina do veiculo deve ser menor que 90
                                            if getElementData(vehicle, "Abastecendo") == false then -- Verifica se o veiculo já está sendo abastecido
                                                if getElementData(source, "Abastecendo") == false then -- Verifica se o veiculo já está sendo abastecido            
                                                    if getPlayerMoney ( source ) >= 5 then -- Verifica se o jogador tem dinheiro
                                                        setElementData(vehicle, "Abastecendo", true) -- Adiciona o veiculo como abastecendo
                                                        setElementData(source, "Abastecendo", true) -- Adiciona o jogador como abastecendo
                                                        setElementData(vehicle, "DNL:Litros", getQuantia) -- Adiciona os litros que o jogador pois
                                                        outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffVeiculo da Bomba #00ff00"..ID_Mangueira.." #ffffffestá sendo abastecido!", source, 255,255,255,true)
                                                        Tempo[source] = setTimer ( function() -- Timer pra tudo abaixo acontecer
                                                            setElementData(vehicle, "DNL:Combustivel", getElementData(vehicle, "DNL:Combustivel") +1) -- Adiciona 1 litro de gasolina a cada segundo
                                                            setElementData(vehicle, "DNL:Litros", getElementData(vehicle, "DNL:Litros") -1) -- Remove um litro de gasolina que o jogador quis adicionar
                                                            takePlayerMoney(source, 5) -- Remover $5 do jogador
                                                            playSoundFrontEnd(source, 12 ) -- Som pra alertar o Jogador                                            
                                                            if getElementData(vehicle, "DNL:Combustivel") >= 100 then -- Verifica se o veiculo já tem 100 Litros
                                                                if isTimer(Tempo[source]) then killTimer(Tempo[source]) end -- Para o tempo
                                                                setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
                                                                setElementData(vehicle, "DNL:Combustivel", 100) -- Seta gasolina como 100 (Evitar Bugs)
                                                                setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
                                                                setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
                                                                setElementData(vehicle, "Combustivel_Cheio", true) -- Seta o veiculo como Tanque cheio
                                                                setElementData(TableMangueira_Veh[vehicle], "Combustivel_Cheio", true) -- Seta o veiculo como Tanque cheio
                                                                playSoundFrontEnd(source, 2 ) -- Som pra alertar o Jogador                    
                                                                outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffO veiculo da bomba #00ff00"..ID_Mangueira.." #ffffffFoi abastecido completamente.", source, 255,255,255,true)                                            
                                                            elseif getPlayerMoney ( source ) < 5 then
                                                                if isTimer(Tempo[source]) then killTimer(Tempo[source]) end -- Para o tempo
                                                                setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
                                                                setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
                                                                setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
                                                                playSoundFrontEnd(source, 8) -- Som pra alertar o Jogador                        
                                                                outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffSeu dinheiro acabou e seu veiculo parou de ser abastecido.", source, 255,255,255,true)
                                                                
                                                            elseif getElementData(vehicle, "DNL:Litros") <= 0 then
                                                                if isTimer(Tempo[source]) then killTimer(Tempo[source]) end  -- Para o tempo
                                                                setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
                                                                setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
                                                                setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
                                                                playSoundFrontEnd(source, 10 ) -- Som pra alertar o Jogador                        
                                                                outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffA Quantia de litro desejada já foi adicionada no veiculo.", source, 255,255,255,true)
                                                            end    -- Fim                                                                                    
                                                        end, 1000, 0 ) -- Tempo Timer "1000" Modo timer "0"                                                
                                                    else
                                                        outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSeu dinheiro acabou e não foi possivel terminar de abastecer.", source, 255, 255, 255, true)
                                                    end    -- Fim    
                                                else
                                                    outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê já está abastecendo um veiculo, Aguarde terminar", source, 255, 255, 255, true)
                                                end    -- Fim                                                
                                            else
                                                outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse veiculo já está sendo abastecido", source, 255, 255, 255, true)    
                                            end    -- Fim    
                                        else
                                            outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse veiculo não precisa ser abastecido", source, 255, 255, 255, true)
                                        end    -- Fim    
                                    else
                                        outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê está com mangueira em mãos, Remova.", source, 255, 255, 255, true)
                                    end    -- Fim    
                                end    -- Fim    
                            end    -- Fim    
                        end    -- Fim    
                    end    -- Fim    
                end    -- Fim    
            end    -- Fim    
        end    -- Fim    
    end    -- Fim    
end    -- Fim    
addEvent("DNL:Abastecer_Veiculo", true)
addEventHandler("DNL:Abastecer_Veiculo", root, Abastecendo_Veiculo)

--[[
         ><><><><><><><><><><><><
         ><       Ignora       ><
         ><><><><><><><><><><><><
--]]
function Contador_Combustivel ()
    for _, players in ipairs( getElementsByType 'player' ) do -- Verifica Todos jogadores Online
        local Motorista = getPedOccupiedVehicleSeat ( players )
        if Motorista == 0 then
            for _, veh in ipairs ( Veiculos ) do            
                local Veiculo = getPedOccupiedVehicle ( players )
                local ID_Veh = getElementModel ( Veiculo )
                if ID_Veh == veh then
                local Combustivel = getElementData ( Veiculo, "DNL:Combustivel" ) or 0
                    if getVehicleEngineState ( Veiculo ) and Combustivel > 0 then
                        VelocidadeX, VelocidadeY, VelocidadeZ = getElementVelocity ( Veiculo )
                        VelocidadeAtual = ( VelocidadeX ^ 2 + VelocidadeY ^ 2 + VelocidadeZ ^ 2 ) ^ ( 0.5 )
                        KMH = math.floor ( VelocidadeAtual * 180 )
                        if KMH == 0 then
                            Combustivel_Seg = 0
                        elseif KMH > 0 then
                            Combustivel_Seg = 0.1
                        end
                            Combustivel = Combustivel - Combustivel_Seg                
                    end
                    if Combustivel <= 0.50 then
                        Combustivel = 0
                        setVehicleEngineState ( Veiculo, false )
                    end
                    setElementData ( Veiculo, "DNL:Combustivel", Combustivel )
                end
            end
        end
    end
end
setTimer ( Contador_Combustivel, 3000, 0 )

addEventHandler("onResourceStart", resourceRoot,
  function ()
    for _, vehicle in ipairs( getElementsByType ( "vehicle" ) ) do  
        for _, veh in ipairs ( Veiculos ) do    
            local ID_Veh = getElementModel ( vehicle )
            if ID_Veh == veh then
                local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
                setElementData(vehicle, "DNL:Combustivel", Combustivel)
                setElementData(vehicle, "Aguardando_Gasolina", false)
                setElementData(vehicle, "Mangueira_Veiculo", false)
                if Combustivel == 0 or Combustivel == false then
                    setElementData(vehicle, "DNL:Combustivel", 20)
                end
            end
        end
    end
end)

function Refresh_Lista_Posto1 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 1 or ID_Mangueira_ == 2 or ID_Mangueira_ == 3 or ID_Mangueira_ == 4 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto1_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto1(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto1(Veiculos)", root, Refresh_Lista_Posto1)

function Refresh_Lista_Posto2 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 5 or ID_Mangueira_ == 6 or ID_Mangueira_ == 7 or ID_Mangueira_ == 8 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto2_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto2(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto2(Veiculos)", root, Refresh_Lista_Posto2)

function Refresh_Lista_Posto3 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 9 or ID_Mangueira_ == 10 or ID_Mangueira_ == 11 or ID_Mangueira_ == 12 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto3_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto3(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto3(Veiculos)", root, Refresh_Lista_Posto3)

function Refresh_Lista_Posto4 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 13 or ID_Mangueira_ == 14 or ID_Mangueira_ == 15 or ID_Mangueira_ == 16 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto4_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto4(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto4(Veiculos)", root, Refresh_Lista_Posto4)

function Refresh_Lista_Posto5 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 17 or ID_Mangueira_ == 18 or ID_Mangueira_ == 19 or ID_Mangueira_ == 20 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto5_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto5(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto5(Veiculos)", root, Refresh_Lista_Posto5)

function Refresh_Lista_Posto6 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 21 or ID_Mangueira_ == 22 or ID_Mangueira_ == 23 or ID_Mangueira_ == 24 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto6_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto6(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto6(Veiculos)", root, Refresh_Lista_Posto6)

function Refresh_Lista_Posto7 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 25 or ID_Mangueira_ == 26 or ID_Mangueira_ == 27 or ID_Mangueira_ == 28 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto7_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto7(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto7(Veiculos)", root, Refresh_Lista_Posto7)

function Refresh_Lista_Posto8 (source, text)
    if tostring(text) == "" or text == false or text == nil then
        for i, vehicle in ipairs(getElementsByType("vehicle")) do
            local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
            local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
            if getElementData(vehicle, "Mangueira_Veiculo") == true then
                if Combustivel < 90 then            
                    if getElementData(vehicle, "Abastecendo") == false then
                        if ID_Mangueira_ == 29 or ID_Mangueira_ == 30 or ID_Mangueira_ == 31 or ID_Mangueira_ == 32 then
                            local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
                            local vehicleName = getVehicleName (vehicle)
                            triggerClientEvent(root, "DNL:Refresh_Lista_Posto8_C(Veiculos)", root, vehicleName, ID_Mangueira)
                        end
                    end
                end
            end
        end    
    end        
end
addEvent("DNL:Refresh_Lista_Posto8(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto8(Veiculos)", root, Refresh_Lista_Posto8)

function Quit_Server ( quitType )
    if getElementData(source, "Mangueira_Mão") == true then                            
        if Mangueira[source] and isElement( Mangueira[source] ) then
            destroyElement ( Mangueira[source] )
            Mangueira[source] = nil
        end
    end
end
addEventHandler ( "onPlayerQuit", root, Quit_Server ) --isto é a parte server side da gasolina

 

 

local sx,sy = guiGetScreenSize()

function speed()
    local veh = getPedOccupiedVehicle(localPlayer)
    local fuel = math.floor(getElementData(veh,"fuel") or 11)
    local hpcar = math.floor(getElementHealth(veh) /10)
    local getspeed = math.floor(getElementSpeed(veh,"km/h"))
    if not veh then return end    
    dxDrawImage(sx-310,sy-193,307,177,"files/fon_speed.png")
    dxDrawImage(sx-235,sy-90,26,26,"files/light_r_off.png")
    dxDrawImage(sx-300,sy-90,26,26,"files/light_l_off.png")
    if(getElementData(veh,"rightflash")) then
        if (getTickCount() % 1400 >= 600) then
            dxDrawImage(sx-235,sy-90,26,26,"files/light_r_on.png")
        end
    end
    if(getElementData(veh,"leftflash")) then
        if (getTickCount() % 1400 >= 600) then
            dxDrawImage(sx-300,sy-90,26,26,"files/light_l_on.png")
        end
    end    
    if(getElementData(veh, "allflash")) then
        if(getTickCount() % 1400 >= 600) then
            dxDrawImage(sx-235,sy-90,26,26,"files/light_r_on.png")
            dxDrawImage(sx-300,sy-90,26,26,"files/light_l_on.png")
        end
    end    
    if(getVehicleEngineState(veh) == true) then    
        dxDrawImage(sx-125,sy-49,26,26,"files/engine_on.png")
    elseif(getVehicleEngineState(veh) == false) then
        dxDrawImage(sx-125,sy-49,26,26,"files/engine_off.png")
    end    
    if(getVehicleOverrideLights(veh) == 2) then    
        dxDrawImage(sx-180,sy-49,26,26,"files/lights_on.png")
    else
        dxDrawImage(sx-180,sy-49,26,26,"files/lights_off.png")
    end    
    if(isVehicleLocked(veh) == true) then    
        dxDrawImage(sx-70,sy-49,26,26,"files/door_close.png")
    elseif(isVehicleLocked(veh) == false) then
        dxDrawImage(sx-70,sy-49,26,26,"files/door_open.png")
    end        
    if(getspeed >= 100) then
        dxDrawText(string.format("%s",getspeed),sx-283,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")
    elseif(getspeed >= 10) then
        dxDrawText(string.format("%s",getspeed),sx-273,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")        
    elseif(getspeed <= 9) then
        dxDrawText(string.format("%s",getspeed),sx-265,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")    
    end
    if(fuel >= 100) then
        dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(225, 150, 48, 255))
        dxDrawText(string.format("%s",fuel),sx-75,sy-173,15,15,tocolor(255,255,255,255),1.8)    
    elseif(fuel <= 15) then
        dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(213, 38, 38, 255))
        dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)        
    elseif(fuel <= 25) then
        dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(218,207, 96, 255))
        dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)                
    elseif(fuel <= 9) then
        dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(213, 38, 38, 255))
        dxDrawText(string.format("%s",fuel),sx-50,sy-173,15,15,tocolor(255,255,255,255),1.8)        
    elseif(fuel >= 10) then
        dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(225, 150, 48, 255))
        dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)        
    end
    if(hpcar >= 100) then
        dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(210, 255, 0, 255))
        dxDrawText(string.format("%s",hpcar),sx-80,sy-114,15,15,tocolor(255,255,255,255),1.8)
    elseif(hpcar <= 50) then
        dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(213, 38, 38, 255))
        dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)    
    elseif(hpcar <= 65) then
        dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(218,207, 96, 255))
        dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)            
    elseif(hpcar <= 9) then
        dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(213, 38, 38, 255))
        dxDrawText(string.format("%s",hpcar),sx-60,sy-114,15,15,tocolor(255,255,255,255),1.8)
    elseif(hpcar >= 10) then
        dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(210, 255, 0, 255))
        dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)        
    end    
end
addEventHandler("onClientRender",root,speed)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

function getElementSpeed(theElement, unit)
    assert(isElement(theElement), "Bad argument 1 @ getElementSpeed (element expected, got " .. type(theElement) .. ")")
    local elementType = getElementType(theElement)
    assert(elementType == "player" or elementType == "ped" or elementType == "object" or elementType == "vehicle" or elementType == "projectile", "Invalid element type @ getElementSpeed (player/ped/object/vehicle/projectile expected, got " .. elementType .. ")")
    assert((unit == nil or type(unit) == "string" or type(unit) == "number") and (unit == nil or (tonumber(unit) and (tonumber(unit) == 0 or tonumber(unit) == 1 or tonumber(unit) == 2)) or unit == "m/s" or unit == "km/h" or unit == "mph"), "Bad argument 2 @ getElementSpeed (invalid speed unit)")
    unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit))
    local mult = (unit == 0 or unit == "m/s") and 50 or ((unit == 1 or unit == "km/h") and 180 or 111.84681456)
    return (Vector3(getElementVelocity(theElement)) * mult).length
end --- isto é do velocimetro

 

Link to comment
5 minutes ago, #DeltaSCR said:

Não cara, assim não, lá onde eu te falei - <>

Eu não tenho esse símbolo.

24 minutes ago, #DeltaSCR said:

@Barradas, poste o código diretamente aqui no fórum, fica bem mais fácil de te ajudarmos

Como que faço?

Link to comment
MarkersTable = {}
BomberTable = {}
Mangueira = {}
TampaCombustivel = {}
TableMangueira_Veh = {}
Tempo = {}
Areas = {}

function getVehicleByID(id)
	v = false
	for i, vehicle in ipairs (getElementsByType("vehicle")) do
		if getElementData(vehicle, "ID_Mangueira") == id then
			v = vehicle
			break
		end
	end
	return v
end


--[[
         ><><><><><><><><><><><><><><><><
         ><       Anti_Bugs Area       ><
         ><><><><><><><><><><><><><><><><
--]]   
function HitPlayerArea (source)
	for i, areacol in ipairs (Areas) do
		local ID_Area = getElementData(areacol, "ID_Area") or 0
		if getElementData(areacol, "Area_Protetora") == true then
			if isElementWithinColShape(source, areacol) then 
				setElementData(source, "ID_Area", ID_Area)
			end
		end
	end
end

function Block_Area (source)
	for i, areacol in ipairs (Areas) do
		local ID_Area = getElementData(areacol, "ID_Area") or 0
		if getElementData(areacol, "Area_Protetora") == true then
			if getElementData(source, "ID_Area") == ID_Area then
				local Kick1 = getElementData(areacol, "Pos_Kick(1)") or 0 -- Pos Kick X
				local Kick2 = getElementData(areacol, "Pos_Kick(2)") or 0 -- Pos Kick Y
				local Kick3 = getElementData(areacol, "Pos_Kick(3)") or 0 -- Pos Kick Z
				if getElementData(source, "Mangueira_Mão") == true then		
					outputChatBox ( "#00ff00✘ #ffffffINFO #00ff00✘➺ #ffffffVocê não pode sair do posto Com mangueira em mãos.", source, 255,255,255, true) 
					setElementPosition(source, Kick1, Kick2, Kick3)
				else
					setElementData(source, "ID_Area", false)
				end
			end
		end
	end
end

--[[
         ><><><><><><><><><><><><><><><><><><
         ><       Veiculo Hit Marker       ><
         ><><><><><><><><><><><><><><><><><><
--]]
function Vehicle_HitM (theVehicle)
    if getElementType(theVehicle) == "vehicle" then -- O Elemento a Colidir é um veiculo
		for i, Marker in ipairs (MarkersTable) do -- Loop Dos Markes De Gasolina
			if getElementData(Marker, "Posto:Gasolina") == true then -- Verifica se o Marker é um Posto
				if isElementWithinMarker(theVehicle, Marker) then -- Verifica se o Veiculo está dentro do Marker	
					if getElementData(Marker, "Bomba") == false then -- verifica se não tem veiculo na bomba
						for _, players in ipairs( getElementsByType 'player' ) do -- Verifica Todos jogadores Online 
							local Vehicle = getPedOccupiedVehicle ( players ) -- Verifica o Veiculo que os Jogadores estão Ocupando
							if ( Vehicle ) then -- Verificação
								for _, veh in ipairs ( Veiculos ) do	
								local ID_Veh = getElementModel ( Vehicle )
									if ID_Veh == veh then
										if getPedOccupiedVehicleSeat ( players ) == 0 then -- Verifica se o Jogador é Motorista
											bindKey (players, "k", "down", Perm_Abastercer ) -- Da a permissão pro jogador Seguir em frente com o abastecimento
											outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte a Letra #00ff00'K' #ffffffPara Que Possa Abastecer Seu Veiculo.", players, 255, 255, 255, true )
										end -- Fim
									end -- Fim
								end -- Fim
							end -- Fim
						end -- Fim
					end -- Fim
				end -- Fim
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><
         ><       Veiculo Leave Marker       ><
         ><><><><><><><><><><><><><><><><><><><
--]]
function Vehicle_LeaveM (theVehicle)
    if getElementType(theVehicle) == "vehicle" then -- O Elemento a Colidir deve ser Veiculo
		for _, Bombas in ipairs( getElementsByType 'marker' ) do -- Verifica todos os marker do jogo
			if getElementData(Bombas, "Posto:Gasolina") == true then -- Verifica se o marker e um posto de gasolina
				if getElementData(theVehicle, "Decidir") == "Abastecer?" then -- Verifica se o veiculo está em modo decisão
					for _, players in ipairs( getElementsByType 'player' ) do -- Todos jogadores online
						local Vehicle = getPedOccupiedVehicle ( players ) -- Verifica veiculo de todos os jogadores
						if ( Vehicle ) then -- Verificação
							if getElementData(Vehicle, "Decidir") == "Abastecer?" then -- Verifica se o Carro do Jogador está em modo decidir
								if getPedOccupiedVehicleSeat ( players ) == 0 then -- Verifica se é o motorista
									unbindKey (players, "k", "down", Perm_Abastercer ) -- Remove a bind de abastecer
									unbindKey (players, "k", "down", Sair_Veh ) -- Remove bind sair 
								end	-- Fim
							end	-- Fim
						end	-- Fim
					end	-- Fim
				end	-- Fim
			end	-- Fim
		end -- Fim
	end -- Fim
end -- Fim

for ia, va in ipairs (Areas_Protetoras) do
	Areas[ia] = createColRectangle (va[1], va[2], va[3], va[4])
	setElementData(Areas[ia], "Area_Protetora", true)
	setElementData(Areas[ia], "Pos_Kick(1)", va[5])
	setElementData(Areas[ia], "Pos_Kick(2)", va[6])
	setElementData(Areas[ia], "Pos_Kick(3)", va[7])
	setElementData(Areas[ia], "ID_Area", ia)
	addEventHandler("onColShapeHit", Areas[ia], HitPlayerArea)
	addEventHandler ( "onColShapeLeave", Areas[ia], Block_Area )
end

for i, v in ipairs (Bombas_Combustivel) do
	MarkersTable[i] = createMarker ( v[1], v[2], v[3] -1, "cylinder", 1.7, 0, 255, 0, 0 )
	setElementData(MarkersTable[i], "Posto:Gasolina", true)
	setElementData(MarkersTable[i], "Pos_Bomber(1)", v[4])
	setElementData(MarkersTable[i], "Pos_Bomber(2)", v[5])
	setElementData(MarkersTable[i], "Pos_Bomber(3)", v[6])
	setElementData(MarkersTable[i], "Pos_Car(1)", v[7])
	setElementData(MarkersTable[i], "Pos_Car(2)", v[8])
	setElementData(MarkersTable[i], "Pos_Car(3)", v[9])
	setElementData(MarkersTable[i], "Rot_Car", v[10])
	setElementData(MarkersTable[i], "Pos_Mangueira(1)", v[11])
	setElementData(MarkersTable[i], "Pos_Mangueira(2)", v[12])
	setElementData(MarkersTable[i], "Pos_Mangueira(3)", v[13])
	setElementData(MarkersTable[i], "Pos_Tampa(1)", v[14])
	setElementData(MarkersTable[i], "Pos_Tampa(2)", v[15])
	setElementData(MarkersTable[i], "Pos_Tampa(3)", v[16])
	setElementData(MarkersTable[i], "ID_Bomba", i)
	addEventHandler("onMarkerHit", MarkersTable[i], Vehicle_HitM)
	addEventHandler("onMarkerLeave", MarkersTable[i], Vehicle_LeaveM)
end

--[[
         ><><><><><><><><><><><><><><><><><><>
         ><       Permissão Abastecer       ><
         ><><><><><><><><><><><><><><><><><><>
--]]                   
function Perm_Abastercer (source)
	for i, Marker in ipairs (MarkersTable) do -- Verifica Todos os Markers Criados
		local Bomber1 = getElementData(Marker, "Pos_Bomber(1)") or 0 -- Pos Bomba X
		local Bomber2 = getElementData(Marker, "Pos_Bomber(2)") or 0 -- Pos Bomba Y
		local Bomber3 = getElementData(Marker, "Pos_Bomber(3)") or 0 -- Pos Bomba Z
		local Pos_Car1 = getElementData(Marker, "Pos_Car(1)") or 0 -- Pos Car X
		local Pos_Car2 = getElementData(Marker, "Pos_Car(2)") or 0 -- Pos Car Y
		local Pos_Car3 = getElementData(Marker, "Pos_Car(3)") or 0 -- Pos Car Z
		local Rot_Car = getElementData(Marker, "Rot_Car") or 0  -- Root Car
		local Mangueira1 = getElementData(Marker, "Pos_Mangueira(1)") or 0 -- Pos Mangueira X
		local Mangueira2 = getElementData(Marker, "Pos_Mangueira(2)") or 0 -- Pos Mangueira Y
		local Mangueira3 = getElementData(Marker, "Pos_Mangueira(3)") or 0 -- Pos Mangueira Z
		local Pos_Tampa1 = getElementData(Marker, "Pos_Tampa(1)") or 0 -- Pos Mangueira Z
		local Pos_Tampa2 = getElementData(Marker, "Pos_Tampa(2)") or 0 -- Pos Mangueira Z
		local Pos_Tampa3 = getElementData(Marker, "Pos_Tampa(3)") or 0 -- Pos Mangueira Z 
		local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica Veiculo do Jogador
		if ( Vehicle ) then	-- Verificação
			for _, veh in ipairs ( Veiculos ) do	
			local ID_Veh = getElementModel ( Vehicle )
				if ID_Veh == veh then
					if isElementWithinMarker(Vehicle, Marker) then -- Verifica se o Veiculo Está dentro do Marker 
						if BomberTable[Vehicle] and isElement( BomberTable[Vehicle] ) then destroyElement ( BomberTable[Vehicle] ) BomberTable[Vehicle] = nil end -- Destroi bombar veiculo
						if TampaCombustivel[Vehicle] and isElement( TampaCombustivel[Vehicle] ) then destroyElement ( TampaCombustivel[Vehicle] ) TampaCombustivel[Vehicle] = nil end -- Destroi tampa veiculo			
						BomberTable[Vehicle] = createMarker ( Bomber1, Bomber2, Bomber3 -1, "cylinder", 1.1, 0, 255, 0, 0 ) -- Cria Bomba pra Abastecer
						addEventHandler("onMarkerHit", BomberTable[Vehicle], Confirmar_Abastecimento) -- Adiciona Evento nos Marker de Abastecimento
						setElementData(Marker, "Bomba", "Ocupada") -- Seta a Bomba do Posto "Ocupada"
						setElementData(BomberTable[Vehicle], "Bomba:Gasolina", true) -- Dar valor A Bomba de abastecimento
						setElementData(BomberTable[Vehicle], "Pos_Mangueira(1)", Mangueira1) -- Seta Posição Line (X)
						setElementData(BomberTable[Vehicle], "Pos_Mangueira(2)", Mangueira2) -- Seta Posição Line (Y)
						setElementData(BomberTable[Vehicle], "Pos_Mangueira(3)", Mangueira3) -- Seta Posição Line (Z)
						setElementFrozen(Vehicle, true) -- Trava o Veiculo
						setElementPosition(Vehicle,	Pos_Car1, Pos_Car2, Pos_Car3 -0.2) -- Seta Posição~ do Veiculo
						setElementRotation(Vehicle, 0, 0, Rot_Car) -- Setar Rotação do Veiculo
						setElementData(Vehicle, "Aguardando_Gasolina", true) -- Seta Veiculo Aguardando Abastecimento
						unbindKey (source, "k", "down", Perm_Abastercer ) -- Remove a bind de abastecer
						bindKey (source, "k", "down", Sair_Veh ) -- Adiciona bind sair 
						TampaCombustivel[Vehicle] = createMarker ( Pos_Tampa1, Pos_Tampa2, Pos_Tampa3, "corona", 1.3, 0, 255, 0, 0 ) -- Cria Bomba pra Abastecer
						setElementData(TampaCombustivel[Vehicle], "Tanque_Fuel", true) -- Seta Tanque_Fuel no Veiculo
						addEventHandler("onMarkerHit", TampaCombustivel[Vehicle], Mensagem_Veh) -- Adiciona Evento nos Marker de Abastecimento
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSaia do Veiculo e Vá Até a Bomba de Combustivel.", source, 255, 255, 255, true )
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que saia com seu veiculo.", source, 255, 255, 255, true )
					end
				end
			end
		end
	end
end

function Sair_Veh (source)
	for i, v in ipairs (MarkersTable) do -- Faz um loop com todos os marker na tabela MarkersTable
		local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica o veiculo que o jogador está conduzindo
		if ( Vehicle ) then -- Verificação
			if isElementWithinMarker(Vehicle, v) then -- Verifica se o veiculo está em algum posto
				if (BomberTable[Vehicle]) and isElement(BomberTable[Vehicle]) then destroyElement(BomberTable[Vehicle]) end -- Destroi bomba
				if TampaCombustivel[Vehicle] and isElement( TampaCombustivel[Vehicle] ) then destroyElement ( TampaCombustivel[Vehicle] ) TampaCombustivel[Vehicle] = nil end -- Destroi tampa de adicionar gasolina
				setElementFrozen(Vehicle, false) -- Destrava o veiculo
				setElementData(v, "Bomba", false) -- Adiciona a Bomba como desocupada	  
				unbindKey (source, "k", "down", Sair_Veh ) -- Remove bind
				setElementData(Vehicle, "Aguardando_Gasolina", false) -- Remove o carro como aguardando gasolina
				setElementData(Vehicle, "Mangueira_Veiculo", false) -- Remove a Mangueira do Veiculo
				setElementData(Vehicle, "Abastecendo", false) -- Adiciona o veiculo como abastecendo
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

function Enter_Vehicle (source)
	local Vehicle = getPedOccupiedVehicle ( source ) -- Verifica o veiculo que o jogador está conduzindo
	if ( Vehicle ) then	-- Verificação
		if getElementData(Vehicle, "Aguardando_Gasolina") == true then -- Veiculo precisa está aguardando gasolina
			if getElementData(Vehicle, "Mangueira_Veiculo") == false then -- O veiculo não pode está com mangueira acionada nele
				bindKey (source, "k", "down", Sair_Veh ) -- adiciona bindkey pra sair com veiiculo
				outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que saia com seu veiculo.", source, 255, 255, 255, true )
			else -- Ou se o veiculo estiver com mangueira envia a mensagem abaixo
				outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffPara sair com o veiculo remova a mangueira dele.", source, 255, 255, 255, true )
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim
addEventHandler ( "onVehicleEnter", getRootElement(), Enter_Vehicle )

function Exit_Vehicle (source)
	local Veiculo = getPedOccupiedVehicle(source) -- Verifica o veiculo que o jogador está conduzindo
	if getElementData(Veiculo, "Aguardando_Gasolina") == true then -- O Veiculo precisa está aguardando a gasolina
		unbindKey (source, "k", "down", Perm_Abastercer ) -- Remove uso da função Abastecer veiculo
		unbindKey (source, "k", "down", Sair_Veh ) -- Remove uso da função sair com veiculo
	end -- Fim
end -- Fim
addEventHandler ( "onVehicleStartExit", getRootElement(), Exit_Vehicle )

--[[
         ><><><><><><><><><><><><><><><><><><
         ><       Mangueira Veiculo        ><
         ><><><><><><><><><><><><><><><><><><
--]]
function Confirmar_Abastecimento (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do servidor
	for _, veiculos in ipairs( vehicles ) do -- Loop de todos os veiculos
		if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Os veiculos precisa estar aguardando gasolina
			if isElementWithinMarker(source, BomberTable[veiculos]) then -- O Jogador precisa está na bomba de gasolina.
				if getElementData(source, "Mangueira_Mão") == false then -- O Jogador Precisa está sem mangueira
					if getElementData(BomberTable[veiculos], "Mangueira_Acionada") == false then  -- A bomba deve esta desocupada
						bindKey (source, "k", "down", Abastecer_Veh ) -- Adiciona BindKey pra abastecer
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara que Pegue a Mangueira", source, 255, 255, 255, true )			
					end -- Fim
				end -- Fim
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><
         ><       Começar Abastecimento      ><
         ><><><><><><><><><><><><><><><><><><><
--]]
function Abastecer_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
	for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
		if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Os veiculos precisa está aguardando gasolina		
			if isElementWithinMarker(source, BomberTable[veiculos]) then -- o Jogador precisa está dentro da bomba de gasolina
				if getElementData(source, "Mangueira_Mão") == false then -- Jogador não pode está com mangueira na mão
					if getElementData(BomberTable[veiculos], "Mangueira_Acionada") == false then -- A bomba deve estar desocupada
						local Mangueira1 = getElementData(BomberTable[veiculos], "Pos_Mangueira(1)") or 0 -- Pos Mangueira X
						local Mangueira2 = getElementData(BomberTable[veiculos], "Pos_Mangueira(2)") or 0 -- Pos Mangueira Y
						local Mangueira3 = getElementData(BomberTable[veiculos], "Pos_Mangueira(3)") or 0 -- Pos Mangueira Z
						local px, py, pz = getElementPosition(source) -- Verifica posição do jogador
						Mangueira[source] = createObject (14463, px, py, pz) -- Cria uma mangueira
						exports.bone_attach:attachElementToBone (Mangueira[source], source, 12, 0, 0, 0.06, -180, 0, 0) -- Gruda a mangueira na mão do jogador
						setElementData(source, "Mangueira_Mão", true) -- Aciona mangueira na mão dele.
						setElementData(source, "Pos_Mangueira(1)", Mangueira1) -- Posição X pra criar a line3d
						setElementData(source, "Pos_Mangueira(2)", Mangueira2) -- Posição Y pra criar a line3d
						setElementData(source, "Pos_Mangueira(3)", Mangueira3) -- Posição Z pra criar a line3d
						unbindKey (source, "k", "down", Abastecer_Veh ) -- Remove Bind De abastecer
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAdicione a Mangueira no Veiculo.", source, 255, 255, 255, true )	
					else -- Caso a bomba de gasolina estiver sendo usada, Então envia a seguinte mensagem
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffA Bomba já está sendo usada no veiculo", source, 255, 255, 255, true )	
					end -- Fim
				else -- Caso o jogador já estiver com uma mangueira envia a seguinte mensagem
					outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê já tem mangueira em suas mãos", source, 255, 255, 255, true )	
				end -- Fim
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><><><
         ><       Acionar mangueira no Veiculo       ><
         ><><><><><><><><><><><><><><><><><><><><><><><
--]]
function Mensagem_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
	for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
		if getElementData(veiculos, "Aguardando_Gasolina") == true then -- o Veiculo precisa está aguardando pra abastecer
			if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Jogador precisa está na tampa de combustivel
				if getElementData(veiculos, "Mangueira_Veiculo") == false then -- o Veiculo não pode está com mangueira  	
					if getElementData(source, "Mangueira_Mão") == true then -- Jogador precisa está com mangueira na mão		
						bindKey (source, "k", "down", Mangueira_Veh ) -- Adiciona Bindkey pra por mangueira no veiculo.
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara colocar a Mangueira no Veiculo", source, 255, 255, 255, true )
					end -- Fim
				else -- Se caso o veiculo já estiver com mangueira então Aciona as linhas abaixo	
					if getElementData(source, "Mangueira_Mão") == false then -- Jogador precisa está com mangueira na mão		
						bindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Aciona bindKey Da funçao pra remover mangueira
						outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffAperte #00ff00'K' #ffffffPara remover a Mangueira do Veiculo", source, 255, 255, 255, true )
					end -- Fim
				end -- Fim
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

function Mangueira_Veh (source)
	local Mangueira1 = getElementData(source, "Pos_Mangueira(1)") or 0 -- Pos Mangueira (Jogador) X
	local Mangueira2 = getElementData(source, "Pos_Mangueira(2)") or 0 -- Pos Mangueira (Jogador) Y
	local Mangueira3 = getElementData(source, "Pos_Mangueira(3)") or 0 -- Pos Mangueira (Jogador) Z
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
	for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
		for i, Marker in ipairs (MarkersTable) do -- Verifica Todos os Markers Criados
			if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Veiculo precisa está aguardando gasolina
				if getElementData(veiculos, "Mangueira_Veiculo") == false then -- Veiculo não pode está com Mangueira.		
					if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Jogador precisa está na tampa de combustivel do veiculo
						if isElementWithinMarker(veiculos, Marker) then -- Jogador precisa está na tampa de combustivel do veiculo
							if getElementData(source, "Mangueira_Mão") == true then -- Jogador precisa está com mangueira em mãos
								if Mangueira[source] and isElement( Mangueira[source] ) then destroyElement ( Mangueira[source] ) Mangueira[source] = nil end -- Destroi mangueira do jogador
								local px, py, pz = getElementPosition(veiculos) -- Verifica posição do veiculo
								local Combustivel = tonumber(getElementData(veiculos, "DNL:Combustivel")) or 0 -- Verifica a quantia de Combustivel do veiculo
								TableMangueira_Veh[veiculos] = createObject (14463, px, py, pz) -- Cria mangueira
								attachElements (TableMangueira_Veh[veiculos], veiculos, 1.2, -2, 0 +0.2) -- Gruda Mangueira Veh
								setElementData(TableMangueira_Veh[veiculos], "ID_Mangueira", i) -- seta um ID Nas mangueira
								local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[veiculos], "ID_Mangueira")) or 0 -- Verifica o ID Da mangueira do veiculo
								local mx, my, mz = getElementPosition(TableMangueira_Veh[veiculos]) -- Verifica posição DA Mangueira do veiculo
								setElementData(source, "Mangueira_Mão", false) -- Remove mangueira do jogador
								setElementData(TableMangueira_Veh[veiculos], "Mangueira:Gasolina", true) -- Aciona a mangueira do veiculo como ocupada
								setElementData(veiculos, "ID_Mangueira", ID_Mangueira) -- Adiciona o ID Da mangueira no ID Do veiculo
								setElementData(veiculos, "Pos_Mangueira(1)", mx) -- Pos Mangueira (Veiculo) X
								setElementData(veiculos, "Pos_Mangueira(2)", my) -- Pos Mangueira (Veiculo) Y
								setElementData(veiculos, "Pos_Mangueira(3)", mz) -- Pos Mangueira (Veiculo) Z					
								setElementData(veiculos, "Pos_MangueiraPlayer(1)", Mangueira1) -- Pos Mangueira (Jogador) X
								setElementData(veiculos, "Pos_MangueiraPlayer(2)", Mangueira2) -- Pos Mangueira (Jogador) Y
								setElementData(veiculos, "Pos_MangueiraPlayer(3)", Mangueira3) -- Pos Mangueira (Jogador) Z		
								setElementData(veiculos, "Mangueira_Veiculo", true) -- Aciona veiculo com a mangueira
								setElementData(BomberTable[veiculos], "Mangueira_Acionada", true) -- Aciona a bomba como ocupada
								outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSeu veiculo está na Bomba #00ff00"..ID_Mangueira.." #ffffffFique Ciente disso quando for abastecer.", source, 255, 255, 255, true )	
								unbindKey (source, "k", "down", Mangueira_Veh ) -- Remove bind 
								if Combustivel >= 90 then -- Verifica se o combustivel do veiculo é Maior ou igual a 90.
									setElementData(TableMangueira_Veh[veiculos], "Combustivel_Cheio", true) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
									setElementData(veiculos, "Combustivel_Cheio", true) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
									outputChatBox ( "#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse Veiculo não precisa ser abastecido, Por favor retire a mangueira.", source, 255, 255, 255, true )	
								else -- se for menor que 90 então...
									setElementData(TableMangueira_Veh[veiculos], "Combustivel_Cheio", false) -- Se for igual ou maior que 90 então Aciona o combustivel como cheio
									setElementData(veiculos, "Combustivel_Cheio", false) -- Então aciona o combustivel como vazio
								end -- Fim
							end -- Fim
						end -- Fim
					end -- Fim
				end -- Fim
			end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><
         ><       Remover mangueira veiculo      ><
         ><><><><><><><><><><><><><><><><><><><><><
--]]
function Remover_Mangueira_Veh (source)
    local vehicles = getElementsByType ( "vehicle" ) -- Verifica todos os veiculos do jogo
	for _, veiculos in ipairs( vehicles ) do -- Faz um loop com todos os veiculos do jogo
		if getElementData(veiculos, "Aguardando_Gasolina") == true then -- Veiculo deve esta aguardando pra abastecer
			if isElementWithinMarker(source, TampaCombustivel[veiculos]) then -- Verifica se o jogado está na tampa de combustivel	
				if getElementData(veiculos, "Mangueira_Veiculo") == true then -- Mangueira deve está no veiculo
					if getElementData(source, "Mangueira_Mão") == false then -- Jogador não pode ta com mangueira em mãos	
						if getElementData(veiculos, "Abastecendo") == false then -- O Veiculo não pode está sendo abastecido			
								if TableMangueira_Veh[veiculos] and isElement( TableMangueira_Veh[veiculos] ) then destroyElement ( TableMangueira_Veh[veiculos] ) TableMangueira_Veh[veiculos] = nil end -- Destroi mangueira do veiculo
								setElementData(veiculos, "Pos_Mangueira(1)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Pos_Mangueira(2)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Pos_Mangueira(3)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Pos_MangueiraPlayer(1)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Pos_MangueiraPlayer(2)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Pos_MangueiraPlayer(3)", 0) -- Seta posição da mangueira 0 
								setElementData(veiculos, "Mangueira_Veiculo", false) -- Aciona o veiculo como sem mangueira
								setElementData(BomberTable[veiculos], "Mangueira_Acionada", false) -- Aciona A Mangueira como vazia
								unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
							else -- se o veiculo estiver sendo abastecido envia a seguinte mensagem
								unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
								outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffO Veiculo está sendo abastecido, Aguarde terminar.", source, 255,255,255,true)
							end -- Fim
						else -- se o jogador estiver com mangueira envia a seguinte mensagem
							unbindKey (source, "k", "down", Remover_Mangueira_Veh ) -- Remove bindKey
							outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffVocê está com mangueira nas mãos!", source, 255,255,255,true)
						end -- Fim
					end -- Fim
				end -- Fim
		end -- Fim
	end -- Fim
end -- Fim

--[[
         ><><><><><><><><><><><><><><><><><><><><><
         ><       Veiculo sendo abastecido       ><
         ><><><><><><><><><><><><><><><><><><><><><
--]]
function Abastecendo_Veiculo (source, Nome_Veh, Id_Veh, getQuantia) 
	for _, vehicle in ipairs( getElementsByType ( "vehicle" ) ) do  -- Verifica todos os veiculos do servidor
		local VehicleID = tonumber(Id_Veh) -- Pega o ID do veiculo
		if(VehicleID) then -- Verifica se o id Do veiculo é valido
			local Vehicle2 = getVehicleByID(VehicleID) -- Verifica o id do veiculo
			if(Vehicle2) then -- Verificação
				for i, Marker in ipairs (MarkersTable) do -- Verifica todos os postos do servidor	
					if getElementData(vehicle, "Aguardando_Gasolina") == true then -- Verifica se o carro está aguardando pra ser abastecido		
						if isElementWithinMarker(vehicle, Marker) then -- Verifica se o Veiculo Está dentro do Marker 
						local ID_Mangueira = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0 -- Verifica ID Da mangueira do veiculo
						local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
							if tonumber(Id_Veh) == ID_Mangueira then -- Id do veiculo deve ter o mesmo Id da mangueira   	
								if getElementData(vehicle, "Mangueira_Veiculo") == true then -- Verifica se o veiculo está com mangueira
									if getElementData(source, "Mangueira_Mão") == false then -- O Jogador não pode esta com mangueira em suas mãos
										if getElementData(vehicle, "DNL:Combustivel") < 90 then -- Gasolina do veiculo deve ser menor que 90
											if getElementData(vehicle, "Abastecendo") == false then -- Verifica se o veiculo já está sendo abastecido
												if getElementData(source, "Abastecendo") == false then -- Verifica se o veiculo já está sendo abastecido			
													if getPlayerMoney ( source ) >= 5 then -- Verifica se o jogador tem dinheiro
														setElementData(vehicle, "Abastecendo", true) -- Adiciona o veiculo como abastecendo
														setElementData(source, "Abastecendo", true) -- Adiciona o jogador como abastecendo
														setElementData(vehicle, "DNL:Litros", getQuantia) -- Adiciona os litros que o jogador pois
														outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffVeiculo da Bomba #00ff00"..ID_Mangueira.." #ffffffestá sendo abastecido!", source, 255,255,255,true)
														Tempo[source] = setTimer ( function() -- Timer pra tudo abaixo acontecer
															setElementData(vehicle, "DNL:Combustivel", getElementData(vehicle, "DNL:Combustivel") +1) -- Adiciona 1 litro de gasolina a cada segundo
															setElementData(vehicle, "DNL:Litros", getElementData(vehicle, "DNL:Litros") -1) -- Remove um litro de gasolina que o jogador quis adicionar
															takePlayerMoney(source, 5) -- Remover $5 do jogador
															playSoundFrontEnd(source, 12 ) -- Som pra alertar o Jogador											
															if getElementData(vehicle, "DNL:Combustivel") >= 100 then -- Verifica se o veiculo já tem 100 Litros
																if isTimer(Tempo[source]) then killTimer(Tempo[source]) end -- Para o tempo
																setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
																setElementData(vehicle, "DNL:Combustivel", 100) -- Seta gasolina como 100 (Evitar Bugs)
																setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
																setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
																setElementData(vehicle, "Combustivel_Cheio", true) -- Seta o veiculo como Tanque cheio
																setElementData(TableMangueira_Veh[vehicle], "Combustivel_Cheio", true) -- Seta o veiculo como Tanque cheio
																playSoundFrontEnd(source, 2 ) -- Som pra alertar o Jogador					
																outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffO veiculo da bomba #00ff00"..ID_Mangueira.." #ffffffFoi abastecido completamente.", source, 255,255,255,true)											
															elseif getPlayerMoney ( source ) < 5 then 
																if isTimer(Tempo[source]) then killTimer(Tempo[source]) end -- Para o tempo
																setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
																setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
																setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
																playSoundFrontEnd(source, 8) -- Som pra alertar o Jogador						
																outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffSeu dinheiro acabou e seu veiculo parou de ser abastecido.", source, 255,255,255,true)
																
															elseif getElementData(vehicle, "DNL:Litros") <= 0 then 
																if isTimer(Tempo[source]) then killTimer(Tempo[source]) end  -- Para o tempo
																setElementData(vehicle, "DNL:Litros", 0) -- Seta os litros como 0 (Evitar Bugs)
																setElementData(vehicle, "Abastecendo", false) -- Remove o modo abastecendo do veiculo
																setElementData(source, "Abastecendo", false) -- Remove o jogador do modo abastecendo
																playSoundFrontEnd(source, 10 ) -- Som pra alertar o Jogador						
																outputChatBox ( "#00ff00⇨? #ff0000ERRO #00ff00⇨? #ffffffA Quantia de litro desejada já foi adicionada no veiculo.", source, 255,255,255,true)
															end	-- Fim																					
														end, 1000, 0 ) -- Tempo Timer "1000" Modo timer "0"												
													else
														outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffSeu dinheiro acabou e não foi possivel terminar de abastecer.", source, 255, 255, 255, true)
													end	-- Fim	
												else
													outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê já está abastecendo um veiculo, Aguarde terminar", source, 255, 255, 255, true)
												end	-- Fim												
											else
												outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse veiculo já está sendo abastecido", source, 255, 255, 255, true)	
											end	-- Fim	
										else
											outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffEsse veiculo não precisa ser abastecido", source, 255, 255, 255, true)
										end	-- Fim	
									else
										outputChatBox ("#00ff00⇨? #ff0000Posto #00ff00⇨? #ffffffVocê está com mangueira em mãos, Remova.", source, 255, 255, 255, true)
									end	-- Fim	
								end	-- Fim	
							end	-- Fim	
						end	-- Fim	
					end	-- Fim	
				end	-- Fim	
			end	-- Fim	
		end	-- Fim	
	end	-- Fim	
end	-- Fim	
addEvent("DNL:Abastecer_Veiculo", true)
addEventHandler("DNL:Abastecer_Veiculo", root, Abastecendo_Veiculo)

--[[
         ><><><><><><><><><><><><
         ><       Ignora       ><
         ><><><><><><><><><><><><
--]]
function Contador_Combustivel ()
	for _, players in ipairs( getElementsByType 'player' ) do -- Verifica Todos jogadores Online 
		local Motorista = getPedOccupiedVehicleSeat ( players )
		if Motorista == 0 then
			for _, veh in ipairs ( Veiculos ) do			
				local Veiculo = getPedOccupiedVehicle ( players )
				local ID_Veh = getElementModel ( Veiculo )
				if ID_Veh == veh then
				local Combustivel = getElementData ( Veiculo, "DNL:Combustivel" ) or 0
					if getVehicleEngineState ( Veiculo ) and Combustivel > 0 then
						VelocidadeX, VelocidadeY, VelocidadeZ = getElementVelocity ( Veiculo )
						VelocidadeAtual = ( VelocidadeX ^ 2 + VelocidadeY ^ 2 + VelocidadeZ ^ 2 ) ^ ( 0.5 )
						KMH = math.floor ( VelocidadeAtual * 180 )
						if KMH == 0 then
							Combustivel_Seg = 0
						elseif KMH > 0 then
							Combustivel_Seg = 0.1
						end
							Combustivel = Combustivel - Combustivel_Seg				
					end
					if Combustivel <= 0.50 then
						Combustivel = 0
						setVehicleEngineState ( Veiculo, false )
					end
					setElementData ( Veiculo, "DNL:Combustivel", Combustivel )
				end
			end
		end
	end
end
setTimer ( Contador_Combustivel, 3000, 0 )

addEventHandler("onResourceStart", resourceRoot,
  function ()
	for _, vehicle in ipairs( getElementsByType ( "vehicle" ) ) do  
		for _, veh in ipairs ( Veiculos ) do	
			local ID_Veh = getElementModel ( vehicle )
			if ID_Veh == veh then
				local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
				setElementData(vehicle, "DNL:Combustivel", Combustivel)
				setElementData(vehicle, "Aguardando_Gasolina", false)
				setElementData(vehicle, "Mangueira_Veiculo", false)
				if Combustivel == 0 or Combustivel == false then
					setElementData(vehicle, "DNL:Combustivel", 20)
				end
			end
		end
	end
end)

function Refresh_Lista_Posto1 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 1 or ID_Mangueira_ == 2 or ID_Mangueira_ == 3 or ID_Mangueira_ == 4 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto1_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto1(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto1(Veiculos)", root, Refresh_Lista_Posto1)

function Refresh_Lista_Posto2 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 5 or ID_Mangueira_ == 6 or ID_Mangueira_ == 7 or ID_Mangueira_ == 8 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto2_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto2(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto2(Veiculos)", root, Refresh_Lista_Posto2)

function Refresh_Lista_Posto3 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 9 or ID_Mangueira_ == 10 or ID_Mangueira_ == 11 or ID_Mangueira_ == 12 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto3_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto3(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto3(Veiculos)", root, Refresh_Lista_Posto3)

function Refresh_Lista_Posto4 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 13 or ID_Mangueira_ == 14 or ID_Mangueira_ == 15 or ID_Mangueira_ == 16 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto4_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto4(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto4(Veiculos)", root, Refresh_Lista_Posto4)

function Refresh_Lista_Posto5 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 17 or ID_Mangueira_ == 18 or ID_Mangueira_ == 19 or ID_Mangueira_ == 20 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto5_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto5(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto5(Veiculos)", root, Refresh_Lista_Posto5)

function Refresh_Lista_Posto6 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 21 or ID_Mangueira_ == 22 or ID_Mangueira_ == 23 or ID_Mangueira_ == 24 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto6_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto6(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto6(Veiculos)", root, Refresh_Lista_Posto6)

function Refresh_Lista_Posto7 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 25 or ID_Mangueira_ == 26 or ID_Mangueira_ == 27 or ID_Mangueira_ == 28 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto7_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto7(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto7(Veiculos)", root, Refresh_Lista_Posto7)

function Refresh_Lista_Posto8 (source, text)
	if tostring(text) == "" or text == false or text == nil then
		for i, vehicle in ipairs(getElementsByType("vehicle")) do 
			local Combustivel = tonumber(getElementData(vehicle, "DNL:Combustivel")) or 0
			local ID_Mangueira_ = tonumber(getElementData(vehicle, "ID_Mangueira")) or 0
			if getElementData(vehicle, "Mangueira_Veiculo") == true then
				if Combustivel < 90 then			
					if getElementData(vehicle, "Abastecendo") == false then
						if ID_Mangueira_ == 29 or ID_Mangueira_ == 30 or ID_Mangueira_ == 31 or ID_Mangueira_ == 32 then 
							local ID_Mangueira = tonumber(getElementData(TableMangueira_Veh[vehicle], "ID_Mangueira")) or 0
							local vehicleName = getVehicleName (vehicle)
							triggerClientEvent(root, "DNL:Refresh_Lista_Posto8_C(Veiculos)", root, vehicleName, ID_Mangueira)
						end
					end
				end
			end
		end	
	end		
end
addEvent("DNL:Refresh_Lista_Posto8(Veiculos)",true)
addEventHandler("DNL:Refresh_Lista_Posto8(Veiculos)", root, Refresh_Lista_Posto8)

function Quit_Server ( quitType )
	if getElementData(source, "Mangueira_Mão") == true then							
		if Mangueira[source] and isElement( Mangueira[source] ) then 
			destroyElement ( Mangueira[source] ) 
			Mangueira[source] = nil 
		end
	end
end
addEventHandler ( "onPlayerQuit", root, Quit_Server )---parte da gasolineira





local sx,sy = guiGetScreenSize()

function speed()
	local veh = getPedOccupiedVehicle(localPlayer)
	local fuel = math.floor(getElementData(veh,"fuel") or 11)
	local hpcar = math.floor(getElementHealth(veh) /10)
	local getspeed = math.floor(getElementSpeed(veh,"km/h"))
	if not veh then return end	
	dxDrawImage(sx-310,sy-193,307,177,"files/fon_speed.png")
	dxDrawImage(sx-235,sy-90,26,26,"files/light_r_off.png")
	dxDrawImage(sx-300,sy-90,26,26,"files/light_l_off.png")
	if(getElementData(veh,"rightflash")) then
		if (getTickCount() % 1400 >= 600) then
			dxDrawImage(sx-235,sy-90,26,26,"files/light_r_on.png")
		end
	end
	if(getElementData(veh,"leftflash")) then
		if (getTickCount() % 1400 >= 600) then
			dxDrawImage(sx-300,sy-90,26,26,"files/light_l_on.png")
		end
	end	
	if(getElementData(veh, "allflash")) then
		if(getTickCount() % 1400 >= 600) then
			dxDrawImage(sx-235,sy-90,26,26,"files/light_r_on.png")
			dxDrawImage(sx-300,sy-90,26,26,"files/light_l_on.png")
		end
	end	
	if(getVehicleEngineState(veh) == true) then	
		dxDrawImage(sx-125,sy-49,26,26,"files/engine_on.png")
	elseif(getVehicleEngineState(veh) == false) then
		dxDrawImage(sx-125,sy-49,26,26,"files/engine_off.png")
	end	
	if(getVehicleOverrideLights(veh) == 2) then	
		dxDrawImage(sx-180,sy-49,26,26,"files/lights_on.png")
	else
		dxDrawImage(sx-180,sy-49,26,26,"files/lights_off.png")
	end	
	if(isVehicleLocked(veh) == true) then	
		dxDrawImage(sx-70,sy-49,26,26,"files/door_close.png")
	elseif(isVehicleLocked(veh) == false) then
		dxDrawImage(sx-70,sy-49,26,26,"files/door_open.png")
	end		
	if(getspeed >= 100) then
		dxDrawText(string.format("%s",getspeed),sx-283,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")
	elseif(getspeed >= 10) then
		dxDrawText(string.format("%s",getspeed),sx-273,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")		
	elseif(getspeed <= 9) then
		dxDrawText(string.format("%s",getspeed),sx-265,sy-145,sx-315,70,tocolor(255,255,255,255),2.5,"default-bold")	
	end
	if(fuel >= 100) then
		dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(225, 150, 48, 255))
		dxDrawText(string.format("%s",fuel),sx-75,sy-173,15,15,tocolor(255,255,255,255),1.8)	
	elseif(fuel <= 15) then
		dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(213, 38, 38, 255))
		dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)		
	elseif(fuel <= 25) then
		dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(218,207, 96, 255))
		dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)				
	elseif(fuel <= 9) then
		dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(213, 38, 38, 255))
		dxDrawText(string.format("%s",fuel),sx-50,sy-173,15,15,tocolor(255,255,255,255),1.8)		
	elseif(fuel >= 10) then
		dxDrawRectangle(sx-167,sy-146,fuel*1.4,3,tocolor(225, 150, 48, 255))
		dxDrawText(string.format("%s",fuel),sx-60,sy-173,15,15,tocolor(255,255,255,255),1.8)		
	end
	if(hpcar >= 100) then
		dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(210, 255, 0, 255))
		dxDrawText(string.format("%s",hpcar),sx-80,sy-114,15,15,tocolor(255,255,255,255),1.8)
	elseif(hpcar <= 50) then
		dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(213, 38, 38, 255))
		dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)	
	elseif(hpcar <= 65) then
		dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(218,207, 96, 255))
		dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)			
	elseif(hpcar <= 9) then
		dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(213, 38, 38, 255))
		dxDrawText(string.format("%s",hpcar),sx-60,sy-114,15,15,tocolor(255,255,255,255),1.8)
	elseif(hpcar >= 10) then
		dxDrawRectangle(sx-167,sy-87,hpcar*1.4,3,tocolor(210, 255, 0, 255))
		dxDrawText(string.format("%s",hpcar),sx-70,sy-114,15,15,tocolor(255,255,255,255),1.8)		
	end	
end
addEventHandler("onClientRender",root,speed)



















































function getElementSpeed(theElement, unit)
    assert(isElement(theElement), "Bad argument 1 @ getElementSpeed (element expected, got " .. type(theElement) .. ")")
    local elementType = getElementType(theElement)
    assert(elementType == "player" or elementType == "ped" or elementType == "object" or elementType == "vehicle" or elementType == "projectile", "Invalid element type @ getElementSpeed (player/ped/object/vehicle/projectile expected, got " .. elementType .. ")")
    assert((unit == nil or type(unit) == "string" or type(unit) == "number") and (unit == nil or (tonumber(unit) and (tonumber(unit) == 0 or tonumber(unit) == 1 or tonumber(unit) == 2)) or unit == "m/s" or unit == "km/h" or unit == "mph"), "Bad argument 2 @ getElementSpeed (invalid speed unit)")
    unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit))
    local mult = (unit == 0 or unit == "m/s") and 50 or ((unit == 1 or unit == "km/h") and 180 or 111.84681456)
    return (Vector3(getElementVelocity(theElement)) * mult).length
end----parte do velocimetro

 

18 minutes ago, #DeltaSCR said:

Sim, você vai copiar o código e colar onde eu te falei.

 

Ah e quando se compra um carro vem sem gasosa e eu queria que viesse com 30%

Link to comment
  • 1 month later...

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