2026-04-14 17:41:39 +02:00

79 lines
2.7 KiB
Lua

function GetVehicleFromPlate(targetPlate)
for _, vehicle in pairs(GetGamePool("CVehicle")) do
local plate = MathTrim(GetVehicleNumberPlateText(vehicle))
if plate == targetPlate then
return vehicle
end
end
return nil
end
RegisterNetEvent("advancedgarages:giveKeys")
AddEventHandler("advancedgarages:giveKeys", function(netId, plate)
plate = MathTrim(plate)
if not NetworkDoesNetworkIdExist(netId) then
Debug("advancedgarages:giveKeys Network ID does not exist. Plate:", plate)
return
end
local vehicle = NetworkGetEntityFromNetworkId(netId)
if not vehicle then
Debug("advancedgarages:giveKeys Entity is not valid. Plate:", plate)
return
end
if not DoesEntityExist(vehicle) then
Debug("Eadvancedgarages:giveKeys ntity does not exist ", vehicle)
return
end
if Config.Vehiclekeys and Config.Vehiclekeys ~= "none" then
AddVehiclekeys(vehicle, plate, false)
Debug("Vehiclekeys enabled on [initVehicle], keys were issued using:", Config.Vehiclekeys, "plate:", plate)
end
end)
RegisterNetEvent("advancedgarages:setVehicleProperties")
AddEventHandler("advancedgarages:setVehicleProperties", function(vehicleDataList)
for _, vehicleData in pairs(vehicleDataList) do
CreateThread(function()
local plate = MathTrim(vehicleData.plate)
local maxRetries = 10
local retryCount = 0
local resolvedVehicle = nil
while retryCount < maxRetries do
if NetworkDoesNetworkIdExist(vehicleData.netID) then
local entity = NetworkGetEntityFromNetworkId(vehicleData.netID)
if entity and DoesEntityExist(entity) then
resolvedVehicle = entity
break
end
end
retryCount = retryCount + 1
Debug("Waiting for network entity, plate:", plate, "retry:", retryCount)
Wait(200)
end
if not resolvedVehicle then
Debug("Failed to resolve entity after retries. Plate:", plate)
return
end
SetVehicleProperties(resolvedVehicle, vehicleData.vehicle)
SetVehicleOnGroundProperly(resolvedVehicle)
TriggerServerEvent("advancedgarages:vehiclePropertiesSetted", plate)
local entityState = Entity(resolvedVehicle).state
entityState:set("propertiesSetted", true, true)
if Config.PersistentVehiclesLocked then
SetVehicleDoorsLocked(resolvedVehicle, 2)
end
Debug("Vehicle properties setted for plate:", plate)
end)
end
end)