Added RunOnce

This commit is contained in:
ChocoTaco 2019-02-17 18:58:19 -05:00
parent dbd780b3d1
commit 35b12417b5

View file

@ -1,15 +1,21 @@
//To help decrease the chances of a repeated map in the map rotation by correcting repeated maps thru script //To help decrease the chances of a repeated map in the map rotation by correcting repeated maps thru script
// //$EvoCachedNextMission = "RoundTheMountain";
// //
//Run at serverCmdMissionStartPhase3Done(%client, %seq) in server.ovl evo //Run in GetTeamCounts.cs
function MapRepetitionChecker() function MapRepetitionChecker( %game )
{ {
if( $CurrentMissionType $= "CTF" && !$Host::TournamentMode ) if( $CurrentMissionType $= "CTF" && !$Host::TournamentMode && $MapRepetitionCheckerRunOnce !$= 1 )
{ {
//CTF Start //CTF Start
if($TempMapCheckerPrevious $= "") if($TempMapCheckerPrevious $= "")
$TempMapCheckerPrevious = $CurrentMission; {
$TempMapCheckerPrevious = $CurrentMission;
return;
}
//1 map back //1 map back
else if($TempMapCheckerPrevious2back $= "") else if($TempMapCheckerPrevious2back $= "")
{ {
@ -24,6 +30,8 @@ function MapRepetitionChecker()
{ {
MapRepetitionCheckerFindRandom(); MapRepetitionCheckerFindRandom();
} }
return;
} }
//2 maps back //2 maps back
else if($TempMapCheckerPrevious3back $= "") else if($TempMapCheckerPrevious3back $= "")
@ -41,9 +49,10 @@ function MapRepetitionChecker()
{ {
MapRepetitionCheckerFindRandom(); MapRepetitionCheckerFindRandom();
} }
return;
} }
//3 maps back //3 maps back
//This is what is run most of the time.
else else
{ {
$MapCheckerPrevious = $TempMapCheckerPrevious; $MapCheckerPrevious = $TempMapCheckerPrevious;
@ -60,7 +69,11 @@ function MapRepetitionChecker()
{ {
MapRepetitionCheckerFindRandom(); MapRepetitionCheckerFindRandom();
} }
return;
} }
$MapRepetitionCheckerRunOnce = 1;
} }
} }
@ -75,6 +88,16 @@ function MapRepetitionCheckerFindRandom()
else if(%MapCheckerRandom $= 4) $EvoCachedNextMission = $SetNextMissionMapSlot4; else if(%MapCheckerRandom $= 4) $EvoCachedNextMission = $SetNextMissionMapSlot4;
else if(%MapCheckerRandom $= 5) $EvoCachedNextMission = $SetNextMissionMapSlot5; else if(%MapCheckerRandom $= 5) $EvoCachedNextMission = $SetNextMissionMapSlot5;
else if(%MapCheckerRandom $= 6) $EvoCachedNextMission = $SetNextMissionMapSlot6; else if(%MapCheckerRandom $= 6) $EvoCachedNextMission = $SetNextMissionMapSlot6;
messageAll('MsgNoBaseRapeNotify', '\crMap Repetition Corrected: Next mission set to %1.', $EvoCachedNextMission); if($EvoCachedNextMission $= $TempMapCheckerPrevious || $EvoCachedNextMission $= $TempMapCheckerPrevious2back || $EvoCachedNextMission $= $TempMapCheckerPrevious3back )
MapRepetitionCheckerFindRandom();
else
messageAll('MsgNoBaseRapeNotify', '\crMap Repetition Corrected: Next mission set to %1.', $EvoCachedNextMission);
}
//Once per match
//Called in DefaultGame::gameOver(%game) in defaultGame.ovl evo
function MapRepetitionCheckerReset( %game )
{
$MapRepetitionCheckerRunOnce = 0;
} }