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.