Du kannst das so schreiben:
stock CountTeams()
{
new count;
for(new i; i<TEAMSIZE; i++) if(GetTeamPlayerCount(i) > 0) count++;
return count;
}
stock TeamsAlive(bool:value)
{
if(CountTeams() != 1) return 1;
static const teams[][] = {
FIRST_TEAM_COLOR_TAG,
SECOND_TEAM_COLOR_TAG,
THIRD_TEAM_COLOR_TAG,
FOURTH_TEAM_COLOR_TAG,
FIFTH_TEAM_COLOR_TAG,
SIXTH_TEAM_COLOR_TAG
};
new string[128];
format(string,sizeof(string),"SERVER: All remaining teams have been wiped. Team %s {FFFFFF}has won the game!",teams[TeamsAlive(true)]);
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
SendClientMessage(i,-1,string),
printf(string),
ResetPlayerData(i);
}
FinishedGame();
return i;
}
Alles anzeigen
Weiß nicht, was du mit der value als Parameter vor hast.
Es ist besser vor der Schleife einmal den String zu formatieren, ansonsten wird er bei jedem durchlauf formatiert, das ist ja ineffizient.
TeamsAlive(true) gibt hoffentlich 0 als ersten Index zurück 