All pastes #829669 Raw Edit

Miscellany

public text v1 · immutable
#829669 ·published 2007-12-23 10:52 UTC
rendered paste body
if(strcmp(cmd, "/setadmin", true) == 0 || strcmp(cmd, "/setlevel", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
		if(IsStringAName(tmp))
		{
			giveplayerid = GetPlayerID(tmp);
		}
		else
		{
			giveplayerid = strval(tmp);
		}
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_DBLUE, "Correct Usage: /setadmin [playerid] [level]");
			return 1;
		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_DBLUE, "Correct Usage: /setadmin [playerid] [level]");
			return 1;
		}
		if(logged[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "You must be logged in to use this command!");
			return 1;
		}
		if(logged[giveplayerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "The player You're setting rights to must be logged in!");
			return 1;
		}
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		level[playerid] = strval(tmp);
		if(level[playerid] < 0)
		{
			SendClientMessage(playerid, COLOR_RED, "Invalid Admin Level");
            return 1;
		}
		if(level[playerid] > 3)
		{
			SendClientMessage(playerid, COLOR_RED, "Invalid Admin Level");
            return 1;
		}
		if(level[playerid] == PlayerInfo[giveplayerid][pAdmin])
		{
            format(string, sizeof(string), "That player already has level %d admin privileges.", level[playerid]);
            SendClientMessage(playerid, COLOR_BLUE, string);
            return 1;
		}
		if(IsPlayerAdmin(playerid))
		{
		    if(IsPlayerConnected(giveplayerid))
		    {
				GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				GetPlayerName(playerid, sendername, sizeof(sendername));
				dini_IntSet(udb_encode(giveplayer), "level", level[playerid]);
				format(string, sizeof(string), "You have given %s level %d admin powers.", giveplayer, level[playerid]);
				SendClientMessage(playerid, COLOR_BLUE, string);
				format(string, sizeof(string), "You were made a level %d admin by %s (id: %d).", level[playerid], sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_BLUE, string);
				PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /setadmin to set %s ' level to: %d", PlayerName, giveplayer, level[playerid]);
			}
			else
			{
			    format(string, sizeof(string), "%d is not an active player ID number.", giveplayerid);
            	SendClientMessage(playerid, COLOR_RED, string);
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/setmeadmin", true) == 0)
	{
	    if(logged[playerid] == 1)
	    {
		    if(IsPlayerAdmin(playerid))
		    {
				GetPlayerName(playerid, sendername, sizeof(sendername));
		        level[playerid] = 3;
		        level[playerid] = dini_Int(udb_encode(sendername), "level");
		        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		        level[playerid] = PlayerInfo[playerid][pAdmin];
		        SendClientMessage(playerid, COLOR_RED, "You've set Your level to 3, Server Main Administration");
		        SendClientMessage(playerid, COLOR_RED, "Check out /adminhelp for administration commands.");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You have to be RCON admin to set Yourself admin!");
			}
			return 1;
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You must be logged in!");
		}
		return 1;
	}