/staff command fails to have more than one staff member on it. -
OMonger - 17.08.2015
My staff script only shows you if you are an admin. It doesn't show any other administrator.
Код:
command(staff, playerid, params[])
{
#pragma unused params
new string[128];
SendClientMessage(playerid, COLOR_ORANGE, ". : : Administrators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4}: (Level %d) {%s}", RPName(playerid), PlayerInfo[playerid][pAdmin], GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Moderators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pModerator] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(i));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Helpers : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pHelper] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
return 1;
}
Please fix.
Re: /staff command fails to have more than one staff member on it. -
rymax99 - 17.08.2015
You're returning when a staff member is found, so it isn't going to continue. Using multiple loops is useless and inefficient, you should also consider using foreach.
Код:
command(staff, playerid, params[])
{
#pragma unused params
new string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_ORANGE, ". : : Administrators : : .");
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4}: (Level %d) {%s}", RPName(playerid), PlayerInfo[playerid][pAdmin], GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Moderators : : .");
if(PlayerInfo[playerid][pModerator] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(i));
SendClientMessage(playerid, GREY, string);
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Helpers : : .");
if(PlayerInfo[playerid][pHelper] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
}
}
}
return 1;
}
Re: /staff command fails to have more than one staff member on it. -
arad55 - 17.08.2015
Код:
command(staff, playerid, params[])
{
#pragma unused params
new string[128];
SendClientMessage(playerid, COLOR_ORANGE, ". : : Administrators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4}: (Level %d) {%s}", RPName(playerid), PlayerInfo[playerid][pAdmin], GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Moderators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pModerator] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(i));
SendClientMessage(playerid, GREY, string);
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Helpers : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pHelper] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
}
}
}
return 1;
}
You returned right after sending a message about an admin/mod/helper, that's why the function stopped executing after one staff member.
Re: /staff command fails to have more than one staff member on it. -
Roberto80 - 17.08.2015
This:
Код:
command(staff, playerid, params[])
{
#pragma unused params
new string[128],text[1000]
SendClientMessage(playerid, COLOR_ORANGE, ". : : Administrators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4}: (Level %d) {%s}", RPName(playerid), PlayerInfo[playerid][pAdmin], GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Moderators : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pModerator] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(i));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_ORANGE, ". : : Helpers : : .");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pHelper] >= 1)
{
format(string, sizeof(string), "Name: %s{A9C4E4} {%s}", RPName(playerid), GetAwayStatus(playerid));
SendClientMessage(playerid, GREY, string);
return 1;
}
}
}
strcat(string,"\n");
strcat(text,string);
SendClientMessage(playerid,GREY,text);
return 1;
}
This will show all in one soo remove all SendClientMessage
Re: /staff command fails to have more than one staff member on it. -
OMonger - 17.08.2015
thanks.