I written triggers that will randomize teams in-game accordingly on number of players. I used DaMeiN's ideas of randomization via resources. Unfortunately I haven't got enough time to explain everything now. Also I'm not 100% sure this has no errors. I written triggers in MacroTriggers syntax which I specify below. If you're hard at reading this syntax I also have it written in SCMD text triggers syntax:
.
FORCE fAllPlayers = @F("Put Force Name Here!")
UNIT dcProgress = @U("Cave")
UNIT dcTeamSize = @U("Cantina")
UNIT dcAllianceStatus = @U("Mining Platform")
UNIT dcTemp = @U("Jump Gate")
UNIT dcMyTeam = @U("Ruins")
SWITCH sEven = @S("Switch1")
FOR p = 8 TO 1 BY -1 DO
TRIGGER
OWNERS: @P(p)
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 4, dcProgress)
Deaths(@CurrentPlayer, @AtLeast, 2^(p-1), dcAllianceStatus)
Deaths(@CurrentPlayer, @Exactly, 1, dcMyTeam)
ACTIONS:
SetAllianceStatus(@P(p), @AlliedVictory)
ENDT
TRIGGER
OWNERS: @P(p)
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 4, dcProgress)
Deaths(@CurrentPlayer, @AtMost, 2^(p-1), dcAllianceStatus)
Deaths(@CurrentPlayer, @Exactly, 0, dcMyTeam)
ACTIONS:
SetAllianceStatus(@P(p), @AlliedVictory)
ENDT
TRIGGER
OWNERS: @P(p)
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 4, dcProgress)
Deaths(@CurrentPlayer, @AtLeast, 2^(p-1), dcAllianceStatus)
ACTIONS:
SetDeaths(@AllPlayers, @Subtract, 2^(p-1), dcAllianceStatus)
// SetDeaths(@AllPlayers, @Add, 2^(p-1), dcTemp)
ENDT
ENDL
FOR p = 8 TO 1 BY -1 DO
TRIGGER
OWNERS: @P(p)
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 3, dcProgress)
HighestScore(@Custom)
Deaths(@CurrentPlayer, @AtLeast, 1, dcTeamSize)
ACTIONS:
SetScore(@CurrentPlayer, @Set, 0, @Custom)
SetDeaths(@AllPlayers, @Subtract, 1, dcTeamSize)
SetDeaths(@AllPlayers, @Add, 2^(p-1), dcAllianceStatus)
SetDeaths(@CurrentPlayer, @Set, 1, dcMyTeam)
ENDT
ENDL
FOR n = 7 TO 0 BY -1 DO
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 2, dcProgress)
ElapsedTime(@AtLeast, 6)
Accumulate(@CurrentPlayer, @AtLeast, 2^n, @Ore)
ACTIONS:
SetResources(@CurrentPlayer, @Subtract, 2^n, @Ore)
SetScore(@CurrentPlayer, @Add, 2^n, @Custom)
SetDeaths(@CurrentPlayer, @Add, 2^n, dcTemp)
ENDT
ENDL
FOR n = 7 TO 0 BY -1 DO
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 2, dcProgress)
ElapsedTime(@AtLeast, 6)
Deaths(@CurrentPlayer, @AtLeast, 2^n, dcTemp)
ACTIONS:
SetDeaths(@CurrentPlayer, @Subtract, 2^n, dcTemp)
SetResources(@CurrentPlayer, @Add, 2^n, @Ore)
ENDT
ENDL
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 1, dcProgress)
Switch(sEven, @Set)
ACTIONS:
DisplayText("\x003You need even number of players to play.", @AlwaysDisplay)
Wait(2000)
Draw()
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 0, dcProgress)
ACTIONS:
SetSwitch(sEven, @Toggle)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 0, dcProgress)
Switch(sEven, @Set)
ACTIONS:
SetDeaths(@AllPlayers, @Add, 1, dcTeamSize)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 0, dcProgress)
ACTIONS:
SetDeaths(@CurrentPlayer, @Add, 1, dcProgress)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 1, dcProgress)
Switch(sEven, @Clear)
ACTIONS:
SetDeaths(@CurrentPlayer, @Add, 1, dcProgress)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
ElapsedTime(@AtLeast, 6)
Deaths(@CurrentPlayer, @Exactly, 2, dcProgress)
ACTIONS:
SetDeaths(@CurrentPlayer, @Add, 1, dcProgress)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 3, dcProgress)
Deaths(@CurrentPlayer, @Exactly, 0, dcTeamSize)
ACTIONS:
SetDeaths(@CurrentPlayer, @Add, 1, dcProgress)
ENDT
TRIGGER
OWNERS: fAllPlayers
CONDITIONS:
Deaths(@CurrentPlayer, @Exactly, 4, dcProgress)
ACTIONS:
SetDeaths(@CurrentPlayer, @Add, 1, dcProgress)
ENDT
.
Hope this will help.
EDIT: I've realized there is an error. I suggest you find and fix it.