SA-MP Forums Archive
[SOLVED] /admins problem - writes about 10-15 lines - 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)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [SOLVED] /admins problem - writes about 10-15 lines (/showthread.php?tid=78319)



[SOLVED] /admins problem - writes about 10-15 lines - Castle - 19.05.2009

heres the cmd: http://pastebin.com/f5f3e12cc
the problem is: I do it IG and Instead getting this:
Код:
____________Admins____________

AdminRank Admin_Name

______________________________
I get this:
Код:
AdminRank Admin_Name

AdminRank Admin_Name

AdminRank Admin_Name

AdminRank Admin_Name

AdminRank Admin_Name

______________________________
Wheres is the problem?


Re: /admins problem - writes about 10-15 lines - MenaceX^ - 19.05.2009

Your loop checks player's admin level.


Re: /admins problem - writes about 10-15 lines - Castle - 19.05.2009

Ok, so how can I make it to check only once and display only the Rank name instead number?


Re: /admins problem - writes about 10-15 lines - pen_theGun - 19.05.2009

pawn Код:
if(strcmp( cmd, "/admins", true ) == 0)
{
    SendClientMessage( playerid, COLOR_GREEN, "_______________Admins_______________" );
    for( new targetid=0; targetid<MAX_PLAYERS; targetid++ )
    {
     if( IsPlayerConnected(targetid) && PlayerInfo[targetid][pAdmin] >0 )
        {
            if( PlayerInfo[targetid][pAdmin] == 1 ){ format( string, sizeof(string), "* %s %s: (ID:%d)", AdminRank1, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 2 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank2, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 3 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank3, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 4 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank4, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 5 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank5, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 6 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank6, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 7 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank7, GetPlayerNameEx(targetid), targetid ); }
            else if( PlayerInfo[targetid][pAdmin] == 1337 ){ format( string, sizeof( string ), "* %s %s: (ID:%d)", AdminRank8, GetPlayerNameEx(targetid), targetid ); }
            SendClientMessage( playerid, COLOR_GRAD1, string );
        }
    }
    SendClientMessage( playerid, COLOR_GREEN, "_____________________________________" );
    return 1;
}



Re: /admins problem - writes about 10-15 lines - MenaceX^ - 19.05.2009

Or just take your code and change what ever is inside the loop to 'i' instead of 'playerid', exept who you want the message to be sent to (probably playerid)


Re: /admins problem - writes about 10-15 lines - Castle - 20.05.2009

I got to this CMD with your help:
pawn Код:
if(strcmp(cmd, "/admins", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
        for(new i=0; i<MAX_PLAYERS; i++)
        {
          if(IsPlayerConnected(i))
          {
            SendClientMessage(playerid, COLOR_GREEN, "_______________Admins_______________");
            SendClientMessage(playerid, COLOR_GRAD1, " ");
                if(PlayerInfo[i][pAdmin] == 1){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank1, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 2){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank2, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 3){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank3, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 4){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank4, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 5){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank5, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 6){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank6, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 7){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank7, GetPlayerNameEx(i)); }
                    else if(PlayerInfo[i][pAdmin] == 1337){ format(string, sizeof(string), "(%d) %s %s", i, AdminRank8, GetPlayerNameEx(i)); }
                    SendClientMessage(playerid, COLOR_GRAD1, string);
                    SendClientMessage(playerid, COLOR_GRAD1, " ");
                    SendClientMessage(playerid, COLOR_GREEN, "_____________________________________");
                    return 1;
                }
                else if(!IsPlayerConnected(i)){ SendClientMessage(playerid, COLOR_GRAD1, "Unfortunatly there are no admins online"); return 1; }
            }
        }
        return 1;
    }
but this happanes:
I'm an admin all works fine
I'm not admin server crashes


Re: /admins problem - writes about 10-15 lines - ICECOLDKILLAK8 - 20.05.2009

pawn Код:
#define AdminRank[1]          "Server Moderator"
#define AdminRank[2]          "Roleplay Administrator"
#define AdminRank[3]          "Game Administrator"
#define AdminRank[4]          "Senior Game Admin"
#define AdminRank[5]          "RP/Forum Supervisor"
#define AdminRank[6]          "Admin Supervisor"
#define AdminRank[7]          "Server Supervisor"
#define AdminRank[8]          "Server Owner"

if(strcmp(cmd, "/admins", true) == 0)
{
  new adminsOnline;
  if(IsPlayerConnected(playerid))
  {
    SendClientMessage(playerid, COLOR_GREEN, "_______________Admins_______________");
    SendClientMessage(playerid, COLOR_GRAD1, " ");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
      if(IsPlayerConnected(i))
      {
        if(PlayerInfo[i][pAdmin != 0)
        {
         format(string, sizeof(string), "(%d) %s %s", i, AdminRank[PlayerInfo[i][pAdmin]], GetPlayerNameEx(i));
          SendClientMessage(playerid, COLOR_GRAD1, string);
          adminsOnline++;
        }
        return 1;
      }
    }
    if(adminsOnline == 0)
    {
      SendClientMessage(playerid, COLOR_GRAD1,"Unfortunatly there are no admins online");
    }
    SendClientMessage(playerid, COLOR_GRAD1, " ");
    SendClientMessage(playerid, COLOR_GREEN, "_____________________________________");
  }
  return 1;
}
Look at what your code is actually doing next time, In summary it was sending 200+ messages to the client regardless of weather there were any admins online or not and attempting to send a message to every client, again regardless of weather they are online or not.


Re: /admins problem - writes about 10-15 lines - Castle - 20.05.2009

I get this Errors & Warnings:
Код:
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(83) : warning 201: redefinition of constant/macro (symbol "AdminRank[2]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(84) : warning 201: redefinition of constant/macro (symbol "AdminRank[3]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(85) : warning 201: redefinition of constant/macro (symbol "AdminRank[4]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(86) : warning 201: redefinition of constant/macro (symbol "AdminRank[5]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(87) : warning 201: redefinition of constant/macro (symbol "AdminRank[6]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(88) : warning 201: redefinition of constant/macro (symbol "AdminRank[7]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(89) : warning 201: redefinition of constant/macro (symbol "AdminRank[1337]")
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(10806) : error 017: undefined symbol "AdminRank"
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(10806) : warning 215: expression has no effect
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(10806) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(10806) : error 029: invalid expression, assumed zero
C:\Documents and Settings\User\Desktop\SAMP GameMode\gamemodes\GM.pwn(10806) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
the error of line 10806 belongs to this line:
pawn Код:
format(string, sizeof(string), "[ID:%d] %s %s", i, AdminRank[PlayerInfo[i][pAdmin]], GetPlayerNameEx(i));
whats the problem!?


Re: /admins problem - writes about 10-15 lines - MenaceX^ - 20.05.2009

pawn Код:
if(!strcmp(cmd,"/admins",true))
{ // forgot to add something
  for(new i=0;i<MAX_PLAYERS;i++)
  {
    if(IsPlayerConnected(i)&&PlayerInfo[i][pAdmin])
    {
      switch(PlayerInfo[i][pAdmin])
      {
        case 1: format(string,sizeof(string),"Server Moderator");
        case 2: format(string,sizeof(string),"Roleplay Administrator");
        case 3: format(string,sizeof(string),"Game Administrator");
        case 4: format(string,sizeof(string),"Senior Game Admin");
        case 5: format(string,sizeof(string),"RP/Forum Supervisor");
        case 6: format(string,sizeof(string),"Admin Supervisor");
        case 1337: format(string,sizeof(string),"Server Supervisor");
        case 1338: format(string,sizeof(string),"Server Owner");
        default: format(string,sizeof(string),"Server Moderator");
      }
      format(string,sizeof(string),"%s %s(ID:%d)",string,name(i),i); // just change name to what ever you use as name variable.
      SendClientMessage(playerid,COLOR_GREY,string);
    }
  }
  return 1;
}
One more question -
GetPlayerNameEx = my name function to remove _ between names?


Re: /admins problem - writes about 10-15 lines - Castle - 20.05.2009

Quote:
Originally Posted by MenaceX^
pawn Код:
if(!strcmp(cmd,"/admins",true))
{ // forgot to add something
  for(new i=0;i<MAX_PLAYERS;i++)
  {
    if(IsPlayerConnected(i)&&PlayerInfo[i][pAdmin])
    {
      switch(PlayerInfo[i][pAdmin])
      {
        case 1: format(string,sizeof(string),"Server Moderator");
        case 2: format(string,sizeof(string),"Roleplay Administrator");
        case 3: format(string,sizeof(string),"Game Administrator");
        case 4: format(string,sizeof(string),"Senior Game Admin");
        case 5: format(string,sizeof(string),"RP/Forum Supervisor");
        case 6: format(string,sizeof(string),"Admin Supervisor");
        case 1337: format(string,sizeof(string),"Server Supervisor");
        case 1338: format(string,sizeof(string),"Server Owner");
        default: format(string,sizeof(string),"Server Moderator");
      }
      format(string,sizeof(string),"%s %s(ID:%d)",string,name(i),i); // just change name to what ever you use as name variable.
      SendClientMessage(playerid,COLOR_GREY,string);
    }
  }
  return 1;
}
One more question -
GetPlayerNameEx = my name function to remove _ between names?
I'm using Carlito's RolePlay Script... I dunno if the function is yours or not.