diff options
| author | Apickx <Apickx@cogarr.org> | 2015-12-28 19:18:30 -0500 |
|---|---|---|
| committer | Apickx <Apickx@cogarr.org> | 2015-12-28 19:18:30 -0500 |
| commit | 868e729d68b5913716bfe5ddb512f4099851e9a2 (patch) | |
| tree | 6441108754145dfd68a6e23bea382b5cb1ab63d5 /gamemode/sh_var/globalshvar.lua | |
| download | gearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.tar.gz gearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.tar.bz2 gearfox-868e729d68b5913716bfe5ddb512f4099851e9a2.zip | |
Diffstat (limited to 'gamemode/sh_var/globalshvar.lua')
| -rw-r--r-- | gamemode/sh_var/globalshvar.lua | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/gamemode/sh_var/globalshvar.lua b/gamemode/sh_var/globalshvar.lua new file mode 100644 index 0000000..332708a --- /dev/null +++ b/gamemode/sh_var/globalshvar.lua @@ -0,0 +1,53 @@ +local EPT = FindMetaTable("Entity") +local SHQTab = 0 +local SHQLimit = 200 +local SHQSend = {} +local SHNonTemp = {} + +GM._GlobalSHVars = {} + +if (CLIENT) then + net.Receive("_ReceiveGlobalSHVar",function(size) + local Dat = net.ReadTable() + self._GlobalSHVars[Dat.Name] = Dat.Value + end) +else + hook.Add("PlayerAuthed","_AddGlobalSHVar",function(pl,sid,uid) + GM = GM or GAMEMODE + + for k,v in pairs( GM._GlobalSHVars ) do + GM:SetGlobalSHVar(k,v,pl) + end + end) + + util.AddNetworkString("_ReceiveGlobalSHVar") +end + +function GM:GetGlobalSHVarTable() + return self._GlobalSHVars +end + +function GM:SetGlobalSHVar(Name,Var,ply) + self._GlobalSHVars[Name] = Var + + if (CLIENT) then return end + + local Dat = { + Name = Name, + Value = Var, + } + + net.Start( "_ReceiveGlobalSHVar" ) + net.WriteTable( Dat ) + + if (IsValid(ply)) then + net.Send(ply) + else + net.Broadcast() + end +end + +function GM:GetGlobalSHVar(Name,Var) + if (!self._GlobalSHVars or self._GlobalSHVars[Name] == nil) then return Var or nil end + return self._GlobalSHVars[Name] +end
\ No newline at end of file |
