diff options
| -rw-r--r-- | gamemode/core/clienteffects/blocked.lua | 3 | ||||
| -rw-r--r-- | gamemode/core/clienteffects/cl_effects.lua | 23 | ||||
| -rw-r--r-- | gamemode/core/clienteffects/sh_effects.lua | 10 | ||||
| -rw-r--r-- | gamemode/core/clienteffects/sv_effects.lua | 16 |
4 files changed, 26 insertions, 26 deletions
diff --git a/gamemode/core/clienteffects/blocked.lua b/gamemode/core/clienteffects/blocked.lua deleted file mode 100644 index fa2352c..0000000 --- a/gamemode/core/clienteffects/blocked.lua +++ /dev/null @@ -1,3 +0,0 @@ ---[[ - Return a function that will get called when our attack is blocked (client side) -]] diff --git a/gamemode/core/clienteffects/cl_effects.lua b/gamemode/core/clienteffects/cl_effects.lua index d51cf7d..368c34a 100644 --- a/gamemode/core/clienteffects/cl_effects.lua +++ b/gamemode/core/clienteffects/cl_effects.lua @@ -1,12 +1,23 @@ - +local log = nrequire("log.lua") +local er = {} --master table of effects local effects = {} -effects["weapon_blocked"] = function() - util.ScreenShake( LocalPlayer():GetPos(), 3, 3, 0.25, 100 ) + +function er.RegisterEffect(name,func) + if effects[name] ~= nil then + log.warn("Effect \"" .. name .. "\" already registered, replaceing...") + end + effects[name] = func end +er.RegisterEffect("weapon_blocked",function(data) + util.ScreenShake( LocalPlayer():GetPos(), 3, 3, 0.25, 100 ) +end) + net.Receive("art_clienteffect",function() - local effectid = net.ReadUInt(32) - local effectname = ART.screen_effect_ids[effectid] + local effectname = net.ReadString() + local effectdata = net.ReadData(net.ReadUInt(32)) print("Got effect name",effectname) - effects[effectname]() + effects[effectname](effectdata) end) + +return er diff --git a/gamemode/core/clienteffects/sh_effects.lua b/gamemode/core/clienteffects/sh_effects.lua deleted file mode 100644 index 70f3a79..0000000 --- a/gamemode/core/clienteffects/sh_effects.lua +++ /dev/null @@ -1,10 +0,0 @@ -ART = ART or {} - -ART.screen_effect_ids = { - "weapon_blocked" -} - -ART.screen_effect_names = {} -for k,v in pairs(ART.screen_effect_ids) do - ART.screen_effect_names[v] = k -end diff --git a/gamemode/core/clienteffects/sv_effects.lua b/gamemode/core/clienteffects/sv_effects.lua index 2a8e083..cc3039f 100644 --- a/gamemode/core/clienteffects/sv_effects.lua +++ b/gamemode/core/clienteffects/sv_effects.lua @@ -1,11 +1,13 @@ -ART = ART or {} +local ed = {} -util.AddNetworkString("art_clienteffect") - -ART.ApplyEffect = function(who,effectname) - assert(ART.screen_effect_names[effectname] ~= nil,"Attempted to call a nil effect name:" .. effectname .. ". Valid effect names:" .. table.concat(ART.screen_effect_ids,",")) +function ed.SendEffect(ply,name,data) net.Start("art_clienteffect") - net.WriteUInt(ART.screen_effect_names[effectname],32) - net.Send(who) + local dlen = #data + net.WriteString(name) + net.WriteUInt(dlen,32) + net.WriteData(data,dlen) + net.Send(ply) end + +return ed |
