18.09.2011, 14:06
Problem Fixed...
I Want Admin Level To Be Set Into An Enum So I Can Choose From Admin Levels.
Instead Of Having All This SQLite Code In Each Command.
Enum Called: PlayerInfo
Код:
COMMAND:setlevel(playerid, params[])
{
new id,lvl,string[128];
new Query[250];
new pName[24], pTame[24],targetid;
GetPlayerName(playerid,pName,24);
GetPlayerName(targetid,pTame,24);
new DBResult: Result,name[ MAX_PLAYER_NAME ], Field[ 20 ],PlayerLevel;
GetPlayerName(playerid, name, sizeof(name));
format(Query, sizeof(Query), "SELECT `ADMINLEVEL` FROM `USERS` WHERE `NAME` = '%s'", name);
db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
PlayerLevel = strval(Field);
if(PlayerLevel < 0) return SendClientMessage(playerid,COLOR_RED,"You Are Not Allowed Access To This Command!");
if(sscanf(params,"ui",id,lvl)) return SendClientMessage(playerid,COLOR_GREEN,""COL_GREY"/setlevel [PlayerID] [Level]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_RED"[ERROR]"COL_CMD" Player Not Connected!");
format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s Has Been Promoted To Admin Level:(%d) By Administrator: %s",pTame,lvl,pName);
SendClientMessage(id,COLOR_GREEN,string);
if(PlayerInfo[id][AdminLevel] < lvl)
{
GameTextForPlayer(id,"~g~~h~~h~Promoted!",4000,3);
}
if(PlayerInfo[id][AdminLevel] > lvl)
{
GameTextForPlayer(id,"~r~~h~Demoted!",4000,3);
}
format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s(%d) Has Been Set To Level %d",pTame,id,lvl);
SendClientMessage(playerid,COLOR_GREEN,string);
PlayerInfo[id][AdminLevel] = lvl;
db_free_result(Result);
return 0;
}
Instead Of Having All This SQLite Code In Each Command.
Enum Called: PlayerInfo

