SA-MP Forums Archive
setadmin command level range - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: setadmin command level range (/showthread.php?tid=501955)



setadmin command level range - AhmedMohamed - 21.03.2014

Hello All I made setadmin command and I want to make the max level is 8 but I don't know
Код:
CMD:setadmin(playerid,params[]) {
		if(PlayerInfo[playerid][Level] >= 8 || IsPlayerAdmin(playerid)) {
		    new tmp[256], tmp2[256], Index;		tmp = strtok(params,Index), tmp2 = strtok(params,Index);
		    if(isnull(params)) return SendClientMessage(playerid, red, "USAGE:{FFFFFF} /setadmin [playerid] [level]");
	    	new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
			player1 = strval(tmp);
			if(isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE:{FFFFFF} /setadmin [playerid] [level]");
			level = strval(tmp2);

			if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
				if(PlayerInfo[player1][LoggedIn] == 1) {
					if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
					GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
			       	new year,month,day;   getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);

					if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
					else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
					SendClientMessage(player1,blue,string);

					if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"~g~Promoted", 2000, 3);
					else GameTextForPlayer(player1,"~r~Demoted", 2000, 3);

					format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
					format(string,sizeof(string),"Administrator %s has made %s Level %d on %d/%d/%d at %d:%d:%d",adminname, playername, level, day, month, year, hour, minute, second);
					SaveToFile("AdminLog",string);
					dUserSetINT(PlayerName2(player1)).("level",(level));
					PlayerInfo[player1][Level] = level;
					return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
				} else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
			} else return SendClientMessage(playerid, red, "ERROR:Player is not connected");
		} else return SendClientMessage(playerid, grey, "ERROR: You're not authorized to use that command");
}



Re: setadmin command level range - MythicalMarauder - 21.03.2014

Define your maximum level at the top of the script, like this:
pawn Код:
#define MAX_LEVEL 8
Now, copy this and test it out:
pawn Код:
CMD:setadmin(playerid,params[]) {
        if(PlayerInfo[playerid][Level] >= 8 || IsPlayerAdmin(playerid)) {
            new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
            if(isnull(params)) return SendClientMessage(playerid, red, "USAGE:{FFFFFF} /setadmin [playerid] [level]");
            new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
            player1 = strval(tmp);
            if(isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE:{FFFFFF} /setadmin [playerid] [level]");
            level = strval(tmp2);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
                if(PlayerInfo[player1][LoggedIn] == 1) {
                    if(level == PlayerInfo[player1][Level]) return SendClientMessage(playerid,red,"ERROR: Player is already this level");
                    GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
                    new year,month,day;   getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);

                    if(level > 0) format(string,sizeof(string),"Administrator %s has set you to Administrator Status [level %d]",adminname, level);
                    else format(string,sizeof(string),"Administrator %s has set you to Player Status [level %d]",adminname, level);
                    SendClientMessage(player1,blue,string);
                    if(level > MAX_LEVEL)
                    {
                             SendClientMessage(playerid, red, "Incorrect level, max level is 8!");
                    }    
                    if(level > PlayerInfo[player1][Level]) GameTextForPlayer(player1,"~g~Promoted", 2000, 3);
                   
                    else GameTextForPlayer(player1,"~r~Demoted", 2000, 3);

                    format(string,sizeof(string),"You have made %s Level %d on %d/%d/%d at %d:%d:%d", playername, level, day, month, year, hour, minute, second); SendClientMessage(playerid,blue,string);
                    format(string,sizeof(string),"Administrator %s has made %s Level %d on %d/%d/%d at %d:%d:%d",adminname, playername, level, day, month, year, hour, minute, second);
                    SaveToFile("AdminLog",string);
                    dUserSetINT(PlayerName2(player1)).("level",(level));
                    PlayerInfo[player1][Level] = level;
                    return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
                } else return SendClientMessage(playerid,red,"ERROR: Player must be registered and logged in to be admin");
            } else return SendClientMessage(playerid, red, "ERROR:Player is not connected");
        } else return SendClientMessage(playerid, grey, "ERROR: You're not authorized to use that command");
}



Re: setadmin command level range - AhmedMohamed - 22.03.2014

I did it already before i see it anyway thank you and REP+ for helping me


Re: setadmin command level range - MythicalMarauder - 22.03.2014

No problem.