@@ -44,13 +44,11 @@ toggleEngine = function(bypass)
44
44
return Config .Notification (nil , Translation [Config .Locale ][' key_nokey' ], ' error' )
45
45
end
46
46
47
- if getVehicleDamaged (currVehicle ) then return end
47
+ if GetVehicleDamaged (currVehicle ) then return end
48
48
local isEngineOn = GetIsVehicleEngineRunning (currVehicle )
49
49
50
- SetVehicleEngineOn (currVehicle , not isEngineOn , false , true )
50
+ SetEngineState (currVehicle , not isEngineOn , true )
51
51
SetVehicleKeepEngineOnWhenAbandoned (currVehicle , not isEngineOn )
52
- SetVehicleUndriveable (currVehicle , isEngineOn )
53
- setEngineState (currVehicle , not isEngineOn )
54
52
55
53
if isEngineOn then
56
54
CreateThread (disableDrive )
@@ -72,12 +70,11 @@ AddEventHandler('msk_enginetoggle:enteringVehicle', function(vehicle, plate, sea
72
70
logging (' SetVehicleUndriveable' )
73
71
74
72
if not Config .EngineOnAtEnter then
75
- SetVehicleUndriveable (vehicle , true )
76
- SetVehicleEngineOn (vehicle , false , false , true )
73
+ SetEngineState (vehicle , false , true )
77
74
SetVehicleKeepEngineOnWhenAbandoned (vehicle , false )
78
75
end
79
76
elseif seat == - 1 and isEngineOn and (IsThisModelAHeli (vehicleModel ) or IsThisModelAPlane (vehicleModel )) then
80
- SetVehicleEngineOn (vehicle , true , false , true )
77
+ SetEngineState (vehicle , true , true )
81
78
SetVehicleKeepEngineOnWhenAbandoned (vehicle , true )
82
79
SetHeliBladesFullSpeed (vehicle )
83
80
end
@@ -92,17 +89,15 @@ AddEventHandler('msk_enginetoggle:enteredVehicle', function(vehicle, plate, seat
92
89
logging (' SetVehicleUndriveable' )
93
90
94
91
if not Config .EngineOnAtEnter then
95
- CreateThread (disableDrive )
96
- SetVehicleUndriveable (vehicle , true )
97
- SetVehicleEngineOn (vehicle , false , false , true )
92
+ SetEngineState (vehicle , false , true )
98
93
SetVehicleKeepEngineOnWhenAbandoned (vehicle , false )
94
+ CreateThread (disableDrive )
99
95
else
100
- SetVehicleUndriveable (vehicle , false )
101
- SetVehicleEngineOn (vehicle , true , false , true )
96
+ SetEngineState (vehicle , true , true )
102
97
SetVehicleKeepEngineOnWhenAbandoned (vehicle , true )
103
98
end
104
99
elseif seat == - 1 and isEngineOn and (IsThisModelAHeli (vehicleModel ) or IsThisModelAPlane (vehicleModel )) then
105
- SetVehicleEngineOn (vehicle , true , false , true )
100
+ SetEngineState (vehicle , true , true )
106
101
SetVehicleKeepEngineOnWhenAbandoned (vehicle , true )
107
102
SetHeliBladesFullSpeed (vehicle )
108
103
end
@@ -115,8 +110,7 @@ AddEventHandler('msk_enginetoggle:exitedVehicle', function(vehicle, plate, seat,
115
110
116
111
if seat == - 1 and not isEngineOn then
117
112
logging (' SetVehicleUndriveable' )
118
- SetVehicleUndriveable (vehicle , true )
119
- SetVehicleEngineOn (vehicle , false , false , true )
113
+ SetEngineState (vehicle , false , true )
120
114
SetVehicleKeepEngineOnWhenAbandoned (vehicle , false )
121
115
end
122
116
end )
@@ -130,12 +124,12 @@ CreateThread(function()
130
124
for i = 1 , # vehiclePool do
131
125
local vehicle = vehiclePool [i ]
132
126
133
- if DoesEntityExist (vehicle ) and not getVehicleDamaged (vehicle ) and IsVehicleSeatFree (vehicle , - 1 ) and (not IsPedInAnyVehicle (playerPed , false ) or (IsPedInAnyVehicle (playerPed , false ) and vehicle ~= GetVehiclePedIsIn (playerPed , false ))) then
127
+ if DoesEntityExist (vehicle ) and not GetVehicleDamaged (vehicle ) and IsVehicleSeatFree (vehicle , - 1 ) and (not IsPedInAnyVehicle (playerPed , false ) or (IsPedInAnyVehicle (playerPed , false ) and vehicle ~= GetVehiclePedIsIn (playerPed , false ))) then
134
128
local vehicleModel = GetEntityModel (vehicle )
135
129
136
130
if (IsThisModelAHeli (vehicleModel ) or IsThisModelAPlane (vehicleModel )) then
137
- if getEngineState (vehicle ) then
138
- SetVehicleEngineOn (vehicle , true , false , true )
131
+ if GetEngineState (vehicle ) then
132
+ SetEngineState (vehicle , true , true )
139
133
SetVehicleKeepEngineOnWhenAbandoned (vehicle , true )
140
134
SetHeliBladesFullSpeed (vehicle )
141
135
end
@@ -159,8 +153,8 @@ CreateThread(function()
159
153
local plate = GetVehicleNumberPlateText (vehicle )
160
154
local seat = GetSeatPedIsTryingToEnter (playerPed )
161
155
local netId = VehToNet (vehicle )
162
- local isEngineOn = getEngineState (vehicle )
163
- local isDamaged = getVehicleDamaged (vehicle )
156
+ local isEngineOn = GetEngineState (vehicle )
157
+ local isDamaged = GetVehicleDamaged (vehicle )
164
158
isEnteringVehicle = true
165
159
TriggerEvent (' msk_enginetoggle:enteringVehicle' , vehicle , plate , seat , netId , isEngineOn , isDamaged )
166
160
TriggerServerEvent (' msk_enginetoggle:enteringVehicle' , plate , seat , netId , isEngineOn , isDamaged )
@@ -175,8 +169,8 @@ CreateThread(function()
175
169
currentVehicle .plate = GetVehicleNumberPlateText (currentVehicle .vehicle )
176
170
currentVehicle .seat = GetPedVehicleSeat (playerPed , currentVehicle .vehicle )
177
171
currentVehicle .netId = VehToNet (currentVehicle .vehicle )
178
- currentVehicle .isEngineOn = getEngineState (currentVehicle .vehicle )
179
- currentVehicle .isDamaged = getVehicleDamaged (currentVehicle .vehicle )
172
+ currentVehicle .isEngineOn = GetEngineState (currentVehicle .vehicle )
173
+ currentVehicle .isDamaged = GetVehicleDamaged (currentVehicle .vehicle )
180
174
TriggerEvent (' msk_enginetoggle:enteredVehicle' , currentVehicle .vehicle , currentVehicle .plate , currentVehicle .seat , currentVehicle .netId , currentVehicle .isEngineOn , currentVehicle .isDamaged )
181
175
TriggerServerEvent (' msk_enginetoggle:enteredVehicle' , currentVehicle .plate , currentVehicle .seat , currentVehicle .netId ,currentVehicle .isEngineOn , currentVehicle .isDamaged )
182
176
end
@@ -193,59 +187,84 @@ CreateThread(function()
193
187
end
194
188
end )
195
189
196
- setEngineState = function (vehicle , state )
197
- logging (' setEngineState' , vehicle , state )
190
+ SetEngineState = function (vehicle , state , engine )
191
+ if not DoesEntityExist (vehicle ) then return end
192
+ logging (' SetEngineState' , vehicle , state )
193
+
198
194
currentVehicle .isEngineOn = state
199
- Entity (vehicle ).state .isEngineOn = state
195
+ Entity (vehicle ).state :set (' isEngineOn' , state , true )
196
+
197
+ if not engine then return end
198
+ SetVehicleEngineOn (vehicle , state , false , true )
199
+ SetVehicleUndriveable (vehicle , not state )
200
200
end
201
+ exports (' SetEngineState' , SetEngineState )
202
+
203
+ GetEngineState = function (vehicle )
204
+ if not vehicle then vehicle = GetVehiclePedIsIn (PlayerPedId ()) end
205
+ if not DoesEntityExist (vehicle ) then return end
201
206
202
- getEngineState = function (vehicle )
203
207
if Entity (vehicle ).state .isEngineOn == nil then
204
- Entity (vehicle ). state . isEngineOn = GetIsVehicleEngineRunning (vehicle )
208
+ SetEngineState (vehicle , GetIsVehicleEngineRunning (vehicle ), false )
205
209
end
206
210
return Entity (vehicle ).state .isEngineOn
207
211
end
208
- exports (' getEngineState' , getEngineState )
212
+ exports (' GetEngineState' , GetEngineState )
213
+ exports (' getEngineState' , GetEngineState ) -- Support for old versions
214
+
215
+ SetVehicleDamaged = function (vehicle , state )
216
+ if not DoesEntityExist (vehicle ) then return end
217
+ logging (' SetVehicleDamaged' , vehicle , state )
209
218
210
- setVehicleDamaged = function (vehicle , state )
211
- logging (' setVehicleDamaged' , vehicle , state )
212
219
currentVehicle .isDamaged = state
213
- Entity (vehicle ).state . isDamaged = state
220
+ Entity (vehicle ).state : set ( ' isDamaged' , state , true )
214
221
end
215
- exports (' setVehicleDamaged' , setVehicleDamaged )
216
- RegisterNetEvent (' msk_enginetoggle:setVehicleDamaged' , setVehicleDamaged )
222
+ exports (' SetVehicleDamaged' , SetVehicleDamaged )
223
+ exports (' setVehicleDamaged' , SetVehicleDamaged ) -- Support for old versions
224
+ RegisterNetEvent (' msk_enginetoggle:setVehicleDamaged' , SetVehicleDamaged )
225
+
226
+ GetVehicleDamaged = function (vehicle )
227
+ if not vehicle then vehicle = GetVehiclePedIsIn (PlayerPedId ()) end
228
+ if not DoesEntityExist (vehicle ) then return end
217
229
218
- getVehicleDamaged = function (vehicle )
219
230
if Entity (vehicle ).state .isDamaged == nil then
220
- Entity (vehicle ). state . isDamaged = false
231
+ SetVehicleDamaged (vehicle , false )
221
232
end
222
233
return Entity (vehicle ).state .isDamaged
223
234
end
224
- exports (' getVehicleDamaged' , getVehicleDamaged )
235
+ exports (' GetVehicleDamaged' , GetVehicleDamaged )
236
+ exports (' getVehicleDamaged' , GetVehicleDamaged ) -- Support for old versions
237
+
238
+ GetPedVehicleSeat = function (playerPed , vehicle )
239
+ if not playerPed then playerPed = PlayerPedId () end
240
+ if not vehicle then vehicle = GetVehiclePedIsIn (playerPed ) end
241
+ if not DoesEntityExist (vehicle ) then return end
242
+
243
+ for i = - 1 , 16 do
244
+ if (GetPedInVehicleSeat (vehicle , i ) == playerPed ) then
245
+ return i
246
+ end
247
+ end
248
+ return - 1
249
+ end
225
250
226
251
disableDrive = function ()
227
252
if disabledDrive then return end
228
253
disabledDrive = true
229
254
230
- while isInVehicle and disabledDrive and currentVehicle . seat == - 1 and not currentVehicle .isEngineOn do
255
+ while isInVehicle and disabledDrive and GetPedVehicleSeat () == - 1 and not currentVehicle .isEngineOn do
231
256
local sleep = 1
232
257
233
- DisableControlAction (0 , 71 , true )
258
+ DisableControlAction (0 , 71 , true ) -- W
259
+ DisableControlAction (0 , 72 , true ) -- S
234
260
235
261
Wait (sleep )
236
262
end
237
263
238
264
disabledDrive = false
239
265
end
240
266
241
- GetPedVehicleSeat = function (ped , vehicle )
242
- for i = - 1 , 16 do
243
- if (GetPedInVehicleSeat (vehicle , i ) == ped ) then return i end
244
- end
245
- return - 1
246
- end
247
-
248
267
logging = function (...)
249
268
if not Config .Debug then return end
250
- print (' [DEBUG ]' , ... )
269
+ print (' [^3DEBUG^0 ]' , ... )
251
270
end
0 commit comments