diff options
| author | Apickx <Apickx@cogarr.org> | 2015-12-28 19:10:44 -0500 |
|---|---|---|
| committer | Apickx <Apickx@cogarr.org> | 2015-12-28 19:10:44 -0500 |
| commit | 5c4ebc932d8c02522802c842d43d863d89aca162 (patch) | |
| tree | 6be7ad664bdf060127e6df6baa72beaf508aa149 /gamemode/shared/system_fatigue.lua | |
| download | wintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.tar.gz wintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.tar.bz2 wintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.zip | |
Initial commit
Diffstat (limited to 'gamemode/shared/system_fatigue.lua')
| -rw-r--r-- | gamemode/shared/system_fatigue.lua | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gamemode/shared/system_fatigue.lua b/gamemode/shared/system_fatigue.lua new file mode 100644 index 0000000..9f5a413 --- /dev/null +++ b/gamemode/shared/system_fatigue.lua @@ -0,0 +1,46 @@ +
+local meta = FindMetaTable("Player")
+
+if (SERVER) then
+ util.AddNetworkString("SetFatigue")
+
+ local Tick = CurTime()
+
+ function meta:SetFatigue(s)
+ if (s > 100) then self:TakeDamage(s-100) s = 100 end
+ s = math.Clamp(s,0,100)
+
+ self.Fatigue = s
+
+ net.Start("SetFatigue")
+ net.WriteUInt(s,8)
+ net.Send(self)
+ end
+
+ function meta:AddFatigue(s)
+ self:SetFatigue(self:GetFatigue()+s)
+ end
+
+ hook.Add("Tick","Fatigue",function()
+ if (Tick < CurTime()) then
+ for k,v in pairs(player.GetAllHumans()) do
+ local Fat = v.Fatigue or 0
+
+ if (Fat > 0) then Fat = Fat-2 end
+ Fat = Fat+math.ceil(v:GetVelocity():Length()/100)
+
+ v:SetFatigue(Fat)
+ end
+
+ Tick = CurTime()+0.5
+ end
+ end)
+else
+ net.Receive("SetFatigue",function()
+ LocalPlayer().Fatigue = net.ReadUInt(8)
+ end)
+end
+
+function meta:GetFatigue()
+ return self.Fatigue or 0
+end
|
