27.10.2010, 17:23
how to select a random player from all connected players?
stock GetRandomPlayer()
{
//Get number of conneted players first
new players = 0;
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i)) players ++;
}
//now select a random number from 0 to players
//note that this is NOT the playerid yet
players = random(players) + 1;
//Loop through connected players again, until you reach the "players"th player
for(new i = 0; i < GetMaxPlayers(); i ++)
{
if(IsPlayerConnected(i))
{
players --; //single-variable pwnage ;)
if(players == 0) return i;
}
}
return 0;
}
stock GetRandomPlayer()
{
new ConnectedPlayers[MAX_PLAYERS];
new idx;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ConnectedPlayers[idx] = i;
idx++;
}
}
return ConnectedPlayers[random(idx)];
}