Looking good, thanks for the correction. Guess I also forgot static variable would also be saved between function calls, besides just saving the value for each loop iteration.
Tony Paloma wrote: > The second loop is unnecessary. You can keep track of the winner player in > the first loop and then just print the message after. Also, pull out > iHighestScore from the loop and don't make it static. Making it static saves > the value across function calls which isn't what you want. > > void CHL2MPRules::DecideRoundWinner2( void ) > { > #ifndef CLIENT_DLL > if ( g_fGameOver ) > return; > > CBasePlayer *pWinner = NULL; > int iHighestScore = 0; > > // count players, leave out spectators > for ( int i = 0; i < MAX_PLAYERS; i++ ) > { > CBasePlayer *pCurrentPlayer = UTIL_PlayerByIndex( i ); > > if ( !pCurrentPlayer || pCurrentPlayer->GetTeamNumber() == > TEAM_SPECTATOR ) > continue; > > // if this player's score is higher than the previous highest or no > winner is set yet then set current player as the winner > if( !pWinner || pWinner->GetPlayerScore() > iHighestScore ) > { > // change the highest score so it can be compared again next > time this loops > iHighestScore = pCurrentPlayer->GetPlayerScore(); > pWinner = pCurrentPlayer; > } > } > > if(pWinner) > { > pWinner->SetRoundWinner( true ); > UTIL_ClientPrintAll( HUD_PRINTCENTERCONSOLE, "Player '%s' Wins", > pWinner->GetPlayerName() ); > } > #endif > } > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders