Admin levels using mysql
#8

pawn Код:
mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(41), score INT(20), money INT(20),admin INT(4), IP VARCHAR(16) )");
    //Fields:
Firstly there, the admin integer is added to the table if it don't exist.

Create a global variable (not inside any public function or stock):
pawn Код:
new PlayaAdmin[MAX_PLAYERS];
So now, in this:

pawn Код:
stock MySQL_Login(playerid)
{
    new query[300], pname[24], savingstring[20];
    GetPlayerName(playerid, pname, 24);
    format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", pname);
    //We only select the variables that we want to use.
    //We don't need things like the password string or the user string.
    mysql_query(query); //Queries the result
    mysql_store_result(); //Store a result because it's a SELECT statement.
    while(mysql_fetch_row_format(query,"|"))
    {
        //We use while so that it does a single query, not multiple
        //Especially when we have more variables. If there is more
        //Variables, you should just split the line with sscanf. To
        //Make it easier.
        mysql_fetch_field_row(savingstring, "score"); SetPlayerScore(playerid, strval(savingstring));
        mysql_fetch_field_row(savingstring, "money"); MoneyGiven[playerid] = strval(savingstring);
        //If you are wondering why I'm using savingstring instead
        //Of a variable like using MoneyGiven right away, it's because
        //mysql_fetch_field_row requires a string.
    }
    mysql_free_result(); //We must always free a stored result
    SendClientMessage(playerid, -1, "You have been logged in!"); //Sends the client a message.
    Logged[playerid] = 1; //Sets our logged in variable to one
    return 1;
}
pawn Код:
mysql_fetch_field_row(savingstring, "admin"); PlayaAdmin[playerid] = strval(savingstring);
Put this in underneath:
pawn Код:
MoneyGiven[playerid] = strval(savestring);
Now on any admin command, you can do this (here is an example):

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/kick", cmdtext, true, 10) == 0)
    {
        new otherplayer;
        if(PlayaAdmin[playerid] >= 1 || IsPlayerAdmin(playerid))
        {
            if(sscanf(cmdtext,"u",otherplayer)) return SendClientMessage(playerid,0xFFFFFF00,"Usage: /kick [ID]");
            Kick(otherplayer);
        }
        else SendClientMessage(playerid,0xFFFFFF00,"SERVER: Unknown command.");
        return 1;
    }
    return 0;
}
Reply


Messages In This Thread
Admin levels using mysql - by CoDeZ - 28.06.2012, 20:53
Re: Admin levels using mysql - by [A]ndrei - 28.06.2012, 21:15
Re: Admin levels using mysql - by CoDeZ - 28.06.2012, 21:31
Re: Admin levels using mysql - by phillip875 - 29.06.2012, 00:12
Re: Admin levels using mysql - by CoDeZ - 29.06.2012, 10:56
Re: Admin levels using mysql - by phillip875 - 29.06.2012, 11:02
Re: Admin levels using mysql - by CoDeZ - 29.06.2012, 11:08
Re: Admin levels using mysql - by phillip875 - 29.06.2012, 11:22
Re: Admin levels using mysql - by Calabresi - 29.06.2012, 11:23
Re: Admin levels using mysql - by Djole1337 - 29.06.2012, 11:39

Forum Jump:


Users browsing this thread: 3 Guest(s)