-
-
Notifications
You must be signed in to change notification settings - Fork 702
/
client.lua
81 lines (63 loc) · 2.39 KB
/
client.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
local onLogout, Weapon = ...
local QBCore = exports['qb-core']:GetCoreObject()
local Inventory = require 'modules.inventory.client'
RegisterNetEvent('QBCore:Client:OnPlayerUnload', onLogout)
RegisterNetEvent('QBCore:Player:SetPlayerData', function(data)
if source == '' or not PlayerData.loaded then return end
if (data.metadata.isdead or data.metadata.inlaststand) ~= PlayerData.dead then
PlayerData.dead = data.metadata.isdead or data.metadata.inlaststand
OnPlayerData('dead', PlayerData.dead)
end
local groups = PlayerData.groups
if not groups[data.job.name] or not groups[data.gang.name] or groups[data.job.name] ~= data.job.grade.level or groups[data.gang.name] ~= data.gang.grade.level then
PlayerData.groups = {
[data.job.name] = data.job.grade.level,
[data.gang.name] = data.gang.grade.level,
}
OnPlayerData('groups', PlayerData.groups)
end
end)
RegisterNetEvent('police:client:GetCuffed', function()
PlayerData.cuffed = not PlayerData.cuffed
LocalPlayer.state:set('invBusy', PlayerData.cuffed, false)
if not PlayerData.cuffed then return end
Weapon.Disarm()
end)
---@diagnostic disable-next-line: duplicate-set-field
function client.setPlayerStatus(values)
for name, value in pairs(values) do
-- compatibility for ESX style values
if value > 100 or value < -100 then
value = value * 0.0001
end
if name == "hunger" then
TriggerServerEvent('consumables:server:addHunger', QBCore.Functions.GetPlayerData().metadata.hunger + value)
elseif name == "thirst" then
TriggerServerEvent('consumables:server:addThirst', QBCore.Functions.GetPlayerData().metadata.thirst + value)
elseif name == "stress" then
if value > 0 then
TriggerServerEvent('hud:server:GainStress', value)
else
value = math.abs(value)
TriggerServerEvent('hud:server:RelieveStress', value)
end
end
end
end
-- taken from qbox-core (https://github.com/Qbox-project/qb-core/blob/f4174f311aae8157181a48fa2e2bd30c8d13edb1/client/functions.lua#L25)
local function hasItem(items, amount)
amount = amount or 1
local count = Inventory.Search('count', items)
if type(items) == 'table' and type(count) == 'table' then
for _, v in pairs(count) do
if v < amount then
return false
end
end
return true
end
return count >= amount
end
AddEventHandler(('__cfx_export_qb-inventory_HasItem'), function(setCB)
setCB(hasItem)
end)