Skip to content

Commit f9a44f4

Browse files
committed
Update v4.1.5
* Added Support for okokGarage's VehicleKeys
1 parent e9654ae commit f9a44f4

File tree

7 files changed

+85
-27
lines changed

7 files changed

+85
-27
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.1.4
1+
4.1.5

client/client.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ toggleEngine = function(bypass)
4141
end
4242

4343
if not bypass then
44-
canToggleEngine = getIsVehicleOrKeyOwner(vehicle)
44+
canToggleEngine = getIsKeyOwner(vehicle)
4545
end
4646

4747
if not canToggleEngine then
@@ -178,7 +178,7 @@ CreateThread(function()
178178
end)
179179

180180
SetEngineState = function(vehicle, state, engine)
181-
if not DoesEntityExist(vehicle) then return end
181+
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function SetEngineState')
182182
logging('SetEngineState', vehicle, state)
183183

184184
currentVehicle.isEngineOn = state
@@ -195,7 +195,7 @@ RegisterNetEvent('msk_enginetoggle:setEngineState', SetEngineState) -- Do not us
195195

196196
GetEngineState = function(vehicle)
197197
if not vehicle then vehicle = GetVehiclePedIsIn(PlayerPedId()) end
198-
if not DoesEntityExist(vehicle) then return end
198+
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetEngineState')
199199

200200
if Entity(vehicle).state.isEngineOn == nil then
201201
SetEngineState(vehicle, GetIsVehicleEngineRunning(vehicle), false)
@@ -206,7 +206,7 @@ exports('GetEngineState', GetEngineState)
206206
exports('getEngineState', GetEngineState) -- Support for old versions
207207

208208
SetVehicleDamaged = function(vehicle, state)
209-
if not DoesEntityExist(vehicle) then return end
209+
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function SetVehicleDamaged')
210210
logging('SetVehicleDamaged', vehicle, state)
211211

212212
currentVehicle.isDamaged = state
@@ -229,7 +229,7 @@ RegisterNetEvent('msk_enginetoggle:setVehicleDamaged', SetVehicleDamaged)
229229

230230
GetVehicleDamaged = function(vehicle)
231231
if not vehicle then vehicle = GetVehiclePedIsIn(PlayerPedId()) end
232-
if not DoesEntityExist(vehicle) then return end
232+
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetVehicleDamaged')
233233

234234
if Entity(vehicle).state.isDamaged == nil then
235235
SetVehicleDamaged(vehicle, false)
@@ -242,7 +242,7 @@ exports('getVehicleDamaged', GetVehicleDamaged) -- Support for old versions
242242
GetPedVehicleSeat = function(playerPed, vehicle)
243243
if not playerPed then playerPed = PlayerPedId() end
244244
if not vehicle then vehicle = GetVehiclePedIsIn(playerPed) end
245-
if not DoesEntityExist(vehicle) then return end
245+
assert(vehicle and DoesEntityExist(vehicle), 'Parameter "vehicle" is nil or the Vehicle does not exist on function GetPedVehicleSeat')
246246

247247
for i = -1, 16 do
248248
if (GetPedInVehicleSeat(vehicle, i) == playerPed) then

client/client_hotwire.lua

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
if Config.EnableLockpick and Config.LockpickHotkey.enable then
22
RegisterCommand(Config.LockpickHotkey.command, function(source, args, rawCommand)
3-
TriggerServerEvent('msk_enginetoggle:hasItem')
4-
53
if Config.Framework == 'ESX' then
64
ESX = exports["es_extended"]:getSharedObject()
75

client/client_vehiclekeys.lua

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,88 @@
1-
getIsVehicleOrKeyOwner = function(vehicle)
1+
trim = function(str)
2+
return tostring(str):gsub("%s+", "")
3+
end
4+
5+
getKeyFromInventory = function(plate)
6+
if Config.VehicleKeys.inventory == 'ox_inventory' then
7+
local inventory = exports.ox_inventory:GetPlayerItems()
8+
9+
for k, v in pairs(inventory) do
10+
if v.name == Config.VehicleKeys.item and trim(v.metadata[Config.VehicleKeys.plate]) == trim(plate) then
11+
return true
12+
end
13+
end
14+
elseif Config.VehicleKeys.inventory == 'qs-inventory' then
15+
local inventory = exports['qs-inventory']:getUserInventory()
16+
17+
for k, v in pairs(inventory) do
18+
if v.name == Config.VehicleKeys.item and trim(v.info[Config.VehicleKeys.plate]) == trim(plate) then
19+
return true
20+
end
21+
end
22+
elseif Config.VehicleKeys.inventory == 'core_inventory' then
23+
local p = promise.new()
24+
25+
if Config.Framework == 'ESX' then
26+
ESX.TriggerServerCallback('core_inventory:server:getInventory', function(inventory)
27+
p:resolve(inventory)
28+
end)
29+
elseif Config.Framework == 'QBCore' then
30+
QBCore.Functions.TriggerCallback('core_inventory:server:getInventory', function(inventory)
31+
p:resolve(inventory)
32+
end)
33+
elseif Config.Framework == 'Standalone' then
34+
-- Add your own code here
35+
end
36+
37+
local inventory = Citizen.Await(p)
38+
39+
for k, v in pairs(inventory) do
40+
if v.name == Config.VehicleKeys.item and trim(v.metadata[Config.VehicleKeys.plate]) == trim(plate) then
41+
return true
42+
end
43+
end
44+
else
45+
-- Add your own code here
46+
end
47+
48+
return false
49+
end
50+
exports('getKeyFromInventory', getKeyFromInventory)
51+
52+
getIsKeyOwner = function(vehicle)
253
if not Config.VehicleKeys.enable then return true end
3-
local isVehicleOrKeyOwner, isVehicle, isPlate = false, false, false
54+
local isKeyOwner, ignoreVehicle, ignorePlate = false, false, false
55+
local plate = GetVehicleNumberPlateText(vehicle)
456
local canToggleEngine = true
557

658
if Config.VehicleKeys.script == 'VehicleKeyChain' and (GetResourceState("VehicleKeyChain") == "started") then
7-
isVehicleOrKeyOwner = exports["VehicleKeyChain"]:IsVehicleOrKeyOwner(vehicle)
59+
isKeyOwner = exports["VehicleKeyChain"]:IsVehicleOrKeyOwner(vehicle)
860
elseif Config.VehicleKeys.script == 'vehicle_keys' and (GetResourceState("vehicle_keys") == "started") then
9-
isVehicleOrKeyOwner = exports["vehicle_keys"]:doesPlayerOwnPlate(GetVehicleNumberPlateText(vehicle))
61+
isKeyOwner = exports["vehicle_keys"]:doesPlayerOwnPlate(plate)
62+
elseif Config.VehicleKeys.script == 'okokGarage' and (GetResourceState("okokGarage") == "started") then
63+
isKeyOwner = getKeyFromInventory(plate)
1064
else
11-
if (GetResourceState(Config.VehicleKeys.script) == "started") then
12-
-- Add your own code here
13-
isVehicleOrKeyOwner = true
14-
end
65+
-- Add your own code here
1566
end
1667

1768
for k, v in pairs(Config.Whitelist.vehicles) do
1869
if GetHashKey(v) == GetEntityModel(vehicle) then
19-
isVehicle = true
70+
ignoreVehicle = true
2071
break
2172
end
2273
end
2374

2475
for k, v in pairs(Config.Whitelist.plates) do
25-
if string.find(trim(tostring(GetVehicleNumberPlateText(vehicle))), v) then
26-
isPlate = true
76+
if string.find(trim(plate), trim(v)) then
77+
ignorePlate = true
2778
break
2879
end
2980
end
3081

31-
if not isVehicleOrKeyOwner and not isVehicle and not isPlate then
82+
if not isKeyOwner and not ignoreVehicle and not ignorePlate then
3283
canToggleEngine = false
3384
end
3485

3586
return canToggleEngine
3687
end
37-
38-
trim = function(str)
39-
return string.gsub(str, "%s+", "")
40-
end
88+
exports('getIsKeyOwner', getIsKeyOwner)

config.lua

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,15 @@ Config.EngineFromSecondSeat = false
4646

4747
Config.VehicleKeys = {
4848
enable = false, -- Set true to enable this feature
49-
script = 'VehicleKeyChain' -- Set to 'VehicleKeyChain' or 'vehicle_keys'
49+
50+
-- Supported Scripts: 'VehicleKeyChain', 'vehicle_keys', 'okokGarage'
51+
script = 'VehicleKeyChain',
52+
53+
-- This is for inventories with metadata like ox_inventory
54+
-- Supported Inventories: ox_inventory, qs-inventory, core_inventory
55+
inventory = 'ox_inventory',
56+
item = 'keys',
57+
plate = 'plate' -- Key Name for plate in your inventory for your vehicle keys script
5058
}
5159
----------------------------------------------------------------
5260
Config.SaveSteeringAngle = true

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.1.4'
7+
version '4.1.5'
88

99
lua54 'yes'
1010

server/server.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ RegisterNetEvent('msk_enginetoggle:addTempKey', function(plate)
3939
exports["VehicleKeyChain"]:AddTempKey(playerId, plate)
4040
elseif Config.VehicleKeys.script == 'vehicle_keys' then
4141
exports["vehicle_keys"]:giveVehicleKeysToPlayerId(playerId, plate, 'temporary')
42+
elseif Config.VehicleKeys.script == 'okokGarage' then
43+
TriggerEvent("okokGarage:GiveKeys", plate, playerId)
44+
else
45+
-- Add your own code here
4246
end
4347

4448
Config.Notification(source, Translation[Config.Locale]['hotwiring_foundkey'], 'info')

0 commit comments

Comments
 (0)