Scripts/resources/[ps]/ps-mdt/client/cl_impound.lua

75 lines
2.6 KiB
Lua
Raw Permalink Normal View History

2024-12-29 20:28:24 +00:00
local currentGarage = 1
local function doCarDamage(currentVehicle, veh)
local smash = false
local damageOutside = false
local damageOutside2 = false
local engine = veh.engine + 0.0
local body = veh.body + 0.0
if engine < 200.0 then engine = 200.0 end
if engine > 1000.0 then engine = 950.0 end
if body < 150.0 then body = 150.0 end
if body < 950.0 then smash = true end
if body < 920.0 then damageOutside = true end
if body < 920.0 then damageOutside2 = true end
Citizen.Wait(100)
SetVehicleEngineHealth(currentVehicle, engine)
if smash then
SmashVehicleWindow(currentVehicle, 0)
SmashVehicleWindow(currentVehicle, 1)
SmashVehicleWindow(currentVehicle, 2)
SmashVehicleWindow(currentVehicle, 3)
SmashVehicleWindow(currentVehicle, 4)
end
if damageOutside then
SetVehicleDoorBroken(currentVehicle, 1, true)
SetVehicleDoorBroken(currentVehicle, 6, true)
SetVehicleDoorBroken(currentVehicle, 4, true)
end
if damageOutside2 then
SetVehicleTyreBurst(currentVehicle, 1, false, 990.0)
SetVehicleTyreBurst(currentVehicle, 2, false, 990.0)
SetVehicleTyreBurst(currentVehicle, 3, false, 990.0)
SetVehicleTyreBurst(currentVehicle, 4, false, 990.0)
end
if body < 1000 then
SetVehicleBodyHealth(currentVehicle, 985.1)
end
end
local function TakeOutImpound(vehicle)
local coords = Config.ImpoundLocations[currentGarage]
if coords then
QBCore.Functions.SpawnVehicle(vehicle.vehicle, function(veh)
QBCore.Functions.TriggerCallback('qb-garage:server:GetVehicleProperties', function(properties)
QBCore.Functions.SetVehicleProperties(veh, properties)
SetVehicleNumberPlateText(veh, vehicle.plate)
SetEntityHeading(veh, coords.w)
exports[Config.Fuel]:SetFuel(veh, vehicle.fuel)
doCarDamage(veh, vehicle)
TriggerServerEvent('police:server:TakeOutImpound',vehicle.plate)
TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(veh))
SetVehicleEngineOn(veh, true, true)
end, vehicle.plate)
end, coords, true)
end
end
RegisterNetEvent('ps-mdt:client:TakeOutImpound', function(data)
local pos = GetEntityCoords(PlayerPedId())
currentGarage = data.currentSelection
local takeDist = Config.ImpoundLocations[data.currentSelection]
takeDist = vector3(takeDist.x, takeDist.y, takeDist.z)
if #(pos - takeDist) <= 15.0 then
local vehicle = data.vehicle
TakeOutImpound(data)
else
QBCore.Functions.Notify("Du er for langt væk fra impound-pladsen!")
end
end)