refactor(es_extended/onesync): 'VehicleProperties' statebag

This commit is contained in:
Csoki
2023-02-09 16:23:22 +01:00
parent 86d4e9192c
commit 36fcdf5b43
2 changed files with 17 additions and 24 deletions
+12 -17
View File
@@ -182,23 +182,18 @@ AddEventHandler('esx:restoreLoadout', function()
end
end)
AddStateBagChangeHandler('VehicleProperties', nil, function(bagName, key, value)
if value then
Wait(0)
local NetId = value.NetId
local Vehicle = NetworkGetEntityFromNetworkId(NetId)
local Tries = 0
while Vehicle == 0 do
Vehicle = NetworkGetEntityFromNetworkId(NetId)
Wait(100)
Tries = Tries + 1
if Tries > 300 then
break
end
end
if NetworkGetEntityOwner(Vehicle) == PlayerId() then
ESX.Game.SetVehicleProperties(Vehicle, value)
end
AddStateBagChangeHandler('VehicleProperties', nil, function(bagName, _, value)
if not value then
return
end
local vehicle = GetEntityFromStateBagName(bagName)
if not DoesEntityExist(vehicle) then
return
end
if NetworkGetEntityOwner(vehicle) == PlayerId() then
ESX.Game.SetVehicleProperties(vehicle, value)
end
end)
+5 -7
View File
@@ -69,14 +69,12 @@ function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb)
ESX.GetVehicleType(vehicleModel, xPlayer.id, function(vehicleType)
if vehicleType then
local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords, heading)
if DoesEntityExist(createdVehicle) then
local networkId = NetworkGetNetworkIdFromEntity(createdVehicle)
vehicleProperties.NetId = networkId
Entity(createdVehicle).state:set('VehicleProperties', vehicleProperties, true)
cb(networkId)
else
print('[^1ERROR^7] Unfortunately, this vehicle has not spawned')
if not DoesEntityExist(createdVehicle) then
return print('[^1ERROR^7] Unfortunately, this vehicle has not spawned')
end
Entity(createdVehicle).state:set('VehicleProperties', vehicleProperties, true)
cb(NetworkGetNetworkIdFromEntity(createdVehicle))
else
print(('[^1ERROR^7] Tried to spawn invalid vehicle - ^5%s^7!'):format(model))
end