diff options
Diffstat (limited to 'gamemode/shared/player_transferitem.lua')
| -rw-r--r-- | gamemode/shared/player_transferitem.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gamemode/shared/player_transferitem.lua b/gamemode/shared/player_transferitem.lua new file mode 100644 index 0000000..944af63 --- /dev/null +++ b/gamemode/shared/player_transferitem.lua @@ -0,0 +1,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
\ No newline at end of file |
