aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/player_pigeon.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/shared/player_pigeon.lua')
-rw-r--r--gamemode/shared/player_pigeon.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/gamemode/shared/player_pigeon.lua b/gamemode/shared/player_pigeon.lua
new file mode 100644
index 0000000..2256af0
--- /dev/null
+++ b/gamemode/shared/player_pigeon.lua
@@ -0,0 +1,44 @@
+local meta = FindMetaTable("Player")
+
+if (SERVER) then
+ util.AddNetworkString("AssignPigeon")
+
+ function meta:SpawnPigeon()
+ if (IsValid(self.Pigeon)) then return end
+
+ self.Pigeon = ents.Create("ws_pigeon")
+ self.Pigeon:SetPos(self:GetPos())
+ self.Pigeon:SetPlayer(self)
+ self.Pigeon:Spawn()
+ self.Pigeon:Activate()
+
+ print("Spawned Pigeon: "..self:Nick())
+
+ timer.Simple(0.2,function()
+ net.Start("AssignPigeon")
+ net.WriteEntity(self)
+ net.WriteEntity(self.Pigeon)
+ net.Broadcast() end)
+ end
+
+ function meta:UpdatePigeons()
+ for k,v in pairs(player.GetAll()) do
+ if (IsValid(v.Pigeon)) then
+ timer.Simple(math.Rand(0.1,0.2),function()
+ net.Start("AssignPigeon")
+ net.WriteEntity(v)
+ net.WriteEntity(v.Pigeon)
+ net.Send(self)
+ end)
+ end
+ end
+ end
+else
+ net.Receive("AssignPigeon",function() net.ReadEntity().Pigeon = net.ReadEntity() end)
+end
+
+function meta:GetPigeon()
+ return self.Pigeon
+end
+
+