diff --git a/client/events.lua b/client/events.lua index f08e0195e..52d7ceb95 100644 --- a/client/events.lua +++ b/client/events.lua @@ -277,3 +277,52 @@ end) RegisterNetEvent('QBCore:Client:SharedUpdate', function(table) QBCore.Shared = table end) + +if GetResourceState('baseevents') ~= 'started' then + local isInVehicle = false + local isEnteringVehicle = false + local currentVehicle = 0 + local currentSeat = 0 + + CreateThread(function() + while true do + local ped = PlayerPedId() + if not isInVehicle and not IsPlayerDead(PlayerId()) then + if DoesEntityExist(GetVehiclePedIsTryingToEnter(ped)) and not isEnteringVehicle then + local vehicle = GetVehiclePedIsTryingToEnter(ped) + local seat = GetSeatPedIsTryingToEnter(ped) + local netId = VehToNet(vehicle) + isEnteringVehicle = true + TriggerServerEvent('baseevents:enteringVehicle', vehicle, seat, GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)), netId) + elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(ped)) and not IsPedInAnyVehicle(ped, true) and isEnteringVehicle then + TriggerServerEvent('baseevents:enteringAborted') + isEnteringVehicle = false + elseif IsPedInAnyVehicle(ped, false) then + isEnteringVehicle = false + isInVehicle = true + currentVehicle = GetVehiclePedIsUsing(ped) + currentSeat = GetPedVehicleSeat(ped) + local netId = VehToNet(currentVehicle) + TriggerServerEvent('baseevents:enteredVehicle', currentVehicle, currentSeat, GetDisplayNameFromVehicleModel(GetEntityModel(currentVehicle)), netId) + end + elseif isInVehicle then + if not IsPedInAnyVehicle(ped, false) or IsPlayerDead(PlayerId()) then + local netId = VehToNet(currentVehicle) + TriggerServerEvent('baseevents:leftVehicle', currentVehicle, currentSeat, GetDisplayNameFromVehicleModel(GetEntityModel(currentVehicle)), netId) + isInVehicle = false + currentVehicle = 0 + currentSeat = 0 + end + end + Wait(50) + end + end) + + function GetPedVehicleSeat(ped) + local vehicle = GetVehiclePedIsIn(ped, false) + for i=-2,GetVehicleMaxNumberOfPassengers(vehicle) do + if(GetPedInVehicleSeat(vehicle, i) == ped) then return i end + end + return -2 + end +end