Jump to content

Como despawnar o carro assim que o player sair


Recommended Posts

Carro = {}
function Pegar_Carro (source)
	if getElementData ( source, "DNL:Entregar_Cargas" ) == true then
		if isElement(Carro[source]) then destroyElement(Carro[source]) end
		Carro[source] = createVehicle(413, 777.72870, -1337.64941, 13.53258)
		setElementRotation(Carro[source], 0,0,0)
		setElementInterior(Carro[source], 0)
		setElementDimension(Carro[source], 0)
		warpPedIntoVehicle ( source, Carro[source] )
		setElementInterior(source, 0)
		setElementDimension(source, 0)
		triggerClientEvent(source, "DNL:Fechar_Correios", source)
		triggerClientEvent(source, "addBox", root, "INFO : Digite /entregarcaixas para começar a entregar as encomendas", "info")
	else
		triggerClientEvent(source, "addBox", root, "INFO : Você deve pegar encomendas para que pegue a van da empresa", "info")
	end
end
addEvent("DNL:Pegar_Carro", true)
addEventHandler("DNL:Pegar_Carro", root, Pegar_Carro)

 

Edited by Lord Henry
Código convertido de HTML para Lua.
Link to comment
  • Other Languages Moderators
vehTimers = {} -- Tabela de timers anexados aos veículos.

addEventHandler ("onVehicleExit", root, function (thePed, seat) -- Função ativada quando alguém sair de algum veículo.
    if (seat == 0) then -- Se quem saiu do veículo era o motorista, então:
        for i,v in pairs (Carro) do -- Para cada veículo da tabela Carro, faça:  
            if not (isElement(v)) then -- Se um veículo da tabela Carro não existe mais, então limpa ele da tabela.
                Carro[i] = nil
            end
            if (theSource == v) then -- Se o veículo que o jogador saiu é o mesmo que este veículo específico da tabela, então: 
                vehTimers[source] = setTimer (function (theSource) -- Inicia um timer de 10 segundos, vinculado ao veículo da tabela. (theSource = source)
                    vehTimers[theSource] = nil -- Limpa a variável deste timer.
                    if not (isElement(theSource)) then return end -- Se o veículo que o player saiu já não existe mais, então cancela essa função e nada acontece.
                    destroyElement (v) -- Destrói o veículo.
                    Carro[i] = nil -- Limpa ele da tabela Carro.
                end, 10000, 1, source) -- Passa o source por parâmetro para dentro do setTimer, pois dentro do setTimer o source original não existe.
                break -- Encerra o looping para não precisar verificar os demais veículos, pois ele já foi encontrado.
            end
        end
    end
end)

addEventHandler ("onVehicleEnter", root, function (thePed, seat) -- Função ativada quando alguém entrar em algum veículo.
    if (seat == 0) then
        if (isTimer(vehTimers[source])) then
            killTimer (vehTimers[source]) -- Cancela o timer caso alguém entre de motorista no veículo antes do tempo acabar.
            vehTimers[source] = nil
        end
    end
end)

Obs: Tenha um sistema que impeça que outros players entrem no veículo que não é deles.

Edited by Lord Henry
  • Thanks 1
Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...