From 9d4aaba7fde65086a7c286d80b506927172933aa Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Tue, 3 Mar 2020 09:48:04 +0000 Subject: [PATCH 1/6] Don't create ClientConvar on Bots. Attempt to fix #7 --- lua/autorun/client/cl_nadmodpp.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index c25b35a..d1fbd7d 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -200,7 +200,7 @@ end net.Receive("nadmod_ppfriends",function(len) NADMOD.Friends = net.ReadTable() - for _,tar in pairs(player.GetAll()) do + for _,tar in pairs(player.GetHumans()) do CreateClientConVar("npp_friend_"..tar:SteamID64(),NADMOD.Friends[tar:SteamID()] and "1" or "0", false, false) RunConsoleCommand("npp_friend_"..tar:SteamID64(),NADMOD.Friends[tar:SteamID()] and "1" or "0") end From eb7e93f28cdd2286efcae714527f11641fdc7908 Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Tue, 3 Mar 2020 10:57:51 +0000 Subject: [PATCH 2/6] Wrap SteamID64 clientside to fix Bots Attempt to fix Issue #7 --- lua/autorun/client/cl_nadmodpp.lua | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index d1fbd7d..7c8af77 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -198,17 +198,28 @@ function NADMOD.AdminPanel(Panel, runByNetReceive) Panel:Button("Cleanup World Ropes", "nadmod_cleanworldropes") end +-- Wrapper function as Bots return nothing clientside for their SteamID64 +function SteamID64bot( ply ) + if( not IsValid( ply ) ) then return end + if ply:IsBot() then + -- Calculate Bot's SteamID64 according to gmod wiki + return 90071996842377216 + tonumber( string.sub( ply:Nick(), 4) ) + else + return ply:SteamID64() + end +end + net.Receive("nadmod_ppfriends",function(len) NADMOD.Friends = net.ReadTable() - for _,tar in pairs(player.GetHumans()) do - CreateClientConVar("npp_friend_"..tar:SteamID64(),NADMOD.Friends[tar:SteamID()] and "1" or "0", false, false) - RunConsoleCommand("npp_friend_"..tar:SteamID64(),NADMOD.Friends[tar:SteamID()] and "1" or "0") + for _,tar in pairs(player.GetAll()) do + CreateClientConVar("npp_friend_"..SteamID64bot(tar),NADMOD.Friends[tar:SteamID()] and "1" or "0", false, false) + RunConsoleCommand("npp_friend_"..SteamID64bot(tar),NADMOD.Friends[tar:SteamID()] and "1" or "0") end end) concommand.Add("npp_applyfriends",function(ply,cmd,args) for _,tar in pairs(player.GetAll()) do - NADMOD.Friends[tar:SteamID()] = GetConVar("npp_friend_"..tar:SteamID64()):GetBool() + NADMOD.Friends[tar:SteamID()] = GetConVar("npp_friend_"..SteamID64bot(tar)):GetBool() end net.Start("nadmod_ppfriends") net.WriteTable(NADMOD.Friends) @@ -235,7 +246,7 @@ function NADMOD.ClientPanel(Panel) else for _, tar in pairs(Players) do if(IsValid(tar) and tar != LocalPlayer()) then - Panel:CheckBox(tar:Nick(), "npp_friend_"..tar:SteamID64()) + Panel:CheckBox(tar:Nick(), "npp_friend_"..SteamID64bot(tar)) end end Panel:Button("Apply Friends", "npp_applyfriends") From 5b9f4db3dd571d3dd19b97c9cdb7e76a70e3391d Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Tue, 3 Mar 2020 11:45:35 +0000 Subject: [PATCH 3/6] Refactored wrapper function Remade to be player:function to match origional SteamID64() instead of function( player ) --- lua/autorun/client/cl_nadmodpp.lua | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index 7c8af77..aaeac7a 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -198,28 +198,30 @@ function NADMOD.AdminPanel(Panel, runByNetReceive) Panel:Button("Cleanup World Ropes", "nadmod_cleanworldropes") end +local metaply = FindMetaTable("Player") + -- Wrapper function as Bots return nothing clientside for their SteamID64 -function SteamID64bot( ply ) - if( not IsValid( ply ) ) then return end - if ply:IsBot() then +function metaply:SteamID64bot() + if( not IsValid( self ) ) then return end + if self:IsBot() then -- Calculate Bot's SteamID64 according to gmod wiki - return 90071996842377216 + tonumber( string.sub( ply:Nick(), 4) ) + return 90071996842377216 + tonumber( string.sub( self:Nick(), 4) ) else - return ply:SteamID64() + return self:SteamID64() end end net.Receive("nadmod_ppfriends",function(len) NADMOD.Friends = net.ReadTable() for _,tar in pairs(player.GetAll()) do - CreateClientConVar("npp_friend_"..SteamID64bot(tar),NADMOD.Friends[tar:SteamID()] and "1" or "0", false, false) - RunConsoleCommand("npp_friend_"..SteamID64bot(tar),NADMOD.Friends[tar:SteamID()] and "1" or "0") + CreateClientConVar("npp_friend_"..tar:SteamID64bot(),NADMOD.Friends[tar:SteamID()] and "1" or "0", false, false) + RunConsoleCommand("npp_friend_"..tar:SteamID64bot(),NADMOD.Friends[tar:SteamID()] and "1" or "0") end end) concommand.Add("npp_applyfriends",function(ply,cmd,args) for _,tar in pairs(player.GetAll()) do - NADMOD.Friends[tar:SteamID()] = GetConVar("npp_friend_"..SteamID64bot(tar)):GetBool() + NADMOD.Friends[tar:SteamID()] = GetConVar("npp_friend_"..tar:SteamID64bot()):GetBool() end net.Start("nadmod_ppfriends") net.WriteTable(NADMOD.Friends) @@ -246,7 +248,7 @@ function NADMOD.ClientPanel(Panel) else for _, tar in pairs(Players) do if(IsValid(tar) and tar != LocalPlayer()) then - Panel:CheckBox(tar:Nick(), "npp_friend_"..SteamID64bot(tar)) + Panel:CheckBox(tar:Nick(), "npp_friend_"..tar:SteamID64bot()) end end Panel:Button("Apply Friends", "npp_applyfriends") @@ -278,7 +280,6 @@ end) CPPI = {} local metaent = FindMetaTable("Entity") -local metaply = FindMetaTable("Player") function CPPI:GetName() return "Nadmod Prop Protection" end function CPPI:GetVersion() return "" end From 8e97d9ac050135f49f02ef4241cc5e46fc66bfa1 Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Tue, 3 Mar 2020 12:48:27 +0000 Subject: [PATCH 4/6] Hoist metaent also Keep it neat and bring metaent along with metaply --- lua/autorun/client/cl_nadmodpp.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index aaeac7a..e3e01bb 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -199,6 +199,7 @@ function NADMOD.AdminPanel(Panel, runByNetReceive) end local metaply = FindMetaTable("Player") +local metaent = FindMetaTable("Entity") -- Wrapper function as Bots return nothing clientside for their SteamID64 function metaply:SteamID64bot() From d1f4ba3b355b7dbde6c86232394d058142aa9b0e Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Tue, 3 Mar 2020 13:06:31 +0000 Subject: [PATCH 5/6] Remove duplicate metaent var Forgot to remove this declaration --- lua/autorun/client/cl_nadmodpp.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index e3e01bb..c8cb80d 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -280,7 +280,6 @@ net.Receive("nadmod_notify", function(len) end) CPPI = {} -local metaent = FindMetaTable("Entity") function CPPI:GetName() return "Nadmod Prop Protection" end function CPPI:GetVersion() return "" end From c81e3fe15c0ad5cac44cb9b6fed3de8a8895662d Mon Sep 17 00:00:00 2001 From: sammyt291 Date: Wed, 4 Mar 2020 09:33:47 +0000 Subject: [PATCH 6/6] Fix off-by-one error on bot SteamID64 --- lua/autorun/client/cl_nadmodpp.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/autorun/client/cl_nadmodpp.lua b/lua/autorun/client/cl_nadmodpp.lua index c8cb80d..69da899 100644 --- a/lua/autorun/client/cl_nadmodpp.lua +++ b/lua/autorun/client/cl_nadmodpp.lua @@ -206,7 +206,7 @@ function metaply:SteamID64bot() if( not IsValid( self ) ) then return end if self:IsBot() then -- Calculate Bot's SteamID64 according to gmod wiki - return 90071996842377216 + tonumber( string.sub( self:Nick(), 4) ) + return ( 90071996842377216 + tonumber( string.sub( self:Nick(), 4) ) -1 ) else return self:SteamID64() end