mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 01:08:54 +00:00
🔧 fix and refactor ToggleVehicleStatus feature
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user