aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/player_transferitem.lua
blob: 944af63d8903562cb180f2c781a51f998f5e5c33 (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