From 36fcdf5b434671f17d71107e4eadf74d9f2cc0c0 Mon Sep 17 00:00:00 2001 From: Csoki Date: Thu, 9 Feb 2023 16:23:22 +0100 Subject: [PATCH] refactor(es_extended/onesync): 'VehicleProperties' statebag --- [core]/es_extended/client/main.lua | 29 +++++++++++---------------- [core]/es_extended/server/onesync.lua | 12 +++++------ 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 32fe238a..0767cd40 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -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) diff --git a/[core]/es_extended/server/onesync.lua b/[core]/es_extended/server/onesync.lua index 60ab1d56..ffcfa7d7 100644 --- a/[core]/es_extended/server/onesync.lua +++ b/[core]/es_extended/server/onesync.lua @@ -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