@@ -26,25 +26,37 @@ if Config.Command.enable then
2626end
2727
2828toggleEngine = function(bypass)
29- local playerPed = PlayerPedId()
29+ local playerPed = MSK.Player.ped
3030 local canToggleEngine = true
3131
3232 if not IsPedInAnyVehicle(playerPed) then return end
33- local vehicle = GetVehiclePedIsIn(playerPed)
33+ local vehicle = MSK.Player.vehicle
3434
3535 if not Config.EngineFromSecondSeat and GetPedInVehicleSeat(vehicle, -1) ~= playerPed then return end
3636
3737 if Config.EngineFromSecondSeat then
38+ if IsVehicleSeatFree(vehicle, -1) then return end
39+
3840 if playerPed ~= GetPedInVehicleSeat(vehicle, -1) and playerPed ~= GetPedInVehicleSeat(vehicle, 0) then
3941 return
4042 end
41-
42- if IsVehicleSeatFree(vehicle, -1) then return end
4343 end
4444
4545 if GetVehicleDamaged(vehicle) then
4646 return Config.Notification(nil, Translation[Config.Locale]['veh_is_damaged'], 'error')
4747 end
48+
49+ if IsAnyWheelClamped(vehicle) then
50+ return Config.Notification(nil, Translation[Config.Locale]['vehicle_wheel_clamped'], 'error')
51+ end
52+
53+ -- Cheat protection, remove this if you don't care
54+ if bypass then
55+ if not MSK.IsAceAllowed(Config.AdminCommand.command) then
56+ return Config.Notification(nil, 'You don\'t have permission to bypass the engine start/stop!', 'error')
57+ end
58+ end
59+ -- Cheat protection, remove this if you don't care
4860
4961 if not bypass then
5062 local isBlacklisted = IsVehicleBlacklisted(vehicle)
@@ -83,7 +95,7 @@ RegisterNetEvent('msk_enginetoggle:toggleEngine', toggleEngine)
8395
8496AddEventHandler('msk_enginetoggle:enteringVehicle', function(vehicle, plate, seat, netId, isEngineOn, isDamaged)
8597 logging('debug', 'enteringVehicle', vehicle, plate, seat, netId, isEngineOn, isDamaged)
86- local playerPed = PlayerPedId()
98+ local playerPed = MSK.Player.ped
8799 local vehicleModel = GetEntityModel(vehicle)
88100
89101 if seat == -1 and not isEngineOn then
99111
100112AddEventHandler('msk_enginetoggle:enteredVehicle', function(vehicle, plate, seat, netId, isEngineOn, isDamaged)
101113 logging('debug', 'enteredVehicle', vehicle, plate, seat, netId, isEngineOn, isDamaged)
102- local playerPed = PlayerPedId()
114+ local playerPed = MSK.Player.ped
103115 local vehicleModel = GetEntityModel(vehicle)
104116
105117 if seat == -1 and not isEngineOn then
118130AddEventHandler('msk_enginetoggle:exitedVehicle', function(vehicle, plate, seat, netId, isEngineOn, isDamaged)
119131 logging('debug', 'exitedVehicle', vehicle, plate, seat, netId, isEngineOn, isDamaged)
120132 if not vehicle or not DoesEntityExist(vehicle) then return end
121- local playerPed = PlayerPedId()
133+ local playerPed = MSK.Player.ped
122134 local vehicleModel = GetEntityModel(vehicle)
123135
124136 if seat == -1 and not isEngineOn then
129141CreateThread(function()
130142 while true do
131143 local sleep = 500
132- local playerPed = PlayerPedId()
144+ local playerPed = MSK.Player.ped
133145 local vehiclePool = GetGamePool('CVehicle')
134146
135147 for i = 1, #vehiclePool do
163175CreateThread(function()
164176 while true do
165177 local sleep = 200
166- local playerPed = PlayerPedId()
178+ local playerPed = MSK.Player.ped
167179
168180 if not isInVehicle and not IsPlayerDead(PlayerId()) then
169181 if DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not isEnteringVehicle then
@@ -183,7 +195,7 @@ CreateThread(function()
183195 elseif IsPedInAnyVehicle(playerPed, false) then
184196 isEnteringVehicle = false
185197 isInVehicle = true
186- currentVehicle.vehicle = GetVehiclePedIsIn(playerPed)
198+ currentVehicle.vehicle = GetVehiclePedIsIn(playerPed, false )
187199 currentVehicle.plate = GetVehicleNumberPlateText(currentVehicle.vehicle)
188200 currentVehicle.seat = GetPedVehicleSeat(playerPed, currentVehicle.vehicle)
189201 currentVehicle.netId = VehToNet(currentVehicle.vehicle)
@@ -226,7 +238,7 @@ exports('SetEngineState', SetEngineState) -- Do not use this Export if you don't
226238RegisterNetEvent('msk_enginetoggle:setEngineState', SetEngineState) -- Do not use this Event if you don't know what you are doing!!!
227239
228240GetEngineState = function(vehicle)
229- if not vehicle then vehicle = GetVehiclePedIsIn(PlayerPedId()) end
241+ if not vehicle then vehicle = MSK.Player.vehicle end
230242 assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetEngineState')
231243
232244 if Entity(vehicle).state.isEngineOn == nil then
@@ -235,7 +247,6 @@ GetEngineState = function(vehicle)
235247 return Entity(vehicle).state.isEngineOn
236248end
237249exports('GetEngineState', GetEngineState)
238- exports('getEngineState', GetEngineState) -- Support for old versions
239250
240251SetVehicleDamaged = function(vehicle, state)
241252 assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function SetVehicleDamaged')
@@ -246,20 +257,18 @@ SetVehicleDamaged = function(vehicle, state)
246257 if state then
247258 SetEngineState(vehicle, false, true)
248259
249- local playerPed = PlayerPedId()
250- if IsPedInAnyVehicle(playerPed) then
251- if vehicle == GetVehiclePedIsIn(playerPed) then
260+ if IsPedInAnyVehicle(MSK.Player.ped) then
261+ if vehicle == MSK.Player.vehicle then
252262 CreateThread(disableDrive)
253263 end
254264 end
255265 end
256266end
257267exports('SetVehicleDamaged', SetVehicleDamaged)
258- exports('setVehicleDamaged', SetVehicleDamaged) -- Support for old versions
259268RegisterNetEvent('msk_enginetoggle:setVehicleDamaged', SetVehicleDamaged)
260269
261270GetVehicleDamaged = function(vehicle)
262- if not vehicle then vehicle = GetVehiclePedIsIn(PlayerPedId()) end
271+ if not vehicle then vehicle = MSK.Player.vehicle end
263272 assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetVehicleDamaged')
264273
265274 if Entity(vehicle).state.isDamaged == nil then
@@ -268,13 +277,12 @@ GetVehicleDamaged = function(vehicle)
268277 return Entity(vehicle).state.isDamaged
269278end
270279exports('GetVehicleDamaged', GetVehicleDamaged)
271- exports('getVehicleDamaged', GetVehicleDamaged) -- Support for old versions
272280
273281disableDrive = function()
274282 if disabledDrive then return end
275283 disabledDrive = true
276284
277- while isInVehicle and disabledDrive and GetPedVehicleSeat() == -1 and not currentVehicle.isEngineOn do
285+ while isInVehicle and disabledDrive and MSK.Player.seat == -1 and not currentVehicle.isEngineOn do
278286 local sleep = 1
279287
280288 DisableControlAction(0, 71, true) -- W (accelerate)
0 commit comments