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")