This commit is contained in:
ChocoTaco 2019-02-18 01:58:56 -05:00
parent 35b12417b5
commit b631d0c730

View file

@ -5,69 +5,111 @@
//Run in GetTeamCounts.cs //Run in GetTeamCounts.cs
function MapRepetitionChecker( %game ) function MapRepetitionChecker( %game )
{ {
//Debug
//%MapRepetitionCheckerDebug = true;
if( $CurrentMissionType $= "CTF" && !$Host::TournamentMode && $MapRepetitionCheckerRunOnce !$= 1 ) if( $CurrentMissionType $= "CTF" && !$Host::TournamentMode && $MapRepetitionCheckerRunOnce !$= 1 )
{ {
//CTF Start //First map
if($TempMapCheckerPrevious $= "") if($PreviousMission1back $= "")
{ {
$TempMapCheckerPrevious = $CurrentMission; //Set vars
$PreviousMission1back = $CurrentMission;
//Debug
if(%MapRepetitionCheckerDebug)
echo("PM1: " @ $PreviousMission1back);
return; return;
} }
//1 map back //1 map back
else if($TempMapCheckerPrevious2back $= "") //Second map
else if($PreviousMission2back $= "")
{ {
$MapCheckerPrevious = $TempMapCheckerPrevious; if( $PreviousMission1back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
//Set temp vars //Set vars
$TempMapCheckerPrevious2back = $TempMapCheckerPrevious; $PreviousMission2back = $PreviousMission1back;
$TempMapCheckerPrevious = $CurrentMission; $PreviousMission1back = $CurrentMission;
//If the next mission equals the last map, find a new map. //Debug
if( $MapCheckerPrevious $= $EvoCachedNextMission ) if(%MapRepetitionCheckerDebug)
{ {
MapRepetitionCheckerFindRandom(); echo("PM1: " @ $PreviousMission1back);
echo("PM2: " @ $PreviousMission2back);
} }
return; return;
} }
//2 maps back //2 maps back
else if($TempMapCheckerPrevious3back $= "") //Third map
else if($PreviousMission3back $= "")
{ {
$MapCheckerPrevious = $TempMapCheckerPrevious; if( $PreviousMission1back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
$MapCheckerPrevious2back = $TempMapCheckerPrevious2back; else if( $PreviousMission2back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
//Set temp vars //Set vars
$TempMapCheckerPrevious3back = $TempMapCheckerPrevious2back; $PreviousMission3back = $PreviousMission2back;
$TempMapCheckerPrevious2back = $TempMapCheckerPrevious; $PreviousMission2back = $PreviousMission1back;
$TempMapCheckerPrevious = $CurrentMission; $PreviousMission1back = $CurrentMission;
//If the next mission equals anything that has been played the last 2 maps, find a new map. //Debug
if( $MapCheckerPrevious $= $EvoCachedNextMission || $MapCheckerPrevious2back $= $EvoCachedNextMission ) if(%MapRepetitionCheckerDebug)
{ {
MapRepetitionCheckerFindRandom(); echo("PM1: " @ $PreviousMission1back);
echo("PM2: " @ $PreviousMission2back);
echo("PM3: " @ $PreviousMission3back);
} }
return; return;
} }
//3 maps back //3 maps back
//Forth map
else if($PreviousMission4back $= "")
{
if( $PreviousMission1back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
else if( $PreviousMission2back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
else if( $PreviousMission3back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
//Set vars
$PreviousMission4back = $PreviousMission3back;
$PreviousMission3back = $PreviousMission2back;
$PreviousMission2back = $PreviousMission1back;
$PreviousMission1back = $CurrentMission;
//Debug
if(%MapRepetitionCheckerDebug)
{
echo("PM1: " @ $PreviousMission1back);
echo("PM2: " @ $PreviousMission2back);
echo("PM3: " @ $PreviousMission3back);
echo("PM4: " @ $PreviousMission4back);
}
return;
}
//4 maps back
//Fifth map
else else
{ {
$MapCheckerPrevious = $TempMapCheckerPrevious; if( $PreviousMission1back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
$MapCheckerPrevious2back = $TempMapCheckerPrevious2back; else if( $PreviousMission2back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
$MapCheckerPrevious3back = $TempMapCheckerPrevious3back; else if( $PreviousMission3back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
else if( $PreviousMission4back $= $EvoCachedNextMission ) MapRepetitionCheckerFindRandom();
//Set temp vars //Set vars
$TempMapCheckerPrevious3back = $TempMapCheckerPrevious2back; $PreviousMission4back = $PreviousMission3back;
$TempMapCheckerPrevious2back = $TempMapCheckerPrevious; $PreviousMission3back = $PreviousMission2back;
$TempMapCheckerPrevious = $CurrentMission; $PreviousMission2back = $PreviousMission1back;
$PreviousMission1back = $CurrentMission;
//If the next mission equals anything that has been played the last 3 maps, find a new map. //Debug
if( $MapCheckerPrevious $= $EvoCachedNextMission || $MapCheckerPrevious2back $= $EvoCachedNextMission || $MapCheckerPrevious3back $= $EvoCachedNextMission ) if(%MapRepetitionCheckerDebug)
{ {
MapRepetitionCheckerFindRandom(); echo("PM1: " @ $PreviousMission1back);
echo("PM2: " @ $PreviousMission2back);
echo("PM3: " @ $PreviousMission3back);
echo("PM4: " @ $PreviousMission4back);
} }
return; return;
@ -89,7 +131,7 @@ function MapRepetitionCheckerFindRandom()
else if(%MapCheckerRandom $= 5) $EvoCachedNextMission = $SetNextMissionMapSlot5; else if(%MapCheckerRandom $= 5) $EvoCachedNextMission = $SetNextMissionMapSlot5;
else if(%MapCheckerRandom $= 6) $EvoCachedNextMission = $SetNextMissionMapSlot6; else if(%MapCheckerRandom $= 6) $EvoCachedNextMission = $SetNextMissionMapSlot6;
if($EvoCachedNextMission $= $TempMapCheckerPrevious || $EvoCachedNextMission $= $TempMapCheckerPrevious2back || $EvoCachedNextMission $= $TempMapCheckerPrevious3back ) if($EvoCachedNextMission $= $PreviousMission1back || $EvoCachedNextMission $= $PreviousMission2back || $EvoCachedNextMission $= $PreviousMission3back )
MapRepetitionCheckerFindRandom(); MapRepetitionCheckerFindRandom();
else else
messageAll('MsgNoBaseRapeNotify', '\crMap Repetition Corrected: Next mission set to %1.', $EvoCachedNextMission); messageAll('MsgNoBaseRapeNotify', '\crMap Repetition Corrected: Next mission set to %1.', $EvoCachedNextMission);