problem in /admins
#1

Guys i made command /admins but i having an issue in the command in that command not showing higher admins on top

its showing like this
Admins Online:
XYZ - Admin Level 4
ABC - Admin Level 5

but i want to make it like this

Admins Online:
XYZ - Admin Level 5
ABC - Admin Level 4

here is my code

pawn Код:
#define ADMIN_LEVEL_1 "Server Moderator"
#define ADMIN_LEVEL_2 "Global Moderator"
#define ADMIN_LEVEL_3 "Admin"
#define ADMIN_LEVEL_4 "Lead Admin"
#define ADMIN_LEVEL_5 "Server Owner/Developer"


#define LEVEL_1_COLOR "{FF6600}"              //Administrator Level 1 colour
#define LEVEL_2_COLOR "{0000FF}"              //Administrator Level 2 colour
#define LEVEL_3_COLOR "{00B300}"              //Administrator Level 3 colour
#define LEVEL_4_COLOR "{FF0000}"              //Administrator Level 4 colour
#define LEVEL_5_COLOR "{FF0000}"              //Administrator Level 5 colour
pawn Код:
CMD:admins(playerid,params[])
{
   new IsOnline = 0;
   new string[128];
   new LevelName[30];
   new LevelColor[20];
   SendClientMessage(playerid,COLOR_WHITE,"Current admins online:");
   foreach(Player, i)
   {
      if (PlayerInfo[i][AdminLevel] >= 1 && Hidden[i]==0)
      {
              switch(PlayerInfo[i][AdminLevel])
              {
                  case 1: {
                  LevelName = ADMIN_LEVEL_1;
                  LevelColor = LEVEL_1_COLOR;
                  }
                  case 2: {
                  LevelName = ADMIN_LEVEL_2;
                  LevelColor = LEVEL_2_COLOR;
                  }
                  case 3: {
                  LevelName = ADMIN_LEVEL_3;
                  LevelColor = LEVEL_3_COLOR;
                  }
                  case 4: {
                  LevelName = ADMIN_LEVEL_4;
                  LevelColor = LEVEL_4_COLOR;
                  }
                  default: {
                  LevelName = ADMIN_LEVEL_5;
                  LevelColor = LEVEL_5_COLOR;
                  }
              }
              if (IsPlayerAdmin(i)) format(string, 128, "%s - {FF0000}RCON Administrator\n",GetName(i));
              else format(string, 128, "%s - %s %s\n",GetName(i),LevelColor,LevelName);
              SendClientMessage(playerid,COLOR_WHITE,string);
              IsOnline++;
        }
   }
   if (IsOnline == 0)
   SendClientMessage(playerid,COLOR_GREY,"There are no admins Online at the moment");
   return 1;
}
any solution?
Reply
#2

I think this should help you out.
Reply
#3

Quote:
Originally Posted by Tayab
Посмотреть сообщение
I think this should help you out.
Nothing in your link
Reply
#4

I think it depends on the ID
Reply
#5

Use 5 formats respectively instead of cases and also use if conditions and use 1 sendclinetmessage
Reply
#6

I didn't notice at first try this and tell me if it works
Код:
CMD:admins(playerid,params[])
{
   new IsOnline = 0;
   new string[128];
   new LevelName[30];
   new LevelColor[20];
   SendClientMessage(playerid,COLOR_WHITE,"Current admins online:");
   foreach(Player, i)
   {
      if (PlayerInfo[i][AdminLevel] >= 1 && Hidden[i]==0)
      {
              switch(PlayerInfo[i][AdminLevel])
              {
                  case 1: {
                  LevelName = ADMIN_LEVEL_5;
                  LevelColor = LEVEL_5_COLOR;
                  }
                  case 2: {
                  LevelName = ADMIN_LEVEL_4;
                  LevelColor = LEVEL_4_COLOR;
                  }
                  case 3: {
                  LevelName = ADMIN_LEVEL_3;
                  LevelColor = LEVEL_3_COLOR;
                  }
                  case 4: {
                  LevelName = ADMIN_LEVEL_2;
                  LevelColor = LEVEL_2_COLOR;
                  }
                  default: {
                  LevelName = ADMIN_LEVEL_1;
                  LevelColor = LEVEL_1_COLOR;
                  }
              }
              if (IsPlayerAdmin(i)) format(string, 128, "%s - {FF0000}RCON Administrator\n",GetName(i));
              else format(string, 128, "%s - %s %s\n",GetName(i),LevelColor,LevelName);
              SendClientMessage(playerid,COLOR_WHITE,string);
              IsOnline++;
        }
   }
   if (IsOnline == 0)
   SendClientMessage(playerid,COLOR_GREY,"There are no admins Online at the moment");
   return 1;
}
Reply
#7

Quote:
Originally Posted by Rockyyy
Посмотреть сообщение
I didn't notice at first try this and tell me if it works
Код:
CMD:admins(playerid,params[])
{
   new IsOnline = 0;
   new string[128];
   new LevelName[30];
   new LevelColor[20];
   SendClientMessage(playerid,COLOR_WHITE,"Current admins online:");
   foreach(Player, i)
   {
      if (PlayerInfo[i][AdminLevel] >= 1 && Hidden[i]==0)
      {
              switch(PlayerInfo[i][AdminLevel])
              {
                  case 1: {
                  LevelName = ADMIN_LEVEL_5;
                  LevelColor = LEVEL_5_COLOR;
                  }
                  case 2: {
                  LevelName = ADMIN_LEVEL_4;
                  LevelColor = LEVEL_4_COLOR;
                  }
                  case 3: {
                  LevelName = ADMIN_LEVEL_3;
                  LevelColor = LEVEL_3_COLOR;
                  }
                  case 4: {
                  LevelName = ADMIN_LEVEL_2;
                  LevelColor = LEVEL_2_COLOR;
                  }
                  default: {
                  LevelName = ADMIN_LEVEL_1;
                  LevelColor = LEVEL_1_COLOR;
                  }
              }
              if (IsPlayerAdmin(i)) format(string, 128, "%s - {FF0000}RCON Administrator\n",GetName(i));
              else format(string, 128, "%s - %s %s\n",GetName(i),LevelColor,LevelName);
              SendClientMessage(playerid,COLOR_WHITE,string);
              IsOnline++;
        }
   }
   if (IsOnline == 0)
   SendClientMessage(playerid,COLOR_GREY,"There are no admins Online at the moment");
   return 1;
}
i already try this with this code its showing if player is level 5 admins then showing in admins abc- Server moderator and if player is level 1 admin showing on that player as abc - server owner / developer
Reply
#8

Maybe this could help. What I did is replaced the cases with separated if statements.

pawn Код:
CMD:admins(playerid,params[])
{
    new IsOnline = 0;
    new string[128];
    new LevelName[30];
    new LevelColor[20];
    SendClientMessage(playerid,COLOR_WHITE,"Current admins online:");
    foreach(Player, i)
    {
        if(Hidden[i] == 0)
        {
            if (PlayerInfo[i][AdminLevel] == 1)
            {
                LevelName = ADMIN_LEVEL_1;
                LevelColor = LEVEL_1_COLOR;
            }
            if (PlayerInfo[i][AdminLevel] == 2)
            {
                LevelName = ADMIN_LEVEL_2;
                LevelColor = LEVEL_2_COLOR;
            }
            if (PlayerInfo[i][AdminLevel] == 3)
            {
                LevelName = ADMIN_LEVEL_3;
                LevelColor = LEVEL_3_COLOR;
            }
            if (PlayerInfo[i][AdminLevel] == 4)
            {
                LevelName = ADMIN_LEVEL_4;
                LevelColor = LEVEL_4_COLOR;
            }
            if (PlayerInfo[i][AdminLevel] == 5)
            {
                LevelName = ADMIN_LEVEL_5;
                LevelColor = LEVEL_5_COLOR;
            }
            if (IsPlayerAdmin(i)) format(string, 128, "%s - {FF0000}RCON Administrator\n",GetName(i));
            else format(string, 128, "%s - %s %s\n",GetName(i),LevelColor,LevelName);
            SendClientMessage(playerid,COLOR_WHITE,string);
            IsOnline++;
        }
    }
    if (IsOnline == 0) {
    SendClientMessage(playerid,COLOR_GREY,"There are no admins Online at the moment");
    }
    return 1;
}
Reply
#9

Not works btw i fix it my self thanks for reply
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)