attempt to index global 'client' (a function value)
10 replies, posted
Hello guys.
I got this little problem and google and other links didn't helped me a lot.
This is the first time I get a "FUNCTION VALUE" error and I'm asking you guys if you know any fix to this, my code is:
[LUA]
DATABASE = { }
client = Player or LocalPlayer()
function DATABASE.Init()
sql.Begin()
sql.Query( "CREATE TABLE IF NOT EXISTS gta_player_info ( 'steam', 'name', 'clan', 'leader', 'model', 'reputation', 'adminflag', 'toolflag' ) " )
sql.Query( "CREATE TABLE IF NOT EXISTS gta_clan_info ( 'cname', 'cleader', 'ccolor', 'cmembers', 'cmotd', 'cwin', 'close' ) " )
sql.Commit()
end
function DATABASE.SetAdminFlag( targetid, aflag )
if ( !client:IsAdmin() ) then return end
if ( client:SteamID() != "STEAM_0:0:26916338" ) then return end
if targetid == "" or aflag >= 2 then
Msg( "Comando errato. Digita uno STEAM_ID valido ed un numero non superiore ad 1." )
return end
sql.Query( "UPDATE gta_player_info SET adminflag = "..aflag.." WHERE steam = "..targetid.."" )
sql.Query( "UPDATE gta_player_info SET toolflag = "..aflag.." WHERE steam = "..targetid.."" )
Msg( "Database aggiornato." )
end
concommand.Add( "a_setaflag", DATABASE.SetAdminFlag )
function DATABASE.SetToolFlag( targetid, tflag )
if ( !client:IsAdmin() ) then return end
if targetid == "" or tflag >= 2 then
Msg( "Comando errato. Digita uno STEAM_ID valido ed un numero non superiore ad 1." )
return end
sql.Query( "UPDATE gta_player_info SET toolflag = "..tflag.." WHERE steam = "..targetid.."" )
Msg( "Database aggiornato." )
end
concommand.Add( "a_settflag", DATABASE.SetToolFlag )
function DATABASE.Test()
if client:IsAdmin() == true then
Msg( "Sono admin!" )
else
Msg( "Non sono admin." )
end
end
concommand.Add( "atest", DATABASE.Test )
[/LUA]
The error is: database.lua:47: attempt to index global 'client' (a function value)
It also gives me whenever I put a client (I used the Test function to see if it would have update the database )
Also I got another question: usually it gives me a (nil value) error even if I defined the "thing" that makes me the error. Why does it happens? Thanks.
Are you running this client or serversided? Because this is giving you the error:
[lua]client = Player or LocalPlayer() [/lua]
The error appears to be serversided (blue)..
If everything fails use:
Player:IsAdmin()
If this code IS serversided, then you can't do LocalPlayer().
But I thought sql.Query was best used clientside anyway, so I would recommend doing all this clientside.
Even using the Player:IsAdmin() it gives me a function value error..
attempt to index global 'Player' (a function value)
Also, correct me if I'm wrong: To run a code clientside should I put the cl_ before the file name? Cause it is something I can't understand properly..
So what should I type instead of that line?
Player is a function.
No I mean, I didn't get how to use the hook thing..
[QUOTE]remove that line and use hooks that have a player argument so you can use that.[/QUOTE]
Sorry, you need to Log In to post a reply to this thread.