PHP Code:
GetRandomPlayer()
{
static iPlayerBits, i
//Make a bitsum of connected player indexes.
//You can add additional checks here (bot,team,admin, etc).
for ( i = 1 ; i <= g_iMaxPlayers ; i++ )
if ( IsSetBit(g_iBitUserAlive, i ) && g_iUserTeam[i] == 2 )
iPlayerBits |= ( 1 << ( i - 1 ) );
//No players are connected.
if ( !iPlayerBits )
return 0;
//Keep looping until there is no players that haven't been selected.
while( iPlayerBits != g_Selected )
{
//Get random player id
i = ( random_num( 1 , g_iMaxPlayers ) - 1 );
//If player is connected and has not yet been selected
if ( ( iPlayerBits & ( 1 << i ) ) && !( g_Selected & ( 1 << i ) ) )
{
//Set bit in g_Selected bit-field so they will be ignored on the next call
g_Selected |= ( 1 << i );
return ( i + 1 );
}
}
//All players have already been selected.
g_Selected = 0;
return GetRandomPlayer()
}
some times randomly this code make infinity loop i took it from here
https://forums.alliedmods.net/showth...634#post829634 i m trying to make it automatically reset selected players when all players have been selected.
__________________