@@ -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