diff --git a/TM_LapsKnockout.Script.txt b/TM_LapsKnockout.Script.txt index 7c12d8a..5ae5e7f 100644 --- a/TM_LapsKnockout.Script.txt +++ b/TM_LapsKnockout.Script.txt @@ -128,6 +128,8 @@ UIModules_Checkpoint::SetVisibilityTimeDiff(False, True); UIModules_PauseMenu_Online::SetHelp(Description); UIModules_ScoresTable::SetScoreMode(UIModules_ScoresTable::C_Mode_Laps); UIModules_ScoresTable::SetHideSpectators(True); + +SetManialink_Panel(); *** ***Match_Yield*** @@ -184,6 +186,14 @@ Race::SetLapsSettings(True, -1); // force infinite lap *** CarRank::Reset(); +UIModules_ScoresTable::SetCustomPoints([]); +declare netwrite Integer Net_LapsKnockout_NumberOfPlayers for Teams[0]; +Net_LapsKnockout_NumberOfPlayers = 0; +declare netwrite Integer[Integer] Net_LapsKnockout_KOPerLap for Teams[0]; +Net_LapsKnockout_KOPerLap = []; +declare netwrite Integer Net_LapsKnockout_KOs for Teams[0]; +Net_LapsKnockout_KOs = 0; + // Warm up ---Laps_Warmup--- @@ -227,12 +237,25 @@ Last_EliminatedPlayersNbRanks = S_EliminatedPlayersNbRanks; MatchState = ComputeMatchState(Last_NumberOfPlayers); -// Update UI lap number +// Update UI +declare netwrite Integer Net_LapsKnockout_NumberOfPlayers for Teams[0]; +Net_LapsKnockout_NumberOfPlayers = Last_NumberOfPlayers; + +declare Boolean LapsSettingSet = False; +declare Integer[Integer] KOPerLap; foreach (LapNb => State in MatchState.sortkeyreverse()) { - Race::SetLapsSettings(False, LapNb); // Set number of laps with number of - break; + if (!LapsSettingSet) { + LapsSettingSet = True; + Race::SetLapsSettings(False, LapNb); // Set number of laps with number of + } + KOPerLap[LapNb] = State.NbEliminations; + } +declare netwrite Integer[Integer] Net_LapsKnockout_KOPerLap for Teams[0]; +Net_LapsKnockout_KOPerLap = KOPerLap; + + // Reset Dossard Color foreach (Player in Players) { Player.Dossard_Color = <1., 1., 1.>; @@ -285,6 +308,15 @@ foreach (Event in RacePendingEvents) { } if (Event.IsEndRace) { + // waiting GetCustomPoints function in ScoresTable_Server + declare netwrite Text[][Text] Net_TMxSM_ScoresTable_CustomPoints for Teams[0]; + declare Text[][Text] CustomTimes = Net_TMxSM_ScoresTable_CustomPoints; + foreach (Player in Players) { + if (Player != Event.Player) { + CustomTimes[Player.User.WebServicesUserId] = [_("|Status|K.O."), "f00"]; + } + } + UIModules_ScoresTable::SetCustomPoints(CustomTimes); UIManager.UIAll.SendChat("Player $<$ff6" ^ Event.Player.User.Name ^ "$> $<$6f6wins the match!$>"); MB_StopMatch(); } @@ -323,11 +355,19 @@ if (Last_NbLapsWithoutKO != S_NbLapsWithoutKO || Last_EliminatedPlayersNbRanks ! Last_EliminatedPlayersNbRanks = S_EliminatedPlayersNbRanks; MatchState = ComputeMatchState(Last_NumberOfPlayers); - + // Update UI + declare Boolean LapsSettingSet = False; + declare Integer[Integer] KOPerLap; foreach (LapNb => State in MatchState.sortkeyreverse()) { - Race::SetLapsSettings(False, LapNb); - break; + if (!LapsSettingSet) { + LapsSettingSet = True; + Race::SetLapsSettings(False, LapNb); // Set number of laps with number of + } + KOPerLap[LapNb] = State.NbEliminations; + } + declare netwrite Integer[Integer] Net_LapsKnockout_KOPerLap for Teams[0]; + Net_LapsKnockout_KOPerLap = KOPerLap; } if (Players.count > 0 && PlayersNbAlive <= 0) { @@ -447,4 +487,93 @@ Void EliminatePlayer(CSmPlayer _Player) { log("EliminatePlayer: " ^ _Player.User.Name ^ " (" ^ _Player.User.Login ^ ")"); Race::StopSkipOutro(_Player); UIManager.UIAll.SendChat("Player $<$ff6" ^ _Player.User.Name ^ "$> is $<$f00eliminated$>"); -} \ No newline at end of file + + // waiting GetCustomPoints function in ScoresTable_Server + declare netwrite Text[][Text] Net_TMxSM_ScoresTable_CustomPoints for Teams[0]; + Net_TMxSM_ScoresTable_CustomPoints[_Player.User.WebServicesUserId] = [_("|Status|K.O."), "f00"]; + + declare netwrite Integer Net_LapsKnockout_KOs for Teams[0]; + Net_LapsKnockout_KOs += 1; +} + +Void SetManialink_Panel() { + declare Text MLText = """ + + +