1 #using scripts\codescripts\struct;
3 #using scripts\shared\hud_util_shared;
4 #using scripts\shared\music_shared;
5 #using scripts\shared\util_shared;
7 #insert scripts\shared\shared.gsh;
9 #using scripts\shared\hud_message_shared;
10 #using scripts\shared\system_shared;
12 #using scripts\mp\gametypes\_globallogic_audio;
14 #using scripts\mp\_util;
16 #precache( "string", "MP_FIRSTPLACE_NAME" );
17 #precache( "string", "MP_SECONDPLACE_NAME" );
18 #precache( "string", "MP_THIRDPLACE_NAME" );
19 #precache( "string", "MP_WAGER_PLACE_NAME" );
20 #precache( "string", "MP_MATCH_BONUS_IS" );
21 #precache( "string", "MP_CODPOINTS_MATCH_BONUS_IS" );
22 #precache( "string", "MP_WAGER_WINNINGS_ARE" );
23 #precache( "string", "MP_WAGER_SIDEBET_WINNINGS_ARE" );
24 #precache( "string", "MP_WAGER_IN_THE_MONEY" );
25 #precache( "string", "MP_DRAW_CAPS" );
26 #precache( "string", "MP_ROUND_DRAW_CAPS" );
27 #precache( "string", "MP_ROUND_WIN_CAPS" );
28 #precache( "string", "MP_ROUND_LOSS_CAPS" );
29 #precache( "string", "MP_VICTORY_CAPS" );
30 #precache( "string", "MP_DEFEAT_CAPS" );
31 #precache( "string", "MP_TOP3_CAPS" );
32 #precache( "string", "MP_GAME_OVER_CAPS" );
33 #precache( "string", "MP_HALFTIME_CAPS" );
34 #precache( "string", "MP_OVERTIME_CAPS" );
35 #precache( "string", "MP_ROUNDEND_CAPS" );
36 #precache( "string", "MP_INTERMISSION_CAPS" );
37 #precache( "string", "MP_SWITCHING_SIDES_CAPS" );
38 #precache( "string", "MP_MATCH_BONUS_IS" );
39 #precache( "string", "MP_CODPOINTS_MATCH_BONUS_IS" );
40 #precache( "string", "MP_WAGER_WINNINGS_ARE" );
41 #precache( "string", "MP_WAGER_SIDEBET_WINNINGS_ARE" );
42 #precache( "string", "MP_WAGER_IN_THE_MONEY_CAPS" );
43 #precache( "string", "MP_WAGER_LOSS_CAPS" );
44 #precache( "string", "MP_WAGER_TOPWINNERS" );
45 #precache( "string", "MP_JOIN_IN_PROGRESS_LOSS" );
46 #precache( "string", "MP_WINS" );
47 #precache( "string", "MP_TEAM_ELIMINATED" );
49 #precache( "eventstring", "show_outcome" );
51 #namespace hud_message;
55 game[
"strings"][
"draw"] = &
"MP_DRAW_CAPS";
56 game[
"strings"][
"round_draw"] = &
"MP_ROUND_DRAW_CAPS";
57 game[
"strings"][
"round_win"] = &
"MP_ROUND_WIN_CAPS";
58 game[
"strings"][
"round_loss"] = &
"MP_ROUND_LOSS_CAPS";
59 game[
"strings"][
"victory"] = &
"MP_VICTORY_CAPS";
60 game[
"strings"][
"defeat"] = &
"MP_DEFEAT_CAPS";
61 game[
"strings"][
"top3"] = &
"MP_TOP3_CAPS";
62 game[
"strings"][
"game_over"] = &
"MP_GAME_OVER_CAPS";
63 game[
"strings"][
"halftime"] = &
"MP_HALFTIME_CAPS";
64 game[
"strings"][
"overtime"] = &
"MP_OVERTIME_CAPS";
65 game[
"strings"][
"roundend"] = &
"MP_ROUNDEND_CAPS";
66 game[
"strings"][
"intermission"] = &
"MP_INTERMISSION_CAPS";
67 game[
"strings"][
"side_switch"] = &
"MP_SWITCHING_SIDES_CAPS";
68 game[
"strings"][
"match_bonus"] = &
"MP_MATCH_BONUS_IS";
69 game[
"strings"][
"codpoints_match_bonus"] = &
"MP_CODPOINTS_MATCH_BONUS_IS";
70 game[
"strings"][
"wager_winnings"] = &
"MP_WAGER_WINNINGS_ARE";
71 game[
"strings"][
"wager_sidebet_winnings"] = &
"MP_WAGER_SIDEBET_WINNINGS_ARE";
72 game[
"strings"][
"wager_inthemoney"] = &
"MP_WAGER_IN_THE_MONEY_CAPS";
73 game[
"strings"][
"wager_loss"] = &
"MP_WAGER_LOSS_CAPS";
74 game[
"strings"][
"wager_topwinners"] = &
"MP_WAGER_TOPWINNERS";
75 game[
"strings"][
"join_in_progress_loss"] = &
"MP_JOIN_IN_PROGRESS_LOSS";
76 game[
"strings"][
"cod_caster_team_wins"] = &
"MP_WINS";
77 game[
"strings"][
"cod_caster_team_eliminated"] = &
"MP_TEAM_ELIMINATED";
82 self endon (
"disconnect" );
83 self notify (
"reset_outcome" );
85 team =
self.pers[
"team"];
87 if ( team !=
"spectator" && ( !isdefined( team ) || !isdefined( level.teams[team] ) ) )
91 while (
self.doingNotify )
94 self endon (
"reset_outcome" );
97 notifyRoundEndToUI = undefined;
99 overrideSpectator =
false;
101 if ( endType ==
"halftime" )
103 outcomeText = game[
"strings"][
"halftime"];
104 notifyRoundEndToUI =
true;
106 else if ( endType ==
"intermission" )
108 outcomeText = game[
"strings"][
"intermission"];
109 notifyRoundEndToUI =
true;
111 else if ( endType ==
"overtime" )
113 outcomeText = game[
"strings"][
"overtime"];
114 notifyRoundEndToUI =
true;
116 else if ( endType ==
"roundend" )
118 if ( winner ==
"tie" )
120 outcomeText = game[
"strings"][
"round_draw"];
122 else if ( isdefined(
self.pers[
"team"] ) && winner == team )
124 outcomeText = game[
"strings"][
"round_win"];
125 overrideSpectator =
true;
129 outcomeText = game[
"strings"][
"round_loss"];
131 if ( isdefined( level.endDefeatReasonText ) )
133 endReasonText = level.endDefeatReasonText;
136 overrideSpectator =
true;
138 notifyRoundEndToUI =
true;
140 else if ( endType ==
"gameend" )
142 if ( winner ==
"tie" )
144 outcomeText = game[
"strings"][
"draw"];
146 else if ( isdefined(
self.pers[
"team"] ) && winner == team )
148 outcomeText = game[
"strings"][
"victory"];
149 overrideSpectator =
true;
153 outcomeText = game[
"strings"][
"defeat"];
155 if ( isdefined( level.endDefeatReasonText ) )
157 endReasonText = level.endDefeatReasonText;
160 if ( (level.rankedMatch || level.leagueMatch ) && (
self.pers[
"lateJoin"] ===
true ) )
162 endReasonText = game[
"strings"][
"join_in_progress_loss"];
165 overrideSpectator =
true;
168 notifyRoundEndToUI =
false;
172 if ( isdefined(
self.pers[
"totalMatchBonus"] ) )
174 bonus = Ceil(
self.pers[
"totalMatchBonus"] * level.xpScale );
184 if ( winner ==
"allies" )
188 else if ( winner ==
"axis" )
193 if( ( ( level.gameType ==
"ctf" ) || ( level.gameType ==
"escort" ) || ( level.gameType ==
"ball" ) ) && isdefined( game[
"overtime_round"] ) )
195 if( game[
"overtime_round"] == 1 )
197 if( isdefined( game[level.gameType +
"_overtime_first_winner"]) )
199 winner = game[level.gameType +
"_overtime_first_winner"];
202 if( isdefined( winner ) && ( winner !=
"tie" ) )
204 winningTime = game[level.gameType +
"_overtime_time_to_beat"];
209 if( isdefined(game[level.gameType +
"_overtime_first_winner"]) && game[level.gameType +
"_overtime_first_winner"] ==
"tie" )
211 winningTime = game[level.gameType +
"_overtime_best_time"];
215 winningTime = undefined;
217 if ( winner ==
"tie" && isdefined(game[level.gameType +
"_overtime_first_winner"]) )
219 if ( game[level.gameType +
"_overtime_first_winner"] ==
"allies" )
223 else if ( game[level.gameType +
"_overtime_first_winner"] ==
"axis" )
229 if ( isdefined(game[level.gameType +
"_overtime_time_to_beat"]) )
231 winningTime = game[level.gameType +
"_overtime_time_to_beat"];
234 if( isdefined( game[level.gameType +
"_overtime_best_time"] ) && ( !isDefined( winningTime ) || (winningTime > game[level.gameType +
"_overtime_best_time"]) ) )
236 if( game[level.gameType +
"_overtime_first_winner"] !== winner )
238 losingTime = winningTime;
241 winningTime = game[level.gameType +
"_overtime_best_time"];
243 if( winner ===
"tie" )
250 if( ( level.gameType ==
"escort" ) && ( winner ===
"tie" ) )
253 if( !
IS_TRUE( level.finalGameEnd ) )
255 if( game[
"defenders"] == team )
256 outcomeText = game[
"strings"][
"round_win"];
258 outcomeText = game[
"strings"][
"round_loss"];
265 if( ( winningTime == 0 ) && ( losingTime == 0 ) )
268 if ( team ==
"spectator" && overrideSpectator )
270 outcomeText = game[
"strings"][
"cod_caster_team_wins"];
271 notifyRoundEndToUI =
false;
274 self LUINotifyEvent( &
"show_outcome", 7, outcomeText, endReasonText,
int( matchBonus ), winnerEnum, notifyRoundEndToUI,
int( winningTime / 1000 ),
int( losingTime / 1000 ) );
276 else if( level.gameType ==
"ball" &&
277 isdefined( winner ) && ( winner !=
"tie" ) &&
278 game[
"roundsplayed"] < level.roundLimit &&
279 isdefined( game[
"round_time_to_beat"] ) &&
280 !isdefined( game[
"overtime_round"] ) )
282 winningTime = game[
"round_time_to_beat"];
298 if ( team ==
"spectator" && overrideSpectator )
300 outcomeText = game[
"strings"][
"cod_caster_team_wins"];
301 notifyRoundEndToUI =
false;
304 self LUINotifyEvent( &
"show_outcome", 7, outcomeText, endReasonText,
int( matchBonus ), winnerEnum, notifyRoundEndToUI,
int( winningTime / 1000 ),
int( losingTime / 1000 ) );
309 if ( team ==
"spectator" && overrideSpectator )
312 foreach( team
in level.teams )
314 if ( endreasontext == game[
"strings"][team +
"_eliminated"] )
316 endReasonText = game[
"strings"][
"cod_caster_team_eliminated"];
321 outcomeText = game[
"strings"][
"cod_caster_team_wins"];
322 notifyRoundEndToUI =
false;
325 self LUINotifyEvent( &
"show_outcome", 5, outcomeText, endReasonText,
int( matchBonus ), winnerEnum, notifyRoundEndToUI );
331 self endon (
"disconnect" );
332 self notify (
"reset_outcome" );
334 team =
self.pers[
"team"];
335 if ( isdefined( team ) && team ==
"spectator" )
337 for ( i = 0; i < level.players.size; i++ )
339 if (
self.currentspectatingclient == level.players[i].clientId )
341 team = level.players[i].pers[
"team"];
347 if ( !isdefined( team ) || !isdefined( level.teams[team] ) )
351 while (
self.doingNotify )
354 self endon (
"reset_outcome" );
357 if ( level.splitscreen )
370 const duration = 60000;
374 outcomeTitle.glowAlpha = 1;
375 outcomeTitle.hideWhenInMenu =
false;
376 outcomeTitle.archived =
false;
377 outcomeTitle.immunetodemogamehudsettings =
true;
378 outcomeTitle.immunetodemofreecamera =
true;
380 outcomeTitle setText( endReasonText );
381 outcomeTitle setPulseFX( 100, duration, 1000 );
388 self endon (
"disconnect" );
389 self notify (
"reset_outcome" );
392 while (
self.doingNotify )
395 self endon (
"reset_outcome" );
398 players = level.placement[
"all"];
399 numClients = players.size;
401 overrideSpectator =
false;
405 outcomeText = game[
"strings"][
"game_over"];
407 else if ( players[0].pointstowin == 0 )
409 outcomeText = game[
"strings"][
"tie"];
411 else if (
self isInTop( players, 1 ) )
413 outcomeText = game[
"strings"][
"victory"];
414 overrideSpectator =
true;
416 else if (
self isInTop( players, 3 ) )
418 outcomeText = game[
"strings"][
"top3"];
422 outcomeText = game[
"strings"][
"defeat"];
423 overrideSpectator =
true;
428 if ( isdefined(
self.pers[
"totalMatchBonus"] ) )
430 matchBonus =
self.pers[
"totalMatchBonus"];
435 team =
self.pers[
"team"];
436 if( isdefined( team ) && team ==
"spectator" && overrideSpectator )
438 outcomeText = game[
"strings"][
"cod_caster_team_wins"];
439 self LUINotifyEvent( &
"show_outcome", 5, outcomeText, endReasonText, matchBonus, winner,
false );
443 self LUINotifyEvent( &
"show_outcome", 4, outcomeText, endReasonText, matchBonus, numClients );
450 self endon (
"disconnect" );
451 self notify (
"reset_outcome" );
454 while (
self.doingNotify )
457 self endon (
"reset_outcome" );
459 headerFont =
"extrabig";
461 if (
self IsSplitscreen() )
479 if ( isdefined( level.sidebet ) && level.sidebet )
484 players = level.placement[
"all"];
490 outcomeTitle setText( game[
"strings"][
"intermission"] );
491 outcomeTitle.color = (1.0, 1.0, 0.0);
492 outcomeTitle.glowColor = (1.0, 0.0, 0.0);
494 else if( isdefined(level.dontCalcWagerWinnings) && level.dontCalcWagerWinnings == true )
496 outcomeTitle setText( game[
"strings"][
"wager_topwinners"] );
497 outcomeTitle.color = (0.42, 0.68, 0.46);
501 if ( isdefined(
self.wagerWinnings ) && (
self.wagerWinnings > 0 ) )
503 outcomeTitle setText( game[
"strings"][
"wager_inthemoney"] );
504 outcomeTitle.color = (0.42, 0.68, 0.46);
508 outcomeTitle setText( game[
"strings"][
"wager_loss"] );
509 outcomeTitle.color = (0.73, 0.29, 0.19);
512 outcomeTitle.glowAlpha = 1;
513 outcomeTitle.hideWhenInMenu =
false;
514 outcomeTitle.archived =
false;
515 outcomeTitle.immunetodemogamehudsettings =
true;
516 outcomeTitle.immunetodemofreecamera =
true;
517 outcomeTitle setCOD7DecodeFX( 200, duration, 600 );
522 outcomeText.glowAlpha = 1;
523 outcomeText.hideWhenInMenu =
false;
524 outcomeText.archived =
false;
525 outcomeText.immunetodemogamehudsettings =
true;
526 outcomeText.immunetodemofreecamera =
true;
527 outcomeText setText( endReasonText );
529 playerNameHudElems = [];
530 playerCPHudElems = [];
531 numPlayers = players.size;
532 for ( i = 0 ; i < numPlayers ; i++ )
534 if ( !halftime && isdefined( players[i] ) )
537 if ( playerNameHudElems.size == 0 )
540 secondTitle
hud::setPoint(
"TOP_LEFT",
"BOTTOM", -175, spacing*3 );
544 secondTitle
hud::setParent( playerNameHudElems[playerNameHudElems.size-1] );
545 secondTitle
hud::setPoint(
"TOP_LEFT",
"BOTTOM_LEFT", 0, spacing );
548 secondTitle.glowAlpha = 1;
549 secondTitle.hideWhenInMenu =
false;
550 secondTitle.archived =
false;
551 secondTitle.immunetodemogamehudsettings =
true;
552 secondTitle.immunetodemofreecamera =
true;
553 secondTitle.label = &
"MP_WAGER_PLACE_NAME";
554 secondTitle.playerNum = i;
555 secondTitle setPlayerNameString( players[i] );
556 playerNameHudElems[playerNameHudElems.size] = secondTitle;
561 secondCP.glowAlpha = 1;
562 secondCP.hideWhenInMenu =
false;
563 secondCP.archived =
false;
564 secondCP.immunetodemogamehudsettings =
true;
565 secondCP.immunetodemofreecamera =
true;
566 secondCP.label = &
"MENU_POINTS";
567 secondCP.currentValue = 0;
568 if ( isdefined( players[i].wagerWinnings ) )
569 secondCP.targetValue = players[i].wagerWinnings;
571 secondCP.targetValue = 0;
572 if ( secondCP.targetValue > 0 )
573 secondCP.color = (0.42, 0.68, 0.46);
574 secondCP setValue( 0 );
575 playerCPHudElems[playerCPHudElems.size] = secondCP;
585 stillUpdating =
true;
588 if ( isdefined( playerCPHudElems[0] ) )
590 CPIncrement = int( playerCPHudElems[0].targetValue / ( countUpDuration / 0.05 ) );
591 if ( CPIncrement < 1 )
594 while( stillUpdating )
596 stillUpdating =
false;
597 for ( i = 0 ; i < playerCPHudElems.size ; i++ )
599 if ( isdefined( playerCPHudElems[i] ) && ( playerCPHudElems[i].currentValue < playerCPHudElems[i].targetValue ) )
601 playerCPHudElems[i].currentValue += CPIncrement;
602 if ( playerCPHudElems[i].currentValue > playerCPHudElems[i].targetValue )
603 playerCPHudElems[i].currentValue = playerCPHudElems[i].targetValue;
604 playerCPHudElems[i] SetValue( playerCPHudElems[i].currentValue );
605 stillUpdating =
true;
614 self endon (
"disconnect" );
615 self notify (
"reset_outcome" );
617 team =
self.pers[
"team"];
618 if ( !isdefined( team ) || (!isdefined( level.teams[team] ) ) )
624 while (
self.doingNotify )
627 self endon (
"reset_outcome" );
629 headerFont =
"extrabig";
631 if (
self IsSplitscreen() )
647 if ( isdefined( level.sidebet ) && level.sidebet )
654 outcomeTitle.glowAlpha = 1;
655 outcomeTitle.hideWhenInMenu =
false;
656 outcomeTitle.archived =
false;
657 outcomeTitle.immunetodemogamehudsettings =
true;
658 outcomeTitle.immunetodemofreecamera =
true;
663 outcomeText.glowAlpha = 1;
664 outcomeText.hideWhenInMenu =
false;
665 outcomeText.archived =
false;
666 outcomeText.immunetodemogamehudsettings =
true;
667 outcomeText.immunetodemofreecamera =
true;
669 if ( winner ==
"tie" )
672 outcomeTitle setText( game[
"strings"][
"round_draw"] );
674 outcomeTitle setText( game[
"strings"][
"draw"] );
675 outcomeTitle.color = (1, 1, 1);
679 else if ( winner ==
"overtime" )
681 outcomeTitle setText( game[
"strings"][
"overtime"] );
682 outcomeTitle.color = (1, 1, 1);
685 else if ( isdefined(
self.pers[
"team"] ) && winner == team )
688 outcomeTitle setText( game[
"strings"][
"round_win"] );
690 outcomeTitle setText( game[
"strings"][
"victory"] );
691 outcomeTitle.color = (0.42, 0.68, 0.46);
696 outcomeTitle setText( game[
"strings"][
"round_loss"] );
698 outcomeTitle setText( game[
"strings"][
"defeat"] );
699 outcomeTitle.color = (0.73, 0.29, 0.19);
701 if( !isdefined( level.dontShowEndReason ) || !level.dontShowEndReason )
703 outcomeText setText( endReasonText );
706 outcomeTitle setPulseFX( 100, duration, 1000 );
707 outcomeText setPulseFX( 100, duration, 1000 );
710 teamIcons[team] =
hud::createIcon( game[
"icons"][team], iconSize, iconSize );
713 teamIcons[team].hideWhenInMenu =
false;
714 teamIcons[team].archived =
false;
715 teamIcons[team].alpha = 0;
716 teamIcons[team] fadeOverTime( 0.5 );
717 teamIcons[team].alpha = 1;
718 teamIcons[team].immunetodemogamehudsettings =
true;
719 teamIcons[team].immunetodemofreecamera =
true;
721 foreach( enemyTeam
in level.teams )
723 if ( team == enemyTeam )
726 teamIcons[enemyTeam] =
hud::createIcon( game[
"icons"][enemyTeam], iconSize, iconSize );
728 teamIcons[enemyTeam]
hud::setPoint(
"TOP",
"BOTTOM", 60, spacing );
729 teamIcons[enemyTeam].hideWhenInMenu =
false;
730 teamIcons[enemyTeam].archived =
false;
731 teamIcons[enemyTeam].alpha = 0;
732 teamIcons[enemyTeam] fadeOverTime( 0.5 );
733 teamIcons[enemyTeam].alpha = 1;
734 teamIcons[enemyTeam].immunetodemogamehudsettings =
true;
735 teamIcons[enemyTeam].immunetodemofreecamera =
true;
742 teamScores[team].glowAlpha = 1;
743 teamScores[team] setValue( getTeamScore( team ) );
744 teamScores[team].hideWhenInMenu =
false;
745 teamScores[team].archived =
false;
746 teamScores[team].immunetodemogamehudsettings =
true;
747 teamScores[team].immunetodemofreecamera =
true;
748 teamScores[team] setPulseFX( 100, duration, 1000 );
750 foreach( enemyTeam
in level.teams )
752 if ( team == enemyTeam )
757 teamScores[enemyTeam]
hud::setPoint(
"TOP",
"BOTTOM", 0, spacing );
758 teamScores[enemyTeam].glowAlpha = 1;
759 teamScores[enemyTeam] setValue( getTeamScore( enemyTeam ) );
760 teamScores[enemyTeam].hideWhenInMenu =
false;
761 teamScores[enemyTeam].archived =
false;
762 teamScores[enemyTeam].immunetodemogamehudsettings =
true;
763 teamScores[enemyTeam].immunetodemofreecamera =
true;
764 teamScores[enemyTeam] setPulseFX( 100, duration, 1000 );
767 matchBonus = undefined;
768 sidebetWinnings = undefined;
769 if ( !isRoundEnd && !halftime && isdefined(
self.wagerWinnings ) )
773 matchBonus
hud::setPoint(
"TOP",
"BOTTOM", 0, iconSize + (spacing * 3) + teamScores[team].height );
774 matchBonus.glowAlpha = 1;
775 matchBonus.hideWhenInMenu =
false;
776 matchBonus.archived =
false;
777 matchBonus.immunetodemogamehudsettings =
true;
778 matchBonus.immunetodemofreecamera =
true;
779 matchBonus.label = game[
"strings"][
"wager_winnings"];
780 matchBonus setValue(
self.wagerWinnings );
782 if ( isdefined( game[
"side_bets"] ) && game[
"side_bets"] )
787 sidebetWinnings.glowAlpha = 1;
788 sidebetWinnings.hideWhenInMenu =
false;
789 sidebetWinnings.archived =
false;
790 sidebetWinnings.immunetodemogamehudsettings =
true;
791 sidebetWinnings.immunetodemofreecamera =
true;
792 sidebetWinnings.label = game[
"strings"][
"wager_sidebet_winnings"];
793 sidebetWinnings setValue(
self.pers[
"wager_sideBetWinnings"] );
796 self thread
resetOutcomeNotify( teamIcons, teamScores, outcomeTitle, outcomeText, matchBonus, sidebetWinnings );
799 function resetOutcomeNotify( hudElemList1, hudElemList2, hudElem3, hudElem4, hudElem5, hudElem6, hudElem7, hudElem8, hudElem9, hudElem10 )
801 self endon (
"disconnect" );
802 self waittill (
"reset_outcome" );
813 if ( isdefined( hudElemList1 ) )
815 foreach( elem
in hudElemList1 )
821 if ( isdefined( hudElemList2 ) )
823 foreach( elem
in hudElemList2 )
832 self endon(
"disconnect" );
833 self waittill(
"reset_outcome" );
835 for ( i = playerNameHudElems.size - 1 ; i >= 0 ; i-- )
837 if ( isdefined( playerNameHudElems[i] ) )
841 for ( i = playerCPHudElems.size - 1 ; i >= 0 ; i-- )
843 if ( isdefined( playerCPHudElems[i] ) )
847 if ( isdefined( outcomeText ) )
850 if ( isdefined( outcomeTitle ) )
856 self endon(
"disconnect" );
857 self endon(
"reset_outcome" );
861 self waittill(
"update_outcome" );
863 players = level.placement[
"all"];
865 if ( isdefined( firstTitle ) && isdefined( players[0] ) )
866 firstTitle setPlayerNameString( players[0] );
867 else if ( isdefined( firstTitle ) )
868 firstTitle.alpha = 0;
870 if ( isdefined( secondTitle ) && isdefined( players[1] ) )
871 secondTitle setPlayerNameString( players[1] );
872 else if ( isdefined( secondTitle ) )
873 secondTitle.alpha = 0;
875 if ( isdefined( thirdTitle ) && isdefined( players[2] ) )
876 thirdTitle setPlayerNameString( players[2] );
877 else if ( isdefined( thirdTitle ) )
878 thirdTitle.alpha = 0;
884 self endon(
"disconnect" );
885 self endon(
"reset_outcome" );
889 self waittill(
"update_outcome" );
891 players = level.placement[
"all"];
893 for ( i = 0 ; i < playerNameHudElems.size ; i++ )
895 if ( isdefined( playerNameHudElems[i] ) && isdefined( players[playerNameHudElems[i].playerNum] ) )
896 playerNameHudElems[i] SetPlayerNameString( players[playerNameHudElems[i].playerNum] );
899 if ( isdefined( playerNameHudElems[i] ) )
900 playerNameHudElems[i].alpha = 0;
901 if ( isdefined( playerCPHudElems[i] ) )
902 playerCPHudElems[i].alpha = 0;