From fbeea28607636cdba3b55b044d7c14db00f389a7 Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Sat, 18 May 2024 12:24:12 +0200 Subject: [PATCH] :wrench: fix and refactor ToggleVehicleStatus feature --- [core]/es_extended/client/modules/actions.lua | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 3d263b1f..a495c3a6 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -24,6 +24,11 @@ local function GetData(vehicle) return displayName, netId end +local function ToggleVehicleStatus(isInVehicle, seat) + ESX.SetPlayerData("vehicle", isInVehicle) + ESX.SetPlayerData("seat", seat) +end + CreateThread(function() while not ESX.PlayerLoaded do Wait(200) end while true do @@ -64,15 +69,13 @@ CreateThread(function() isEnteringVehicle = true TriggerEvent("esx:enteringVehicle", vehicle, plate, seat, netId) TriggerServerEvent("esx:enteringVehicle", plate, seat, netId) - ESX.SetPlayerData("vehicle", vehicle) - ESX.SetPlayerData("seat", seat) + ToggleVehicleStatus(vehicle, seat) elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not IsPedInAnyVehicle(playerPed, true) and isEnteringVehicle then -- vehicle entering aborted TriggerEvent("esx:enteringVehicleAborted") TriggerServerEvent("esx:enteringVehicleAborted") isEnteringVehicle = false - ESX.SetPlayerData("vehicle", false) - ESX.SetPlayerData("seat", false) + ToggleVehicleStatus(false, false) elseif IsPedInAnyVehicle(playerPed, false) then -- suddenly appeared in a vehicle, possible teleport isEnteringVehicle = false @@ -83,8 +86,7 @@ CreateThread(function() current.displayName, current.netId = GetData(current.vehicle) TriggerEvent("esx:enteredVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId) TriggerServerEvent("esx:enteredVehicle", current.plate, current.seat, current.displayName, current.netId) - ESX.SetPlayerData("vehicle", vehicle) - ESX.SetPlayerData("seat", seat) + ToggleVehicleStatus(current.vehicle, current.seat) end elseif isInVehicle then if not IsPedInAnyVehicle(playerPed, false) or IsPlayerDead(PlayerId()) then @@ -93,8 +95,7 @@ CreateThread(function() TriggerServerEvent("esx:exitedVehicle", current.plate, current.seat, current.displayName, current.netId) isInVehicle = false current = {} - ESX.SetPlayerData("vehicle", false) - ESX.SetPlayerData("seat", false) + ToggleVehicleStatus(false,false) end end Wait(200)