/
cl_player_extension.lua
83 lines (60 loc) · 1.93 KB
/
cl_player_extension.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
82
83
local Player = FindMetaTable('Player')
-- items
function Player:PS_GetItems()
return self.PS_Items or {}
end
function Player:PS_HasItem(item_id)
if not self.PS_Items then return false end
return self.PS_Items[item_id] and true or false
end
function Player:PS_HasItemEquipped(item_id)
if not self:PS_HasItem(item_id) then return false end
return self.PS_Items[item_id].Equipped or false
end
function Player:PS_BuyItem(item_id)
if self:PS_HasItem(item_id) then return false end
if not self:PS_HasPoints(PS.Config.CalculateBuyPrice(self, PS.Items[item_id])) then return false end
net.Start('PS_BuyItem')
net.WriteString(item_id)
net.SendToServer()
end
function Player:PS_SellItem(item_id)
if not self:PS_HasItem(item_id) then return false end
net.Start('PS_SellItem')
net.WriteString(item_id)
net.SendToServer()
end
function Player:PS_EquipItem(item_id)
if not self:PS_HasItem(item_id) then return false end
net.Start('PS_EquipItem')
net.WriteString(item_id)
net.SendToServer()
end
function Player:PS_HolsterItem(item_id)
if not self:PS_HasItem(item_id) then return false end
net.Start('PS_HolsterItem')
net.WriteString(item_id)
net.SendToServer()
end
-- points
function Player:PS_GetPoints()
return self.PS_Points or 0
end
function Player:PS_HasPoints(points)
return self:PS_GetPoints() >= points
end
-- clientside models
function Player:PS_AddClientsideModel(item_id)
if not PS.Items[item_id] then return false end
local ITEM = PS.Items[item_id]
local mdl = ClientsideModel(ITEM.Model, RENDERGROUP_OPAQUE)
mdl:SetNoDraw(true)
if not PS.ClientsideModels[self] then PS.ClientsideModels[self] = {} end
PS.ClientsideModels[self][item_id] = mdl
end
function Player:PS_RemoveClientsideModel(item_id)
if not PS.Items[item_id] then return false end
if not PS.ClientsideModels[self] then return false end
if not PS.ClientsideModels[self][item_id] then return false end
PS.ClientsideModels[self][item_id] = nil
end