From d0b114d82f2dabc6ab1f6e7175cbcfc5e3e6e7e5 Mon Sep 17 00:00:00 2001 From: Beu Date: Sat, 16 Oct 2021 10:20:11 +0200 Subject: [PATCH] Fix when a player join during loading --- TM_SeedingTimeAttack_Online.Script.txt | 30 +++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/TM_SeedingTimeAttack_Online.Script.txt b/TM_SeedingTimeAttack_Online.Script.txt index acd1a2d..286c67d 100644 --- a/TM_SeedingTimeAttack_Online.Script.txt +++ b/TM_SeedingTimeAttack_Online.Script.txt @@ -31,8 +31,8 @@ // Settings // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // #Setting S_UseTheWorstTimeForDNF True as "" -#Setting S_MalusTimeForDNF 0 as "Time to add (or substract) in ms for who DNF" -#Setting S_MapsPerMatch -1 as _("Number of maps per match") ///< Number of maps to play before finishing the match +#Setting S_MalusTimeForDNF 10000 as "Time to add (or substract) in ms for who DNF" +#Setting S_MapsPerMatch 3 as _("Number of maps per match") ///< Number of maps to play before finishing the match #Setting S_TimeLimit 300 as _("Time limit") ///< Time limit before going to the next map #Setting S_WarmUpNb 0 as _("Number of warm up") #Setting S_WarmUpDuration 0 as _("Duration of one warm up") @@ -124,8 +124,14 @@ foreach (Event in PendingEvents) { StateMgr::InitializePlayer(Event.Player); CarRank::InitializePlayer(Event.Player); if (Event.Player != Null) { + Log::Log("[Match_Yield][PendingEvents] New player added: " ^ Event.Player.Name); declare Boolean Match_CanForceTrophyRankUpdate for This; TrophyRanking::InitializeUser(Event.Player.User, Match_CanForceTrophyRankUpdate); + if (Scores::GetPlayerMatchPoints(Event.Player.Score) == 0) { + declare Integer CumulateWorstTimeOfPreviousMaps for This; + Log::Log("[Match_Yield][PendingEvents] New Player with : " ^ CumulateWorstTimeOfPreviousMaps ^ " points"); + Scores::SetPlayerMatchPoints(Event.Player.Score, CumulateWorstTimeOfPreviousMaps); + } } } } @@ -229,9 +235,9 @@ Map_MalusTimeForDNF = S_MalusTimeForDNF; Map_UseTheWorstTimeForDNF = S_UseTheWorstTimeForDNF; UpdateScoresTableFooterAndTimeLimit(StartTime, S_TimeLimit, S_MapsPerMatch); -declare Integer CumulateWorstTimeOfPreviousMaps for This; declare Integer WorstTime for This; -if (MB_GetMapCount() > 1) CumulateWorstTimeOfPreviousMaps = CumulateWorstTimeOfPreviousMaps + WorstTime + Map_MalusTimeForDNF; +declare Integer CumulateWorstTimeOfPreviousMaps for This; +CumulateWorstTimeOfPreviousMaps = CumulateWorstTimeOfPreviousMaps + WorstTime + Map_MalusTimeForDNF; WorstTime = S_TimeLimit * 1000; UpdateCustomRanking(Null); @@ -241,14 +247,10 @@ UpdateCustomRanking(Null); *** foreach (Event in PendingEvents) { - Log::Log("[PendingEvents] Event.Type: " ^ Event.Type); + Log::Log("[PlayLoop][PendingEvents] Event.Type: " ^ Event.Type); if (Event.Type == CSmModeEvent::EType::OnPlayerAdded) { if (Event.Player != Null) { - if (Scores::GetPlayerMatchPoints(Event.Player.Score) == 0) { - declare Integer CumulateWorstTimeOfPreviousMaps for This; - Log::Log("[PendingEvents] New Player with : " ^ CumulateWorstTimeOfPreviousMaps ^ " points"); - Scores::SetPlayerMatchPoints(Event.Player.Score, CumulateWorstTimeOfPreviousMaps); - } + Log::Log("[PlayLoop][PendingEvents] New player added: " ^ Event.Player.Name); UpdateCustomRanking(Event.Player); } } @@ -363,6 +365,10 @@ if (EndTime > 0 && Now >= EndTime) { *** EndTime = -1; +declare Integer WorstTime for This; +declare Integer CumulateWorstTimeOfPreviousMaps for This; +CumulateWorstTimeOfPreviousMaps = CumulateWorstTimeOfPreviousMaps + WorstTime + S_MalusTimeForDNF; + Match_MatchDuration = ML::Max(0, Now - Map_MapStartTime); StateMgr::ForcePlayersStates([StateMgr::C_State_Waiting]); Race::EnableIntroDuringMatch(False); @@ -707,7 +713,7 @@ Void SetML() { DevLog("[PendingEvents] Toggle UI by " ^ InputPlayer.User.Login); ToggleUI(); } - /*} else if (Event.Type == CMlScriptEvent::Type::MouseOver && TL::Find("bg-player-", Event.ControlId, True, True) && InputPlayerIsSpectator()) { + } /*else if (Event.Type == CMlScriptEvent::Type::MouseOver && TL::Find("bg-player-", Event.ControlId, True, True) && InputPlayerIsSpectator()) { declare Quad <=> (Page.GetFirstChild(Event.ControlId) as CMlQuad); Quad.Opacity = 0.1; } else if (Event.Type == CMlScriptEvent::Type::MouseOut && TL::Find("bg-player-", Event.ControlId, True, True)) { @@ -777,7 +783,7 @@ Void SetML() { } } } - } + } -->