aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/player_transferitem.lua
blob: 6bdda59fc8a7338f083bdc0eeaaa902743e5ae42 (plain)
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
if (SERVER) then
	util.AddNetworkString("RequestTransfer")
	util.AddNetworkString("RequestTransferFrom")

	net.Receive("RequestTransfer",function(siz,pl)
		local item = net.ReadString()
		local quan = net.ReadUInt(32)
		local ent  = net.ReadEntity()

		if (!IsValid(ent) or !ent.AddItem) then return end

		if (!pl:HasItem(item,quan)) then return end

		pl:RemoveItem(item,quan)
		ent:AddItem(item,quan)
	end)

	net.Receive("RequestTransferFrom",function(siz,pl)
		local item = net.ReadString()
		local quan = net.ReadUInt(32)
		local ent  = net.ReadEntity()

		if (!IsValid(ent) or !ent.TakeItem) then return end

		ent:TakeItem(pl,item,quan)
	end)
else
	function TransferItems(item,quantity,to)
		net.Start("RequestTransfer")
			net.WriteString(item)
			net.WriteUInt(quantity,32)
			net.WriteEntity(to)
		net.SendToServer()
	end

	function DemandItems(item,quantity,from)
		net.Start("RequestTransferFrom")
			net.WriteString(item)
			net.WriteUInt(quantity,32)
			net.WriteEntity(from)
		net.SendToServer()
	end
end