Skip to content

Commit f88e448

Browse files
committed
Update v4.3.3
1 parent 13118b5 commit f88e448

File tree

10 files changed

+135
-131
lines changed

10 files changed

+135
-131
lines changed

client/hotwire.lua

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ if Config.EnableLockpick and Config.LockpickHotkey.enable then
1212
end
1313

1414
toggleLockpick = function()
15-
local playerPed = PlayerPedId()
16-
local coords = GetEntityCoords(playerPed)
15+
local playerPed = MSK.Player.ped
16+
local coords = MSK.Player.coords
1717

1818
if IsPedInAnyVehicle(playerPed, false) then return end
1919
if not IsAnyVehicleNearPoint(coords.x, coords.y, coords.z, 5.0) then return end
@@ -110,8 +110,8 @@ toggleLockpick = function()
110110
TaskEnterVehicle(playerPed, vehicle, 10.0, -1, 1.0, 1, 0)
111111
Wait(5000)
112112

113-
local playerPed = PlayerPedId()
114-
local vehicle = GetVehiclePedIsIn(playerPed)
113+
local playerPed = MSK.Player.ped
114+
local vehicle = MSK.Player.vehicle
115115
local plate = GetVehicleNumberPlateText(vehicle)
116116

117117
if Config.VehicleKeys.enable or Config.LockpickSettings.enableSearchKey then
@@ -193,14 +193,11 @@ exports('toggleHotwire', toggleLockpick) -- Support for old Versions
193193
RegisterNetEvent('msk_enginetoggle:toggleLockpick', toggleLockpick)
194194

195195
RegisterNetEvent('msk_enginetoggle:installAlarmStage', function(stage)
196-
local playerPed = PlayerPedId()
197-
198-
if not IsPedInAnyVehicle(playerPed, false) then
199-
Config.Notification(nil, Translation[Config.Locale]['sit_in_vehicle'], 'error')
200-
return
196+
if not IsPedInAnyVehicle(MSK.Player.ped, false) then
197+
return Config.Notification(nil, Translation[Config.Locale]['sit_in_vehicle'], 'error')
201198
end
202199

203-
local vehicle = GetVehiclePedIsIn(playerPed)
200+
local vehicle = MSK.Player.vehicle
204201
local plate = GetVehicleNumberPlateText(vehicle)
205202

206203
Config.progressBar(1000 * 15, Translation[Config.Locale]['install_alarm'])

client/main.lua

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,37 @@ if Config.Command.enable then
2626
end
2727

2828
toggleEngine = 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

8496
AddEventHandler('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
@@ -99,7 +111,7 @@ end)
99111

100112
AddEventHandler('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
@@ -118,7 +130,7 @@ end)
118130
AddEventHandler('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
@@ -129,7 +141,7 @@ end)
129141
CreateThread(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
@@ -163,7 +175,7 @@ end)
163175
CreateThread(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
226238
RegisterNetEvent('msk_enginetoggle:setEngineState', SetEngineState) -- Do not use this Event if you don't know what you are doing!!!
227239

228240
GetEngineState = 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
236248
end
237249
exports('GetEngineState', GetEngineState)
238-
exports('getEngineState', GetEngineState) -- Support for old versions
239250

240251
SetVehicleDamaged = 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
256266
end
257267
exports('SetVehicleDamaged', SetVehicleDamaged)
258-
exports('setVehicleDamaged', SetVehicleDamaged) -- Support for old versions
259268
RegisterNetEvent('msk_enginetoggle:setVehicleDamaged', SetVehicleDamaged)
260269

261270
GetVehicleDamaged = 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
269278
end
270279
exports('GetVehicleDamaged', GetVehicleDamaged)
271-
exports('getVehicleDamaged', GetVehicleDamaged) -- Support for old versions
272280

273281
disableDrive = 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)

client/steeringwheel.lua

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ if Config.SaveSteeringAngle then
22
CreateThread(function()
33
while true do
44
local sleep = 500
5-
local playerPed = PlayerPedId()
65

7-
if isInVehicle and GetPedVehicleSeat(playerPed) == -1 then
6+
if isInVehicle and MSK.Player.seat == -1 then
87
sleep = 1
98

109
if IsControlJustPressed(0, Config.SaveAngleOnExit) then
11-
local vehicle = currentVehicle and currentVehicle.vehicle or GetVehiclePedIsIn(playerPed)
10+
local vehicle = currentVehicle and currentVehicle.vehicle or MSK.Player.vehicle
1211
local steeringAngle = GetVehicleSteeringAngle(vehicle)
1312

1413
while not IsControlJustReleased(0, Config.SaveAngleOnExit) do
@@ -35,7 +34,7 @@ end
3534
exports('SetSteeringAngle', SetSteeringAngle)
3635

3736
GetSteeringAngle = function(vehicle)
38-
if not vehicle then vehicle = GetVehiclePedIsIn(PlayerPedId()) end
37+
if not vehicle then vehicle = MSK.Player.vehicle end
3938
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetSteeringAngle')
4039

4140
if Entity(vehicle).state.SteeringAngle == nil then

client/utils.lua

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
GetPedVehicleSeat = function(playerPed, vehicle)
2-
if not playerPed then playerPed = PlayerPedId() end
3-
if not vehicle then vehicle = currentVehicle and currentVehicle.vehicle or GetVehiclePedIsIn(playerPed) end
2+
if not playerPed then playerPed = MSK.Player.ped end
3+
if not vehicle then vehicle = currentVehicle and currentVehicle.vehicle or MSK.Player.vehicle or GetVehiclePedIsIn(playerPed, false) end
44
if not vehicle or not DoesEntityExist(vehicle) then return end
55

6+
if vehicle == MSK.Player.vehicle then
7+
return MSK.Player.seat
8+
end
9+
610
for i = -1, 16 do
711
if (GetPedInVehicleSeat(vehicle, i) == playerPed) then
812
return i
913
end
1014
end
15+
1116
return -1
1217
end
1318

@@ -65,4 +70,12 @@ IsVehicleBlacklisted = function(vehicle)
6570
return true
6671
end
6772
end
73+
end
74+
75+
IsAnyWheelClamped = function(vehicle)
76+
if not Config.VehicleClamp or GetResourceState('VehicleClamp') ~= 'started' then
77+
return false
78+
end
79+
80+
return exports["VehicleClamp"]:IsAnyWheelClamped(vehicle)
6881
end

client/vehiclekeys.lua

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,31 @@ getInventory = function()
66
elseif (GetResourceState("core_inventory") == "started") then
77
return 'core_inventory'
88
end
9+
10+
return false
911
end
1012

1113
getKeyFromInventory = function(plate)
1214
plate = MSK.String.Trim(plate, true)
15+
local inv = getInventory()
1316

14-
if getInventory() == 'ox_inventory' then
17+
if inv == 'ox_inventory' then
1518
local inventory = exports.ox_inventory:GetPlayerItems()
1619

1720
for k, v in pairs(inventory) do
1821
if v.name == Config.VehicleKeys.item and MSK.String.Trim(v.metadata.plate or v.metadata.Plate or '', true) == plate then
1922
return true
2023
end
2124
end
22-
elseif getInventory() == 'qs-inventory' then
25+
elseif inv == 'qs-inventory' then
2326
local inventory = exports['qs-inventory']:getUserInventory()
2427

2528
for k, v in pairs(inventory) do
2629
if v.name == Config.VehicleKeys.item and MSK.String.Trim(v.info.plate or v.info.Plate or '', true) == plate then
2730
return true
2831
end
2932
end
30-
elseif getInventory() == 'core_inventory' then
33+
elseif inv == 'core_inventory' then
3134
local inventory = MSK.Trigger('msk_enginetoggle:getInventory', 'core_inventory')
3235

3336
for k, v in pairs(inventory) do
@@ -45,10 +48,10 @@ exports('getKeyFromInventory', getKeyFromInventory)
4548

4649
getIsKeyOwner = function(vehicle)
4750
if not Config.VehicleKeys.enable then return true end
48-
local isKeyOwner, ignoreVehicle, ignorePlate = false, false, false
4951
local plate = GetVehicleNumberPlateText(vehicle)
52+
local isKeyOwner = getKeyFromInventory(plate)
5053

51-
if not Config.VehicleKeys.uniqueItems then
54+
if not isKeyOwner then
5255
if Config.VehicleKeys.script == 'msk_vehiclekeys' and (GetResourceState("msk_vehiclekeys") == "started") then
5356
isKeyOwner = exports["msk_vehiclekeys"]:HasPlayerKeyOrIsVehicleOwner(vehicle)
5457
elseif Config.VehicleKeys.script == 'VehicleKeyChain' and (GetResourceState("VehicleKeyChain") == "started") then
@@ -62,8 +65,6 @@ getIsKeyOwner = function(vehicle)
6265
else
6366
-- Add your own code here
6467
end
65-
else
66-
isKeyOwner = getKeyFromInventory(plate)
6768
end
6869

6970
return isKeyOwner

config.lua

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,12 @@ Config.VehicleKeys = {
5151
-- Supported Scripts: 'msk_vehiclekeys', 'VehicleKeyChain', 'vehicles_keys', 'okokGarage', 'wasabi_carlock', 'qs-vehiclekeys'
5252
script = 'msk_vehiclekeys',
5353

54-
-- This is for inventories with metadata like ox_inventory
55-
-- Supported Inventories: ox_inventory, qs-inventory, core_inventory
56-
-- For okokGarage you have to set this to true
57-
-- For msk_vehiclekeys you have to set this to false
58-
uniqueItems = false, -- If set to true, it will search for the item in the inventory
54+
-- For uniqueItems in ox_inventory, qs-inventory or core_inventory
5955
item = 'keys', -- Item in your inventory for vehicle keys
6056
}
6157
----------------------------------------------------------------
58+
Config.VehicleClamp = GetResourceState('VehicleClamp') ~= 'missing'
59+
----------------------------------------------------------------
6260
Config.SaveSteeringAngle = true
6361
Config.SaveAngleOnExit = 75 -- default: F - 75 (Exit Vehicle)
6462
----------------------------------------------------------------
@@ -93,7 +91,7 @@ Config.Blacklist = {
9391
Config.EnableLockpick = true -- Set false if you want to deactivate this feature
9492

9593
Config.progressBar = function(time, message)
96-
MSK.Progressbar(time, message)
94+
MSK.Progress.Start(time, message)
9795
end
9896

9997
Config.LockpickHotkey = {

fxmanifest.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ games { 'gta5' }
44
author 'Musiker15 - MSK Scripts'
55
name 'msk_enginetoggle'
66
description 'EngineToggle for Vehicles'
7-
version '4.3.2'
7+
version '4.3.3'
88

99
lua54 'yes'
1010

server/main.lua

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,13 @@ GetPlayerJob = function(Player)
5757
end
5858

5959
if Config.AdminCommand.enable then
60-
local allowedGroups = Config.AdminCommand.groups
61-
62-
for i = 1, #allowedGroups do
63-
ExecuteCommand(('add_ace group.%s command.%s allow'):format(allowedGroups[i], Config.AdminCommand.command))
64-
end
65-
66-
local isAceAllowed = function(playerId, command)
67-
return IsPlayerAceAllowed(playerId, ('command.%s'):format(command))
68-
end
69-
70-
RegisterCommand(Config.AdminCommand.command, function(source, args, rawCommand)
71-
local src = source
72-
73-
if not isAceAllowed(src, Config.AdminCommand.command) then
74-
return Config.Notification(src, 'You don\'t have permission to do that!', 'error')
75-
end
76-
77-
TriggerClientEvent('msk_enginetoggle:toggleEngine', src, true)
78-
end)
60+
MSK.RegisterCommand(Config.AdminCommand.command, function(source, args, raw)
61+
TriggerClientEvent('msk_enginetoggle:toggleEngine', source, true)
62+
end, {
63+
allowConsole = false,
64+
restricted = Config.AdminCommand.groups,
65+
help = 'Toggle Engine as an Admin',
66+
})
7967
end
8068

8169
RegisterNetEvent('msk_enginetoggle:addTempKey', function(plate, model)

0 commit comments

Comments
 (0)