/makeadmin Fail?
#1

I just made this command but it doesen't work, i can only use it on myself. But not on others.
pawn Код:
CMD:setadmin(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new giveplayerid, level;
        new sendername[32], string[128];
        if(sscanf(params, "ud", giveplayerid, level))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /setadmin <playerid> <level>");
            return 1;
        }
        if(level > 5 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "> Don't go below 0 or higher then 5!"); return 1; }
       
        if(IsPlayerConnected(giveplayerid))
        {
            new ranktext[32];
            if(PlayerInfo[giveplayerid][pAdmin] == 1) { ranktext = "Trial Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 2) { ranktext = "Basic Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 3) { ranktext = "Lead Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 4) { ranktext = "Head Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 5) { ranktext = "Owner"; }
            else { return 1; }

            PlayerInfo[giveplayerid][pAdmin] = level;
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string),"> Admin %s has promoted you to a %s", sendername, ranktext);
            SendClientMessage(giveplayerid, 0xFFFFFFFF, string);
        }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Only Admins can perform this action.");
    return 1;
}
Reply
#2

I think it's because of this

pawn Код:
if(PlayerInfo[playerid][pAdmin] >= 1)
It should be
pawn Код:
if(PlayerInfo[playerid][pAdmin] = 5)
pawn Код:
CMD:setadmin(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] == 5)
    {
        new giveplayerid, adminlevel;
        new sendername[32], string[128];
        if(sscanf(params, "ud", giveplayerid, adminlevel))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /setadmin <playerid> <level>");
            return 1;
        }
        if(adminlevel > 5 || adminlevel < 0) { SendClientMessage(playerid, COLOR_GREY, "> You can't go below 0, nor above 5."); return 1; }

        if(IsPlayerConnected(giveplayerid))
        {
            new ranktext[32];
            if(PlayerInfo[giveplayerid][pAdmin] == 1) { ranktext = "Trial Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 2) { ranktext = "Basic Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 3) { ranktext = "Lead Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 4) { ranktext = "Head Admin"; }
            else if(PlayerInfo[giveplayerid][pAdmin] == 5) { ranktext = "Owner"; }
            else { return 1; }

            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string),"> Admin %s has promoted you to a %s", sendername, ranktext);
            SendClientMessage(giveplayerid, 0xFFFFFFFF, string);
            PlayerInfo[playerid][pAdmin] = adminlevel;
        }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Only Admins can perform this action.");
    return 1;
}
EDIT: That one should work.
Reply
#3

@PlayHard, it isn't man.
Reply
#4

Yes. It didn't work.
Reply
#5

Changed it to this but still doesen't work
pawn Код:
CMD:setadmin(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new targetid, level;
        new sendername[32], string[128];
        if(sscanf(params, "ui", targetid, level))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /setadmin <playerid> <level>");
            return 1;
        }
        if(level > 5 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "> Don't go below 0 or higher then 5!"); return 1; }
       
        if(IsPlayerConnected(targetid))
        {
            new ranktext[32];
            if(PlayerInfo[targetid][pAdmin] == 1) { ranktext = "Trial Admin"; }
            else if(PlayerInfo[targetid][pAdmin] == 2) { ranktext = "Basic Admin"; }
            else if(PlayerInfo[targetid][pAdmin] == 3) { ranktext = "Lead Admin"; }
            else if(PlayerInfo[targetid][pAdmin] == 4) { ranktext = "Head Admin"; }
            else if(PlayerInfo[targetid][pAdmin] == 5) { ranktext = "Owner"; }
            else { return 1; }

            PlayerInfo[targetid][pAdmin] = level;
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string),"> Admin %s has promoted you to a %s", sendername, ranktext);
            SendClientMessage(targetid, 0xFFFFFFFF, string);
        }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Only Admins can perform this action.");
    return 1;
}
Reply
#6

Try this
pawn Код:
CMD:setadmin(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new targetid, level;
        new sendername[32], string[128];
        if(sscanf(params, "ui", targetid, level))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /setadmin <playerid> <level>");
            return 1;
        }
        if(level > 5 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "> Don't go below 0 or higher then 5!"); return 1; }
       
        if(IsPlayerConnected(targetid))
        {
            new ranktext[32];
            PlayerInfo[targetid][pAdmin] = level;
            if(level == 1) { ranktext = "Trial Admin"; }
            else if(level == 2) { ranktext = "Basic Admin"; }
            else if(level == 3) { ranktext = "Lead Admin"; }
            else if(level == 4) { ranktext = "Head Admin"; }
            else if(level == 5) { ranktext = "Owner"; }
            else { return 1; }

           
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string),"> Admin %s has promoted you to a %s", sendername, ranktext);
            SendClientMessage(targetid, 0xFFFFFFFF, string);
        }
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Only Admins can perform this action.");
    return 1;
}
Also, why all the return 1s? You only need to do it once, at the end, so that the script knows that it was a valid command.
Reply
#7

Ill give u mine MakeAdmin, try if it works:
Код:
	if(strcmp(cmd, "/makeadmin", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /makeadmin [ID Igraca/Dio Imena] [level(1-3)]");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			level = strval(tmp);
			if(PlayerInfo[playerid][pAdmin] >= 1337)
			{
			    if(IsPlayerConnected(para1))
			    {
			        if(para1 != INVALID_PLAYER_ID)
			        {
						GetPlayerName(para1, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						PlayerInfo[para1][pAdmin] = level;
						printf("AdmCmd: Admin je %s-u dao odredjeni admin level.", sendername, giveplayer, level);
						format(string, sizeof(string), "  Admin vam je dao/oduzeo admin level ", level, sendername);
						SendClientMessage(para1, COLOR_WHITE, string);
						format(string, sizeof(string), "   Dali/oduzeli ste %s-u admin level .", giveplayer,level);
						SendClientMessage(playerid, COLOR_WHITE, string);
					}
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "   Niste ovlasteni da koristite tu komandu!");
			}
		}
		return 1;
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)