• Getting a client's convar number?
    13 replies, posted
Hello, How would I be able to get a client's convar number, lets say, sv_cheats? Would this work? [CODE]function checkNum(ply) local clientValue = GetConVarNumber( sv_cheats ) if clientValue > 1 then ply:Kick else return end end end[/CODE]
You're going to most likely use this function ply:GetInfoNum( sv_cheats, clientvalue ) to set clientvalue to whatever that players value is. I'm assuming you have this function hooked to PlayerInitialSpawn or something else so the player is actually checked. Edit: Just Noticed you are Missing () on the Kick Function. It should be ply:Kick() not ply:Kick.
Yes, it's hooked. [code] function checkNum(ply) local clientValue = GetConVarNumber( sv_cheats ) -- clientValue == 1 scan = ply:GetInfoNum( sv_cheats, clientvalue ) -- Getting client value of sv_cheats if scan > 1 then -- if it returns 1 then -- comparing values ply:Kick() -- if weird then kick else return end -- else do nothing end end [/code] Edit: Yeah, I noticed I forgot the params on the kick.
Nar, you don't need to use GetConVarNumber as your retrieving that number from ply:getInfoNum. Also you needed to make it greater than or equal to. I fixed your code for you to show you what I mean: [code] function checkNum(ply) clientvalue = ply:GetInfoNum( sv_cheats, 0 ) -- Getting client value of sv_cheats if clientvalue => 1 then -- if it returns 1 then -- comparing values ply:Kick() -- if weird then kick else return -- else do nothing end end [/code] Edit: I made a stupid error and was wrong about the second argument, thats used to specify what to assume the variable is if it does not return anything. My Bad. If this doesn't work just get back to me.
[code] if SERVER then hook.Add( "PlayerInitialSpawn", "ClientConVarCheck", function(ply) clientvalue = ply:GetInfoNum( sv_cheats, 0 ) -- Getting client value of sv_cheats if(clientvalue => 1) then -- if it returns 1 then -- comparing values ply:Kick() -- if weird then kick else return -- else do nothing end end) end [/code] I add that code to a lua file (a new one, really) and it's located inside addons. However, it doesn't work. Any help?
You put the lua file under the lua/autorun folder in your addon right?
ply:Kick() needs an argument .. like ply:Kick("No reason given.")
Yeah, its under garrysmod/addons/nDraw/lua/autorun/server
Make sure your addon as an addon.txt or the addon won't run. To be sure the function even works, try putting it in the main gmod lua/autorun. Also Nak, thank you I wasn't aware you HAVE to have that argument specified. Here's the Function with the Change [code] if SERVER then hook.Add( "PlayerInitialSpawn", "ClientConVarCheck", function(ply) clientvalue = ply:GetInfoNum( "sv_cheats", 0 ) -- Getting client value of sv_cheats if(clientvalue >= 1) then -- if it returns 1 then -- comparing values ply:Kick("Forcing the sv_cheats variable to 1") -- if weird then kick else return -- else do nothing end end) end [/code] edit: Changed => to >=, sorry for the silly mistake. Late at night and I am making nonstop silly Mistakes. Fixed quote error.
This is odd. [ERROR] lua/autorun/cv.lua:18: 'then' expected near '=' 1. unknown - lua/autorun/cv.lua:0 cv.lua is the script. And its in lua/autorun this time. Line 18 is: if clientvalue => 1 then -- if it returns 1 then -- comparing values
That's because it's >=, not =>
Danget, I made another stupid mistake? I always thought that didn't matter. Thank you for the correction code_gs. I apologize for that mistake.
[lua]ply:GetInfoNum( sv_cheats, 0 )[/lua] How do you expect it to work without quote marks? [lua]ply:GetInfoNum( "sv_cheats", 0 )[/lua]
It really must be too late at night for me to be doing this. So much for me helping someone. Thanks. I'm pretty sure all of the silly mistakes are gone now. I updated that post with the fixes so it should work now.
Sorry, you need to Log In to post a reply to this thread.