From 5c4ebc932d8c02522802c842d43d863d89aca162 Mon Sep 17 00:00:00 2001 From: Apickx Date: Mon, 28 Dec 2015 19:10:44 -0500 Subject: Initial commit --- gamemode/shared/system_fatigue.lua | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 gamemode/shared/system_fatigue.lua (limited to 'gamemode/shared/system_fatigue.lua') 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 -- cgit v1.2.3-70-g09d2