Hey list, In my mod I want the winner of a round to be announced with a hud print center and print console. This will work by score(mind you, score is seperated from the frags already).
I don't really have any experience when it comes to selecting the highest score out of multiple objects(players in this case) With the help of a example I could remember from a C++ guide, I cooked up the following: void CHL2MPRules::DecideRoundWinner2( void ) { #ifndef CLIENT_DLL if ( g_fGameOver ) return; int previouswinner = 0; // count players, leave out spectators for ( int i = 0; i < MAX_PLAYERS; i++ ) { CBasePlayer *pPlayer = UTIL_PlayerByIndex( i ); CBasePlayer *pPreviousPlayer = UTIL_PlayerByIndex( previouswinner ); if ( !pPlayer || pPlayer->GetTeamNumber() == TEAM_SPECTATOR ) continue; // should only be initialized once in the loop static int iHighestScore = 0; // if this player's score is higher then the previous highest then set current player as the winner if( pPlayer->GetPlayerScore() > iHighestScore ) { // change the highest score so it can be compared again next time this loops iHighestScore = pPlayer->GetPlayerScore(); // mark this player as (potential) winner pPlayer->SetRoundWinner( true ); // if i is not 0, then there is likely a previous player with a lower score if( i ) pPreviousPlayer->SetRoundWinner( false ); // mark this player so he can be recognized as the previous winner if needed previouswinner = i; } } // second player counter loop, cycles through the players, then displays a message when it's found the winner for ( int j = 0; j < MAX_PLAYERS; j++ ) { CBasePlayer *pPlayer = UTIL_PlayerByIndex( j ); if ( !pPlayer ) continue; // did the loop find the winner? if so display the message and break the loop if ( pPlayer->IsRoundWinner() ) { UTIL_ClientPrintAll( HUD_PRINTCENTERCONSOLE, "Player '%s1' Wins", pPlayer->GetPlayerName() ); break; } } #endif } ------- As far as I know it should work, but may not be very efficient. Also I do realize that players with the same score will not be counted as winners, I first want to know if this way of finding the winner is correct and works, once I know that I can fiddle with it so players with the same score won't be left out. Which brings me to my next question: Does printcenter and/or printconsole, support newlines? Thanks in advance _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders