79 lines
2.7 KiB
Lua
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)
|