@@ -26,25 +26,37 @@ if Config.Command.enable then
26
26
end
27
27
28
28
toggleEngine = function (bypass )
29
- local playerPed = PlayerPedId ()
29
+ local playerPed = MSK . Player . ped
30
30
local canToggleEngine = true
31
31
32
32
if not IsPedInAnyVehicle (playerPed ) then return end
33
- local vehicle = GetVehiclePedIsIn ( playerPed )
33
+ local vehicle = MSK . Player . vehicle
34
34
35
35
if not Config .EngineFromSecondSeat and GetPedInVehicleSeat (vehicle , - 1 ) ~= playerPed then return end
36
36
37
37
if Config .EngineFromSecondSeat then
38
+ if IsVehicleSeatFree (vehicle , - 1 ) then return end
39
+
38
40
if playerPed ~= GetPedInVehicleSeat (vehicle , - 1 ) and playerPed ~= GetPedInVehicleSeat (vehicle , 0 ) then
39
41
return
40
42
end
41
-
42
- if IsVehicleSeatFree (vehicle , - 1 ) then return end
43
43
end
44
44
45
45
if GetVehicleDamaged (vehicle ) then
46
46
return Config .Notification (nil , Translation [Config .Locale ][' veh_is_damaged' ], ' error' )
47
47
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
48
60
49
61
if not bypass then
50
62
local isBlacklisted = IsVehicleBlacklisted (vehicle )
@@ -83,7 +95,7 @@ RegisterNetEvent('msk_enginetoggle:toggleEngine', toggleEngine)
83
95
84
96
AddEventHandler (' msk_enginetoggle:enteringVehicle' , function (vehicle , plate , seat , netId , isEngineOn , isDamaged )
85
97
logging (' debug' , ' enteringVehicle' , vehicle , plate , seat , netId , isEngineOn , isDamaged )
86
- local playerPed = PlayerPedId ()
98
+ local playerPed = MSK . Player . ped
87
99
local vehicleModel = GetEntityModel (vehicle )
88
100
89
101
if seat == - 1 and not isEngineOn then
99
111
100
112
AddEventHandler (' msk_enginetoggle:enteredVehicle' , function (vehicle , plate , seat , netId , isEngineOn , isDamaged )
101
113
logging (' debug' , ' enteredVehicle' , vehicle , plate , seat , netId , isEngineOn , isDamaged )
102
- local playerPed = PlayerPedId ()
114
+ local playerPed = MSK . Player . ped
103
115
local vehicleModel = GetEntityModel (vehicle )
104
116
105
117
if seat == - 1 and not isEngineOn then
118
130
AddEventHandler (' msk_enginetoggle:exitedVehicle' , function (vehicle , plate , seat , netId , isEngineOn , isDamaged )
119
131
logging (' debug' , ' exitedVehicle' , vehicle , plate , seat , netId , isEngineOn , isDamaged )
120
132
if not vehicle or not DoesEntityExist (vehicle ) then return end
121
- local playerPed = PlayerPedId ()
133
+ local playerPed = MSK . Player . ped
122
134
local vehicleModel = GetEntityModel (vehicle )
123
135
124
136
if seat == - 1 and not isEngineOn then
129
141
CreateThread (function ()
130
142
while true do
131
143
local sleep = 500
132
- local playerPed = PlayerPedId ()
144
+ local playerPed = MSK . Player . ped
133
145
local vehiclePool = GetGamePool (' CVehicle' )
134
146
135
147
for i = 1 , # vehiclePool do
163
175
CreateThread (function ()
164
176
while true do
165
177
local sleep = 200
166
- local playerPed = PlayerPedId ()
178
+ local playerPed = MSK . Player . ped
167
179
168
180
if not isInVehicle and not IsPlayerDead (PlayerId ()) then
169
181
if DoesEntityExist (GetVehiclePedIsTryingToEnter (playerPed )) and not isEnteringVehicle then
@@ -183,7 +195,7 @@ CreateThread(function()
183
195
elseif IsPedInAnyVehicle (playerPed , false ) then
184
196
isEnteringVehicle = false
185
197
isInVehicle = true
186
- currentVehicle .vehicle = GetVehiclePedIsIn (playerPed )
198
+ currentVehicle .vehicle = GetVehiclePedIsIn (playerPed , false )
187
199
currentVehicle .plate = GetVehicleNumberPlateText (currentVehicle .vehicle )
188
200
currentVehicle .seat = GetPedVehicleSeat (playerPed , currentVehicle .vehicle )
189
201
currentVehicle .netId = VehToNet (currentVehicle .vehicle )
@@ -226,7 +238,7 @@ exports('SetEngineState', SetEngineState) -- Do not use this Export if you don't
226
238
RegisterNetEvent (' msk_enginetoggle:setEngineState' , SetEngineState ) -- Do not use this Event if you don't know what you are doing!!!
227
239
228
240
GetEngineState = function (vehicle )
229
- if not vehicle then vehicle = GetVehiclePedIsIn ( PlayerPedId ()) end
241
+ if not vehicle then vehicle = MSK . Player . vehicle end
230
242
assert (vehicle and DoesEntityExist (vehicle ), ' Parameter "vehicle" is nil or the Vehicle does not exist on function GetEngineState' )
231
243
232
244
if Entity (vehicle ).state .isEngineOn == nil then
@@ -235,7 +247,6 @@ GetEngineState = function(vehicle)
235
247
return Entity (vehicle ).state .isEngineOn
236
248
end
237
249
exports (' GetEngineState' , GetEngineState )
238
- exports (' getEngineState' , GetEngineState ) -- Support for old versions
239
250
240
251
SetVehicleDamaged = function (vehicle , state )
241
252
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)
246
257
if state then
247
258
SetEngineState (vehicle , false , true )
248
259
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
252
262
CreateThread (disableDrive )
253
263
end
254
264
end
255
265
end
256
266
end
257
267
exports (' SetVehicleDamaged' , SetVehicleDamaged )
258
- exports (' setVehicleDamaged' , SetVehicleDamaged ) -- Support for old versions
259
268
RegisterNetEvent (' msk_enginetoggle:setVehicleDamaged' , SetVehicleDamaged )
260
269
261
270
GetVehicleDamaged = function (vehicle )
262
- if not vehicle then vehicle = GetVehiclePedIsIn ( PlayerPedId ()) end
271
+ if not vehicle then vehicle = MSK . Player . vehicle end
263
272
assert (vehicle and DoesEntityExist (vehicle ), ' Parameter "vehicle" is nil or the Vehicle does not exist on function GetVehicleDamaged' )
264
273
265
274
if Entity (vehicle ).state .isDamaged == nil then
@@ -268,13 +277,12 @@ GetVehicleDamaged = function(vehicle)
268
277
return Entity (vehicle ).state .isDamaged
269
278
end
270
279
exports (' GetVehicleDamaged' , GetVehicleDamaged )
271
- exports (' getVehicleDamaged' , GetVehicleDamaged ) -- Support for old versions
272
280
273
281
disableDrive = function ()
274
282
if disabledDrive then return end
275
283
disabledDrive = true
276
284
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
278
286
local sleep = 1
279
287
280
288
DisableControlAction (0 , 71 , true ) -- W (accelerate)
0 commit comments