From df21f8a4cc5efc545711ca820d77719e2a42eb68 Mon Sep 17 00:00:00 2001 From: TheFantomas <117121911+TheFantomas@users.noreply.github.com> Date: Tue, 21 Feb 2023 18:50:52 +0100 Subject: [PATCH 1/3] refactor(es_extended/client/main.lua): VehicleProperties better way --- [core]/es_extended/client/main.lua | 38 +++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index e197e46b..fc2addcd 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -163,23 +163,29 @@ AddEventHandler('esx:restoreLoadout', function() 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 + if not value then + return end + + local netId = bagName:gsub('entity:', '') + local timer = GetGameTimer() + while not NetworkDoesEntityExistWithNetworkId(tonumber(netId)) do + Wait(0) + if GetGameTimer() - timer > 10000 then + return + end + end + + local vehicle = NetToVeh(tonumber(netId)) + local timer = GetGameTimer() + while NetworkGetEntityOwner(vehicle) ~= PlayerId() do + Wait(0) + if GetGameTimer() - timer > 10000 then + return + end + end + + ESX.Game.SetVehicleProperties(vehicle, value) end) RegisterNetEvent('esx:setAccountMoney') From ddd86526f21eb85fae057d2eecf7cf1bde7b9a15 Mon Sep 17 00:00:00 2001 From: TheFantomas <117121911+TheFantomas@users.noreply.github.com> Date: Tue, 21 Feb 2023 18:51:46 +0100 Subject: [PATCH 2/3] netId is already not needed --- [core]/es_extended/server/onesync.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/[core]/es_extended/server/onesync.lua b/[core]/es_extended/server/onesync.lua index 168a7bee..f43acdd7 100644 --- a/[core]/es_extended/server/onesync.lua +++ b/[core]/es_extended/server/onesync.lua @@ -74,7 +74,6 @@ function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) end local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) - vehicleProperties.NetId = networkId Entity(createdVehicle).state:set('VehicleProperties', vehicleProperties, true) cb(networkId) else From 4933b078110530cc093b3d472b9806f902ca70b6 Mon Sep 17 00:00:00 2001 From: TheFantomas <117121911+TheFantomas@users.noreply.github.com> Date: Tue, 21 Feb 2023 19:13:18 +0100 Subject: [PATCH 3/3] Credits --- [core]/es_extended/client/main.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index fc2addcd..4dfff72c 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -162,6 +162,7 @@ AddEventHandler('esx:restoreLoadout', function() end end) +-- Credit: https://github.com/LukeWasTakenn, https://github.com/LukeWasTakenn/luke_garages/blob/master/client/client.lua#L331-L352 AddStateBagChangeHandler('VehicleProperties', nil, function(bagName, key, value) if not value then return