Ta ai, um sistema simples de Detran.
local acl = "Detran" -- acl que tem permissão para efetuar os comandos /guinchar /soltar e pegar o carro do detran.
local detran = {
vtr = {},
last = {},
inUse = {},
guinchado = {},
};
function darCarro(jogador)
if isPlayerInACL(jogador, acl) then
if detran.inUse[jogador] ~= true then
if detran.vtr[jogador] then
destroyElement(detran.vtr[jogador])
detran.vtr[jogador] = nil
end
detran.vtr[jogador] = createVehicle(578, 1547.663, -2303.496, 13.545,-0, 0, 1.548)
warpPedIntoVehicle(jogador, detran.vtr[jogador])
outputChatBox("#FFA500[Detran]:#FFFFFFVocê pegou carro do Detran", jogador, 255, 255, 255, true)
else
outputChatBox("#FFA500[Detran]:#FFFFFFVocê não pode pegar um novo carro do Detran", jogador, 255, 255, 255, true)
end
end
end
addEventHandler("onPickupHit", carro, darCarro)
function salvar_Carro (vehicle, seat, jacked)
if isPlayerInACL(source, acl) then
detran.last[source] = vehicle
end
end
addEventHandler('onPlayerVehicleEnter', getRootElement(), salvar_Carro)
function guinVeh (jogador)
if isPlayerInACL(jogador, acl) then
local vtr = detran.vtr[jogador]
local veh = detran.last[jogador]
local vtrx, vtry, vtrz = getElementPosition(vtr)
local vehx, vehy, vehz = getElementPosition(veh)
local dist = getDistanceBetweenPoints3D(vtrx, vtry, vtrz, vehx, vehy, vehz)
if (vtr) and (veh) then
if dist < 5.5 then
if not detran.inUse[jogador] then
attachElements(veh, vtr, 0, -1, 1)
detran.guinchado[jogador] = veh
detran.inUse[jogador] = true
outputChatBox("#FFA500[Detran]:#FFFFFFVeículo guinchado!", jogador, 255, 255, 255, true)
else
outputChatBox("#FFA500[Detran]:#FFFFFFVocê já guinchou um veículo!", jogador, 255, 255, 255, true)
end
else
outputChatBox("#FFA500[Detran]:#FFFFFFAproxime o guincho do veículo!", jogador, 255, 255, 255, true)
end
end
end
end
addCommandHandler("guinchar", guinVeh)
function soltarVeh (jogador)
if isPlayerInACL(jogador, acl) then
local vtr = detran.vtr[jogador]
local veh = detran.guinchado[jogador]
local jogx, jogy, jogz = getElementPosition(jogador)
local vtrx, vtry, vtrz = getElementPosition(vtr)
local dist = getDistanceBetweenPoints3D(jogx, jogy, jogz, vtrx, vtry, vtrz)
if (vtr) and (veh) then
if dist < 3.5 then
if detran.inUse[jogador] then
detachElements(veh, vtr)
detran.inUse[jogador] = false
detran.guinchado[jogador] = nil
outputChatBox("#FFA500[Detran]:#FFFFFFVeículo liberado!", jogador, 255, 255, 255, true)
end
else
outputChatBox("#FFA500[Detran]:#FFFFFFAproxime-se do guincho!", jogador, 255, 255, 255, true)
end
end
end
end
addCommandHandler("soltar", soltarVeh)
function isPlayerInACL(player, acl)
if isElement(player) and getElementType(player) == "player" and aclGetGroup(acl or "") and not isGuestAccount(getPlayerAccount(player)) then
local account = getPlayerAccount(player)
return isObjectInACLGroup( "user.".. getAccountName(account), aclGetGroup(acl) )
end
return false
end
Se ocorrer algum erro, só estar comentando aqui. Não se esqueça de ativar seu debugscript (/debugscript 3).
@zking0d