Return to post
- variables
- {
- global:
- 0: DEBUG
- 1: DEBUG_ZonePosition
- 2: DEBUG_ZoneRadius
- 3: DEBUG_TempFacingDir
- 4: DuelZonePositionList
- 5: DuelZoneRadiusList
- 6: DuelZoneSpawnList
- 7: LobbyPosition
- 8: TempWaitingPlayersList
- 9: TempPlayerOne
- 10: TempPlayerTwo
- 11: TempAvailableDuelZones
- 12: ConfigScoreToWin
- 13: ConfigMatchmakerTimer
- 14: MatchmakerTicker
- 15: LobbySignPosition
- 16: BarrierPositionList
- 17: BarrierRadiusList
- 19: TempOrphanPlayers
- 22: HeroPoolArray
- 23: TempHeroPool
- 25: ZDebug
- player:
- 0: ActiveDuelZone
- 1: PlayerState
- 2: MatchLosses
- 4: PlayerNumberOffset
- 5: EnemyPlayerNumberOffset
- 6: MatchScore
- 7: TempOpponent
- 8: TimeSpentWaiting
9: TempHeroWasOn
- 11: LastOpponent
- 12: RepeatedOpponentCounter
- 13: CurrentOpponent
- 14: Spectating
- }
- disabled rule("DEBUG: Enable this for Debug Mode")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Set Global Variable(DEBUG, True);
- Global.DEBUG = True;
- }
- }
- rule("DEBUG: Is Not Enabled")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.DEBUG == False;
- }
- actions
- {
- Disable Inspector Recording;
- }
- }
- rule("DEBUG: Init Player Debug")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global Variable(DEBUG) == True;
- Global.DEBUG == True;
- }
- actions
- {
- Create HUD Text(Event Player, Position Of(Event Player), Null, Null, Left, 0, White, White, White, Visible To and String,
- Default Visibility);
- Create HUD Text(Event Player, Facing Direction Of(Event Player), Null, Null, Left, 0, White, White, White, Visible To and String,
- Default Visibility);
- }
- }
- rule("DEBUG: Init Global Debug")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global Variable(DEBUG) == True;
- Global.DEBUG == True;
- }
- actions
- {
disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("DEBUG INFO", Null, Null, Null), Left, -1.000, White, White, Red,
Visible To and String, Default Visibility);
disabled Create HUD Text(All Players(All Teams), Null, Global Variable(DEBUG_ZonePosition), Null, Left, 0, White, White, White,
Visible To and String, Default Visibility);
disabled Create HUD Text(All Players(All Teams), Null, Global Variable(DEBUG_ZoneRadius), Null, Left, 0, White, White, White,
- disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("DEBUG INFO"), Left, -1, White, White, Red,
- Visible To and String, Default Visibility);
disabled Create Effect(All Players(All Teams), Sphere, Red, Global Variable(DEBUG_ZonePosition), Global Variable(DEBUG_ZoneRadius),
- disabled Create HUD Text(All Players(All Teams), Null, Global.DEBUG_ZonePosition, Null, Left, 0, White, White, White, Visible To and String,
- Default Visibility);
- disabled Create HUD Text(All Players(All Teams), Null, Global.DEBUG_ZoneRadius, Null, Left, 0, White, White, White, Visible To and String,
- Default Visibility);
- disabled Create Effect(All Players(All Teams), Sphere, Red, Global.DEBUG_ZonePosition, Global.DEBUG_ZoneRadius,
- Visible To Position and Radius);
- disabled Abort;
- Wait(4, Ignore Condition);
Create Dummy Bot(Hero(McCree), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Ashe), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Baptiste), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Genji), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Hanzo), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Junkrat), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Tracer), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Doomfist), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Bastion), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Lúcio), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
Create Dummy Bot(Hero(Zenyatta), All Teams, -1.000, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(McCree), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Ashe), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Baptiste), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Genji), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Hanzo), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Junkrat), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Tracer), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Doomfist), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Bastion), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Lúcio), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Zenyatta), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
- rule("DEBUG: Not invulnerable in spawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.DEBUG == True;
- (Event Player.PlayerState == 2 || Event Player.PlayerState == -4) == True;
- Has Status(Event Player, Phased Out) == False;
- }
- actions
- {
- Big Message(All Players(All Teams), Custom String("DEBUG: {0} NOT PHASED OUT", Event Player));
- }
- }
- disabled rule("DEBUG: Set Map Duel Zone Position")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global Variable(DEBUG) == True;
- Global.DEBUG == True;
- Is Button Held(Event Player, Primary Fire) == True;
- }
- actions
- {
Set Global Variable(DEBUG_ZonePosition, Ray Cast Hit Position(Eye Position(Event Player), Add(Multiply(Facing Direction Of(
Event Player), 1000), Eye Position(Event Player)), All Players(All Teams), Event Player, True));
- Global.DEBUG_ZonePosition = Ray Cast Hit Position(Eye Position(Event Player), Facing Direction Of(Event Player)
- * 1000 + Eye Position(Event Player), All Players(All Teams), Event Player, True);
- }
- }
- disabled rule("DEBUG: Set Duel Zone Radius")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global Variable(DEBUG) == True;
Or(Is Button Held(Event Player, Jump), Is Button Held(Event Player, Crouch)) == True;
- Global.DEBUG == True;
- (Is Button Held(Event Player, Jump) || Is Button Held(Event Player, Crouch)) == True;
- }
- actions
- {
- Skip If(Is Button Held(Event Player, Jump), 2);
Modify Global Variable(DEBUG_ZoneRadius, Add, 5);
- Global.DEBUG_ZoneRadius += 5;
- Abort;
Modify Global Variable(DEBUG_ZoneRadius, Subtract, 5);
- Global.DEBUG_ZoneRadius -= 5;
- }
- }
- rule("DEBUG: Kill Player #2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global Variable(DEBUG) == True;
- Global.DEBUG == True;
- Is Communicating(Event Player, Hello) == True;
- }
- actions
- {
- Kill(Players In Slot(1, All Teams), Null);
- }
- }
- rule("DEBUG: Destroy Dummy Player #2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.DEBUG == True;
- Is Communicating(Event Player, Thanks) == True;
- }
- actions
- {
- Destroy Dummy Bot(All Teams, 1);
- Wait(5, Ignore Condition);
- Create Dummy Bot(Hero(McCree), All Teams, 1, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
- rule("DEBUG: No Clip")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global Variable(DEBUG) == True;
- Global.DEBUG == True;
- Is Button Held(Event Player, Interact) == True;
- }
- actions
- {
Set Global Variable(DEBUG_TempFacingDir, Facing Direction Of(Event Player));
Teleport(Event Player, Add(Multiply(Facing Direction Of(Event Player), 10), Eye Position(Event Player)));
Set Facing(Event Player, Global Variable(DEBUG_TempFacingDir), To World);
- Global.DEBUG_TempFacingDir = Facing Direction Of(Event Player);
- Teleport(Event Player, Facing Direction Of(Event Player) * 10 + Eye Position(Event Player));
- Set Facing(Event Player, Global.DEBUG_TempFacingDir, To World);
- Apply Impulse(Event Player, Vector(0, 1, 0), 5, To World, Cancel Contrary Motion);
- }
- }
- rule("MAP: Havana")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Current Map == Map(Havana);
- }
- actions
- {
Set Global Variable(LobbyPosition, Vector(-102.513, 6, -73.331));
Set Global Variable(LobbySignPosition, Vector(-94.040, 6.556, -69.077));
Set Global Variable(DuelZonePositionList, Empty Array);
Set Global Variable(DuelZoneRadiusList, Empty Array);
Set Global Variable(DuelZoneSpawnList, Empty Array);
Set Global Variable(BarrierPositionList, Empty Array);
Set Global Variable(BarrierRadiusList, Empty Array);
- Global.LobbyPosition = Vector(-102.513, 6, -73.331);
- Global.LobbySignPosition = Vector(-94.040, 6.556, -69.077);
- Global.DuelZonePositionList = Empty Array;
- Global.DuelZoneRadiusList = Empty Array;
- Global.DuelZoneSpawnList = Empty Array;
- Global.BarrierPositionList = Empty Array;
- Global.BarrierRadiusList = Empty Array;
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(-96.249, 4, -68.923));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 35);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(-108.678, 5.199, -53.831));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(-83.129, 5.348, -78.313));
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(31.100, 6.199, -83.700));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 54);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(-2.441, 7.177, -95.874));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(18.313, 7.174, -51.988));
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(33.053, 17.395, -77.519));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 75);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(28.513, 11.551, -95.304));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(56.393, 13.551, -68.741));
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(66.423, 6.317, -94.950));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 50);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(76.863, 8.341, -72.242));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(102.236, 3.310, -72.689));
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(149.344, 12.273, -46.853));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 30);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(150.411, 10.427, -63.278));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(151.415, 10.352, -29.396));
- Modify Global Variable(DuelZonePositionList, Append To Array, Vector(209.334, 27.500, -40.314));
- Modify Global Variable(DuelZoneRadiusList, Append To Array, 30);
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(214.653, 28.849, -29.623));
- Modify Global Variable(DuelZoneSpawnList, Append To Array, Vector(214.674, 28.848, -50.187));
- Modify Global Variable(BarrierPositionList, Append To Array, Vector(176.452, 11, -46.671));
- Modify Global Variable(BarrierRadiusList, Append To Array, 15);
- Modify Global Variable(BarrierPositionList, Append To Array, Vector(182.679, 25.659, -45.952));
- Modify Global Variable(BarrierRadiusList, Append To Array, 19);
- }
- }
- rule("CONFIG: Setup Config (ConfigScoreToWin is broken atm)")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Set Global Variable(ConfigScoreToWin, 3);
Set Global Variable(ConfigMatchmakerTimer, 15);
- Global.ConfigScoreToWin = 3;
- Global.ConfigMatchmakerTimer = 15;
- }
- }
- rule("INIT: Pre-Assemble Heroes")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Set Match Time(2);
- Disable Built-In Game Mode Announcer;
- Disable Built-In Game Mode Scoring;
- }
- }
- rule("INIT: Post-Assemble Heroes")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Set Match Time(3590);
- }
- }
- rule("INIT: Setup Random 5 * 6 Sized Hero Pool")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Set Global Variable(HeroPoolArray, Empty Array);
- Global.HeroPoolArray = Empty Array;
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- Modify Global Variable(HeroPoolArray, Append To Array, Hero(Brigitte));
- }
- }
- rule("INIT: Global HUD and Signs")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Create HUD Text(All Players(All Teams), Null, Custom String("Giacomand's Duel Zones", Null, Null, Null), Custom String(
"Server Load - {0}% - {1}% avg - {2}% peak", Server Load, Server Load Average, Server Load Peak), Left, -10.000, White, Yellow,
- Create HUD Text(All Players(All Teams), Null, Custom String("Giacomand's Duel Zones"), Custom String(
- "Server Load - {0}% - {1}% avg - {2}% peak", Server Load, Server Load Average, Server Load Peak), Left, -10, White, Yellow,
- White, Visible To and String, Default Visibility);
disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("Score to win is {0}", Global Variable(ConfigScoreToWin), Null,
Null), Right, 0, White, White, White, Visible To and String, Default Visibility);
disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("Matchmaker Timer is {0} sec(s)", Global Variable(
ConfigMatchmakerTimer), Null, Null), Right, 0, White, White, White, Visible To and String, Default Visibility);
- disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("Score to win is {0}", Global.ConfigScoreToWin), Right, 0, White,
- White, White, Visible To and String, Default Visibility);
- disabled Create HUD Text(All Players(All Teams), Null, Null, Custom String("Matchmaker Timer is {0} sec(s)", Global.ConfigMatchmakerTimer),
- Right, 0, White, White, White, Visible To and String, Default Visibility);
- disabled Create HUD Text(All Players(All Teams), Null, Custom String("Server Load - {0}% - {1}% avg - {2}% peak", Server Load,
- Server Load Average, Server Load Peak), Null, Right, 1, White, White, White, Visible To and String, Default Visibility);
disabled Create HUD Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, PlayerState), ==, 2)), Null,
Null, Custom String("Searching for opponent..", Null, Null, Null), Left, -1.000, White, White, White, Visible To and String,
- disabled Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.PlayerState == 2), Null, Null, Custom String(
- "Searching for opponent.."), Left, -1, White, White, White, Visible To and String, Default Visibility);
- disabled Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.PlayerState == 2), Null, Null, Custom String(
- "Matches will be created in {0} sec(s)", Global.MatchmakerTicker), Left, 0, White, White, White, Visible To and String,
- Default Visibility);
disabled Create HUD Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, PlayerState), ==, 2)), Null,
Null, Custom String("Matches will be created in {0} sec(s)", Global Variable(MatchmakerTicker), Null, Null), Left, 0, White,
White, White, Visible To and String, Default Visibility);
Create HUD Text(All Players(All Teams), Null, String("", Null, Null, Null), String("----------", Null, Null, Null), Left, 0, White,
Yellow, White, Visible To and String, Default Visibility);
Create In-World Text(All Players(All Teams), Custom String("Waiting Room", Null, Null, Null), Add(Global Variable(
LobbySignPosition), Vector(0, 2, 0)), 2, Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
Create In-World Text(All Players(All Teams), Custom String("Score to win is {0}", Global Variable(ConfigScoreToWin), Null, Null),
Add(Global Variable(LobbySignPosition), Vector(0, 1.500, 0)), 1.500, Clip Against Surfaces, Visible To and String, White,
- Create HUD Text(All Players(All Teams), Null, String(""), String("----------"), Left, 0, White, Yellow, White,
- Visible To and String, Default Visibility);
- Create In-World Text(All Players(All Teams), Custom String("Waiting Room"), Global.LobbySignPosition + Vector(0, 2, 0), 2,
- Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
- Create In-World Text(All Players(All Teams), Custom String("Score to win is {0}", Global.ConfigScoreToWin),
- Global.LobbySignPosition + Vector(0, 1.500, 0), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
Create In-World Text(All Players(All Teams), Custom String("Matches will be created in {0} sec(s)..", Global Variable(
MatchmakerTicker), Null, Null), Add(Global Variable(LobbySignPosition), Vector(0, 1, 0)), 1.500, Clip Against Surfaces,
Visible To and String, White, Default Visibility);
Create In-World Text(All Players(All Teams), Custom String("AFK ROOM", Null, Null, Null), Vector(-92.680, 5.500, -63.203), 1.500,
- Create In-World Text(All Players(All Teams), Custom String("Matches will be created in {0} sec(s)..", Global.MatchmakerTicker),
- Global.LobbySignPosition + Vector(0, 1, 0), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
- Create In-World Text(All Players(All Teams), Custom String("AFK ROOM"), Vector(-92.680, 5.500, -63.203), 1.500,
- Clip Against Surfaces, Visible To and String, White, Default Visibility);
- }
- }
- rule("INIT: Player HUD")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
disabled Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Current Array Element, PlayerState), >, 2)), Hero Icon String(
Hero Of(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, ActiveDuelZone), ==, Player Variable(
Current Array Element, ActiveDuelZone)), Compare(Event Player, !=, Current Array Element))))), Filtered Array(All Players(
All Teams), And(Compare(Player Variable(Event Player, ActiveDuelZone), ==, Player Variable(Current Array Element,
ActiveDuelZone)), Compare(Event Player, !=, Current Array Element))), String("{0} - {1}", Player Variable(Event Player,
MatchScore), Player Variable(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, ActiveDuelZone),
==, Player Variable(Current Array Element, ActiveDuelZone)), Compare(Event Player, !=, Current Array Element))), MatchScore),
Null), Left, 1, Team 2, Team 2, White, Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Current Array Element, PlayerState), >, 2)), Hero Icon String(
Value In Array(Global Variable(HeroPoolArray), Add(Multiply(5, Player Variable(Event Player, ActiveDuelZone)), Add(0,
Player Variable(Player Variable(Event Player, CurrentOpponent), MatchLosses))))), Player Variable(Event Player,
CurrentOpponent), String("{0} - {1}", Player Variable(Event Player, MatchScore), Player Variable(Player Variable(Event Player,
CurrentOpponent), MatchScore), Null), Left, 1, Team 2, Team 2, White, Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(Event Player, And(Compare(Player Variable(Current Array Element, PlayerState), >, 2), Compare(
Player Variable(Player Variable(Event Player, CurrentOpponent), MatchLosses), <, 2))), Hero Icon String(Value In Array(
Global Variable(HeroPoolArray), Add(Multiply(5, Player Variable(Event Player, ActiveDuelZone)), Add(Player Variable(
Player Variable(Event Player, CurrentOpponent), MatchLosses), 1)))), Null, Null, Left, 2, Team 2, Team 2, White,
Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(Event Player, And(Compare(Player Variable(Current Array Element, PlayerState), >, 2), Compare(
Player Variable(Player Variable(Event Player, CurrentOpponent), MatchLosses), <, 1))), Hero Icon String(Value In Array(
Global Variable(HeroPoolArray), Add(Multiply(5, Player Variable(Event Player, ActiveDuelZone)), Add(Player Variable(
Player Variable(Event Player, CurrentOpponent), MatchLosses), 2)))), Null, Null, Left, 3, Team 2, Team 2, White,
Visible To and String, Default Visibility);
- disabled Create HUD Text(Filtered Array(Event Player, Current Array Element.PlayerState > 2), Hero Icon String(Hero Of(Filtered Array(
- All Players(All Teams),
- Event Player.ActiveDuelZone == Current Array Element.ActiveDuelZone && Event Player != Current Array Element))),
- Filtered Array(All Players(All Teams),
- Event Player.ActiveDuelZone == Current Array Element.ActiveDuelZone && Event Player != Current Array Element), String(
- "{0} - {1}", Event Player.MatchScore, Filtered Array(All Players(All Teams),
- Event Player.ActiveDuelZone == Current Array Element.ActiveDuelZone && Event Player != Current Array Element).MatchScore),
- Left, 1, Team 2, Team 2, White, Visible To and String, Default Visibility);
- Create HUD Text(Filtered Array(Event Player, Current Array Element.PlayerState > 2), Hero Icon String(
- Global.HeroPoolArray[5 * Event Player.ActiveDuelZone + 0 + Event Player.CurrentOpponent.MatchLosses]),
- Event Player.CurrentOpponent, String("{0} - {1}", Event Player.MatchScore, Event Player.CurrentOpponent.MatchScore), Left, 1,
- Team 2, Team 2, White, Visible To and String, Default Visibility);
- Create HUD Text(Filtered Array(Event Player,
- Current Array Element.PlayerState > 2 && Event Player.CurrentOpponent.MatchLosses < 2), Hero Icon String(
- Global.HeroPoolArray[5 * Event Player.ActiveDuelZone + Event Player.CurrentOpponent.MatchLosses + 1]), Null, Null, Left, 2,
- Team 2, Team 2, White, Visible To and String, Default Visibility);
- Create HUD Text(Filtered Array(Event Player,
- Current Array Element.PlayerState > 2 && Event Player.CurrentOpponent.MatchLosses < 1), Hero Icon String(
- Global.HeroPoolArray[5 * Event Player.ActiveDuelZone + Event Player.CurrentOpponent.MatchLosses + 2]), Null, Null, Left, 3,
- Team 2, Team 2, White, Visible To and String, Default Visibility);
- }
- }
- rule("INIT: Setup Duel Zone")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
0)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 0), Value In Array(Global Variable(
DuelZoneRadiusList), 0), Visible To Position and Radius);
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
1)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 1), Value In Array(Global Variable(
DuelZoneRadiusList), 1), Visible To Position and Radius);
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
2)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 2), Value In Array(Global Variable(
DuelZoneRadiusList), 2), Visible To Position and Radius);
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
3)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 3), Value In Array(Global Variable(
DuelZoneRadiusList), 3), Visible To Position and Radius);
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
4)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 4), Value In Array(Global Variable(
DuelZoneRadiusList), 4), Visible To Position and Radius);
Create Effect(Filtered Array(All Living Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
5)), Sphere, Yellow, Value In Array(Global Variable(DuelZonePositionList), 5), Value In Array(Global Variable(
DuelZoneRadiusList), 5), Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 0), Sphere, Yellow,
- Global.DuelZonePositionList[0], Global.DuelZoneRadiusList[0], Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 1), Sphere, Yellow,
- Global.DuelZonePositionList[1], Global.DuelZoneRadiusList[1], Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 2), Sphere, Yellow,
- Global.DuelZonePositionList[2], Global.DuelZoneRadiusList[2], Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 3), Sphere, Yellow,
- Global.DuelZonePositionList[3], Global.DuelZoneRadiusList[3], Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 4), Sphere, Yellow,
- Global.DuelZonePositionList[4], Global.DuelZoneRadiusList[4], Visible To Position and Radius);
- Create Effect(Filtered Array(All Living Players(All Teams), Current Array Element.ActiveDuelZone == 5), Sphere, Yellow,
- Global.DuelZonePositionList[5], Global.DuelZoneRadiusList[5], Visible To Position and Radius);
- }
- }
- rule("INIT: Create Barriers")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Create Effect(All Players(All Teams), Sphere, Red, Value In Array(Global Variable(BarrierPositionList), 0), Value In Array(
Global Variable(BarrierRadiusList), 0), Visible To);
Abort If(Compare(Count Of(Global Variable(BarrierPositionList)), <, 1));
Create Effect(All Players(All Teams), Sphere, Red, Value In Array(Global Variable(BarrierPositionList), 1), Value In Array(
Global Variable(BarrierRadiusList), 1), Visible To);
Abort If(Compare(Count Of(Global Variable(BarrierPositionList)), <, 2));
Create Effect(All Players(All Teams), Sphere, Red, Value In Array(Global Variable(BarrierPositionList), 2), Value In Array(
Global Variable(BarrierRadiusList), 2), Visible To);
Abort If(Compare(Count Of(Global Variable(BarrierPositionList)), <, 3));
- Create Effect(All Players(All Teams), Sphere, Red, Global.BarrierPositionList[0], Global.BarrierRadiusList[0], Visible To);
- Abort If(Count Of(Global.BarrierPositionList) < 1);
- Create Effect(All Players(All Teams), Sphere, Red, Global.BarrierPositionList[1], Global.BarrierRadiusList[1], Visible To);
- Abort If(Count Of(Global.BarrierPositionList) < 2);
- Create Effect(All Players(All Teams), Sphere, Red, Global.BarrierPositionList[2], Global.BarrierRadiusList[2], Visible To);
- Abort If(Count Of(Global.BarrierPositionList) < 3);
- }
- }
- rule("INIT PLAYER: Setup Data")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
Set Player Variable(Event Player, ActiveDuelZone, -1.000);
- Event Player.ActiveDuelZone = -1;
- disabled Disable Built-In Game Mode Respawning(Event Player);
- Preload Hero(Event Player, Hero(Brigitte));
- }
- }
- rule("ON STATE 1: Teleport Player To Lobby")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) == 1;
- Event Player.PlayerState == 1;
- Is Alive(Event Player) == True;
- }
- actions
- {
Teleport(Event Player, Add(Global Variable(LobbyPosition), Vector(Random Real(-3.000, 3), 0, Random Real(-3.000, 3))));
Set Player Variable(Event Player, ActiveDuelZone, -1.000);
Set Player Variable(Event Player, MatchLosses, 0);
Set Player Variable(Event Player, MatchScore, 0);
Set Player Variable(Event Player, PlayerState, 2);
Set Player Variable(Event Player, TimeSpentWaiting, 0);
- Teleport(Event Player, Global.LobbyPosition + Vector(Random Real(-3, 3), 0, Random Real(-3, 3)));
- Wait(0.100, Abort When False);
- Event Player.ActiveDuelZone = -1;
- Event Player.MatchLosses = 0;
- Event Player.MatchScore = 0;
- Event Player.PlayerState = 2;
- Event Player.TimeSpentWaiting = 0;
- Chase Player Variable At Rate(Event Player, TimeSpentWaiting, 9999, 1, None);
- Set Status(Event Player, Null, Phased Out, 9999);
Skip If(Compare(Hero Of(Event Player), !=, Hero(Tracer)), 1);
Disallow Button(Event Player, Ability 2);
disabled Set Global Variable(ZDebug, Filtered Array(All Living Players(All Teams), And(Compare(Player Variable(Current Array Element,
PlayerState), ==, 2), Compare(Event Player, !=, Current Array Element))));
Skip If(Compare(Count Of(Filtered Array(All Living Players(All Teams), And(Compare(Player Variable(Current Array Element,
PlayerState), ==, 2), Compare(Event Player, !=, Current Array Element)))), >, 1), 1);
Set Global Variable(MatchmakerTicker, Global Variable(ConfigMatchmakerTimer));
- If(Hero Of(Event Player) == Hero(Tracer));
- Disallow Button(Event Player, Ability 2);
- End;
- disabled Global.ZDebug = Filtered Array(All Living Players(All Teams),
- Current Array Element.PlayerState == 2 && Event Player != Current Array Element);
- If(Count Of(Filtered Array(All Living Players(All Teams),
- Current Array Element.PlayerState == 2 && Event Player != Current Array Element)) <= 1);
- Global.MatchmakerTicker = Global.ConfigMatchmakerTimer;
- End;
- }
- }
- rule("ON STATE 3: Teleport / Reset Player For Match")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) == 3;
- Event Player.PlayerState == 3;
- }
- actions
- {
Teleport(Event Player, Add(Global Variable(LobbyPosition), Vector(Random Real(-3.000, 3), 100, Random Real(-3.000, 3))));
- Teleport(Event Player, Global.LobbyPosition + Vector(Random Real(-3, 3), 100, Random Real(-3, 3)));
- Preload Hero(Event Player, Hero(Brigitte));
- Wait(0.250, Ignore Condition);
disabled Set Player Variable(Event Player, TempHeroWasOn, Hero Of(Event Player));
- Start Forcing Player To Be Hero(Event Player, Hero(Brigitte));
- Wait(0.016, Ignore Condition);
Start Forcing Player To Be Hero(Event Player, Value In Array(Global Variable(HeroPoolArray), Add(Multiply(5, Player Variable(
Event Player, ActiveDuelZone)), Player Variable(Event Player, MatchLosses))));
- Start Forcing Player To Be Hero(Event Player, Global.HeroPoolArray[5 * Event Player.ActiveDuelZone + Event Player.MatchLosses]);
- Stop Forcing Player To Be Hero(Event Player);
- Disallow Button(Event Player, Primary Fire);
- Disallow Button(Event Player, Secondary Fire);
- Disallow Button(Event Player, Ability 1);
- Disallow Button(Event Player, Ability 2);
Teleport(Event Player, Value In Array(Global Variable(DuelZoneSpawnList), Add(Multiply(Player Variable(Event Player,
ActiveDuelZone), 2), Player Variable(Event Player, PlayerNumberOffset))));
- Teleport(Event Player, Global.DuelZoneSpawnList[Event Player.ActiveDuelZone * 2 + Event Player.PlayerNumberOffset]);
- Wait(0.100, Ignore Condition);
Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Value In Array(Global Variable(DuelZoneSpawnList), Add(
Multiply(Player Variable(Event Player, ActiveDuelZone), 2), Player Variable(Event Player, EnemyPlayerNumberOffset)))),
To World);
Set Player Variable(Event Player, PlayerState, 4);
- Set Facing(Event Player, Direction Towards(Eye Position(Event Player),
- Global.DuelZoneSpawnList[Event Player.ActiveDuelZone * 2 + Event Player.EnemyPlayerNumberOffset]), To World);
- Event Player.PlayerState = 4;
- Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
- Small Message(Event Player, 3);
- Wait(1, Ignore Condition);
- Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
- Small Message(Event Player, 2);
- Wait(1, Ignore Condition);
- Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
- Small Message(Event Player, 1);
- Wait(1, Ignore Condition);
- Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 86);
Small Message(Event Player, Custom String("FIGHT!", Null, Null, Null));
- Small Message(Event Player, Custom String("FIGHT!"));
- Allow Button(Event Player, Primary Fire);
- Allow Button(Event Player, Secondary Fire);
- Allow Button(Event Player, Ability 1);
- Allow Button(Event Player, Ability 2);
- Set Status(Event Player, Null, Phased Out, 0);
- }
- }
- rule("ON STATE 4: Player In Match Dies")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Player Variable(Event Player, PlayerState) == 4;
- Event Player.PlayerState == 4;
- }
- actions
- {
Modify Player Variable(Event Player, MatchLosses, Add, 1);
Set Player Variable(Event Player, TempOpponent, Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player,
ActiveDuelZone), ==, Player Variable(Current Array Element, ActiveDuelZone)), Compare(Event Player, !=,
Current Array Element))));
Set Player Variable(Event Player, TempOpponent, First Of(Player Variable(Event Player, TempOpponent)));
Modify Player Variable(Player Variable(Event Player, TempOpponent), MatchScore, Add, 1);
Skip If(Compare(Player Variable(Player Variable(Event Player, TempOpponent), MatchScore), >=, Global Variable(ConfigScoreToWin)),
5);
Play Effect(Player Variable(Event Player, TempOpponent), Explosion Sound, White, Player Variable(Event Player, TempOpponent), 80);
Set Player Variable(Event Player, PlayerState, 5);
Disable Built-In Game Mode Respawning(Player Variable(Event Player, TempOpponent));
Set Player Variable(Player Variable(Event Player, TempOpponent), PlayerState, 7);
Abort;
Set Player Score(Event Player, Max(Min(Add(Score Of(Event Player), -1.000), 5), 0));
Set Player Score(Player Variable(Event Player, TempOpponent), Max(Min(Add(Score Of(Player Variable(Event Player, TempOpponent)),
1), 5), 0));
Big Message(Player Variable(Event Player, TempOpponent), Custom String("YOU WON!", Null, Null, Null));
- Event Player.MatchLosses += 1;
- Event Player.TempOpponent = Filtered Array(All Players(All Teams),
- Event Player.ActiveDuelZone == Current Array Element.ActiveDuelZone && Event Player != Current Array Element);
- Event Player.TempOpponent = First Of(Event Player.TempOpponent);
- Event Player.TempOpponent.MatchScore += 1;
- If(Event Player.TempOpponent.MatchScore < Global.ConfigScoreToWin);
- Play Effect(Event Player.TempOpponent, Explosion Sound, White, Event Player.TempOpponent, 80);
- Event Player.PlayerState = 5;
- Disable Built-In Game Mode Respawning(Event Player.TempOpponent);
- Event Player.TempOpponent.PlayerState = 7;
- "Match isn't over, abort running the rest of the code"
- Abort;
- End;
- Set Player Score(Event Player, Max(Min(Score Of(Event Player) + -1, 5), 0));
- Set Player Score(Event Player.TempOpponent, Max(Min(Score Of(Event Player.TempOpponent) + 1, 5), 0));
- Big Message(Event Player.TempOpponent, Custom String("YOU WON!"));
- Wait(1, Ignore Condition);
Set Player Variable(Event Player, PlayerState, 1);
Set Player Variable(Player Variable(Event Player, TempOpponent), PlayerState, 1);
Skip If(Compare(Player Variable(Event Player, LastOpponent), !=, Player Variable(Event Player, TempOpponent)), 2);
Modify Player Variable(Event Player, RepeatedOpponentCounter, Add, 1);
Skip(1);
Set Player Variable(Event Player, RepeatedOpponentCounter, 0);
Set Player Variable(Event Player, LastOpponent, Player Variable(Event Player, TempOpponent));
Skip If(Compare(Player Variable(Player Variable(Event Player, TempOpponent), LastOpponent), ==, Event Player), 1);
Set Player Variable(Player Variable(Event Player, TempOpponent), RepeatedOpponentCounter, 0);
Set Player Variable(Player Variable(Event Player, TempOpponent), LastOpponent, Event Player);
- Event Player.PlayerState = 1;
- "Check if the opponent hasn't left"
- Abort If(!Entity Exists(Event Player.TempOpponent));
- Event Player.TempOpponent.PlayerState = 1;
- If(Event Player.LastOpponent == Event Player.TempOpponent);
- Event Player.RepeatedOpponentCounter += 1;
- Else;
- Event Player.RepeatedOpponentCounter = 0;
- Event Player.LastOpponent = Event Player.TempOpponent;
- End;
- "Check if the opponent's opponent hasn't left or become invalid somehow"
- Abort If(!Entity Exists(Event Player.TempOpponent.TempOpponent));
- If(Event Player.TempOpponent.LastOpponent != Event Player);
- Event Player.TempOpponent.RepeatedOpponentCounter = 0;
- Event Player.TempOpponent.LastOpponent = Event Player;
- End;
- Global.DEBUG = 0;
- }
- }
- rule("ON STATE 5: Wait For Loser to Spawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Player Variable(Event Player, PlayerState) == 5;
- Event Player.PlayerState == 5;
- Is Dead(Event Player) == False;
- Is Alive(Event Player) == True;
- }
- actions
- {
Set Player Variable(Event Player, PlayerState, 6);
- Event Player.PlayerState = 6;
- }
- }
- rule("ON STATE 5: Loser Won't Spawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Player Variable(Event Player, PlayerState) == 5;
- Event Player.PlayerState == 5;
- }
- actions
- {
- Wait(10, Abort When False);
Set Player Variable(Event Player, PlayerState, 6);
- Event Player.PlayerState = 6;
- }
- }
- rule("ON STATE 6: Loser Spawned")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Player Variable(Event Player, PlayerState) == 6;
- Event Player.PlayerState == 6;
- Is Alive(Event Player) == True;
- }
- actions
- {
Set Player Variable(Event Player, TempOpponent, Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player,
ActiveDuelZone), ==, Player Variable(Current Array Element, ActiveDuelZone)), Compare(Event Player, !=,
Current Array Element))));
Set Player Variable(Event Player, TempOpponent, First Of(Player Variable(Event Player, TempOpponent)));
Enable Built-In Game Mode Respawning(Player Variable(Event Player, TempOpponent));
Set Player Variable(Event Player, PlayerState, 3);
Resurrect(Player Variable(Event Player, TempOpponent));
Set Player Variable(Player Variable(Event Player, TempOpponent), PlayerState, 3);
- Event Player.TempOpponent = Filtered Array(All Players(All Teams),
- Event Player.ActiveDuelZone == Current Array Element.ActiveDuelZone && Event Player != Current Array Element);
- Event Player.TempOpponent = First Of(Event Player.TempOpponent);
- Enable Built-In Game Mode Respawning(Event Player.TempOpponent);
- Event Player.PlayerState = 3;
- Resurrect(Event Player.TempOpponent);
- Event Player.TempOpponent.PlayerState = 3;
- }
- }
- rule("ON: Lobby Player Dies")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) <= 2;
- Event Player.PlayerState <= 2;
- }
- actions
- {
Set Player Variable(Event Player, PlayerState, 0);
Set Player Variable(Event Player, PlayerState, 1);
- Event Player.PlayerState = 0;
- Event Player.PlayerState = 1;
- }
- }
- rule("ON: Player Spawns")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Has Spawned(Event Player) == True;
- }
- actions
- {
Set Player Variable(Event Player, PlayerState, 1);
- Event Player.PlayerState = 1;
- }
- }
- rule("ON: Run Matchmaker When Clock is 0")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global Variable(MatchmakerTicker) == 0;
- Global.MatchmakerTicker == 0;
- }
- actions
- {
- Wait(1, Ignore Condition);
Set Global Variable(TempWaitingPlayersList, Filtered Array(All Living Players(All Teams), Compare(Player Variable(
Current Array Element, PlayerState), ==, 2)));
Abort If(Compare(Count Of(Global Variable(TempWaitingPlayersList)), <, 2));
Set Global Variable(TempWaitingPlayersList, Randomized Array(Global Variable(TempWaitingPlayersList)));
Set Global Variable(TempWaitingPlayersList, Sorted Array(Global Variable(TempWaitingPlayersList), Multiply(Add(Multiply(Score Of(
Current Array Element), 25), Subtract(Player Variable(Current Array Element, TimeSpentWaiting), Multiply(Player Variable(
Current Array Element, RepeatedOpponentCounter), 25))), -1.000)));
Skip If(Compare(Random Real(0, 1000), >, 500), 3);
Set Global Variable(TempPlayerOne, Value In Array(Global Variable(TempWaitingPlayersList), 0));
Set Global Variable(TempPlayerTwo, Value In Array(Global Variable(TempWaitingPlayersList), 1));
Skip(2);
Set Global Variable(TempPlayerOne, Value In Array(Global Variable(TempWaitingPlayersList), 1));
Set Global Variable(TempPlayerTwo, Value In Array(Global Variable(TempWaitingPlayersList), 0));
Set Global Variable(TempAvailableDuelZones, Empty Array);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
0))), !=, 0), 1);
- Global.TempWaitingPlayersList = Filtered Array(All Living Players(All Teams), Current Array Element.PlayerState == 2);
- Abort If(Count Of(Global.TempWaitingPlayersList) < 2);
- Global.TempWaitingPlayersList = Randomized Array(Global.TempWaitingPlayersList);
- Global.TempWaitingPlayersList = Sorted Array(Global.TempWaitingPlayersList, (Score Of(Current Array Element) * 25 + (
- Current Array Element.TimeSpentWaiting - Current Array Element.RepeatedOpponentCounter * 25)) * -1);
- If(Random Real(0, 1000) > 500);
- Global.TempPlayerOne = Global.TempWaitingPlayersList[0];
- Global.TempPlayerTwo = Global.TempWaitingPlayersList[1];
- Else;
- Global.TempPlayerOne = Global.TempWaitingPlayersList[1];
- Global.TempPlayerTwo = Global.TempWaitingPlayersList[0];
- End;
- Global.TempAvailableDuelZones = Empty Array;
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 0)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 0);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
1))), !=, 0), 1);
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 1)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 1);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
2))), !=, 0), 1);
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 2)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 2);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
3))), !=, 0), 1);
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 3)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 3);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
4))), !=, 0), 1);
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 4)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 4);
Skip If(Compare(Count Of(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==,
5))), !=, 0), 1);
- Skip If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 5)) != 0, 1);
- Modify Global Variable(TempAvailableDuelZones, Append To Array, 5);
Set Global Variable(TempAvailableDuelZones, Random Value In Array(Global Variable(TempAvailableDuelZones)));
Set Player Variable(Global Variable(TempPlayerOne), ActiveDuelZone, Global Variable(TempAvailableDuelZones));
Set Player Variable(Global Variable(TempPlayerTwo), ActiveDuelZone, Global Variable(TempAvailableDuelZones));
Set Player Variable(Global Variable(TempPlayerOne), PlayerState, 3);
Set Player Variable(Global Variable(TempPlayerTwo), PlayerState, 3);
Set Player Variable(Global Variable(TempPlayerOne), PlayerNumberOffset, 0);
Set Player Variable(Global Variable(TempPlayerTwo), PlayerNumberOffset, 1);
Set Player Variable(Global Variable(TempPlayerOne), EnemyPlayerNumberOffset, 1);
Set Player Variable(Global Variable(TempPlayerTwo), EnemyPlayerNumberOffset, 0);
Set Global Variable(TempHeroPool, Randomized Array(Allowed Heroes(Global Variable(TempPlayerOne))));
Set Global Variable At Index(HeroPoolArray, Add(Multiply(5, Global Variable(TempAvailableDuelZones)), 0), Value In Array(
Global Variable(TempHeroPool), 0));
Set Global Variable At Index(HeroPoolArray, Add(Multiply(5, Global Variable(TempAvailableDuelZones)), 1), Value In Array(
Global Variable(TempHeroPool), 1));
Set Global Variable At Index(HeroPoolArray, Add(Multiply(5, Global Variable(TempAvailableDuelZones)), 2), Value In Array(
Global Variable(TempHeroPool), 2));
Set Global Variable At Index(HeroPoolArray, Add(Multiply(5, Global Variable(TempAvailableDuelZones)), 3), Value In Array(
Global Variable(TempHeroPool), 3));
Set Global Variable At Index(HeroPoolArray, Add(Multiply(5, Global Variable(TempAvailableDuelZones)), 4), Value In Array(
Global Variable(TempHeroPool), 4));
Set Player Variable(Global Variable(TempPlayerOne), CurrentOpponent, Global Variable(TempPlayerTwo));
Set Player Variable(Global Variable(TempPlayerTwo), CurrentOpponent, Global Variable(TempPlayerOne));
Loop If(Compare(Count Of(Global Variable(TempWaitingPlayersList)), >=, 2));
- Global.TempAvailableDuelZones = Random Value In Array(Global.TempAvailableDuelZones);
- Global.TempPlayerOne.ActiveDuelZone = Global.TempAvailableDuelZones;
- Global.TempPlayerTwo.ActiveDuelZone = Global.TempAvailableDuelZones;
- Global.TempPlayerOne.PlayerState = 3;
- Global.TempPlayerTwo.PlayerState = 3;
- Global.TempPlayerOne.PlayerNumberOffset = 0;
- Global.TempPlayerTwo.PlayerNumberOffset = 1;
- Global.TempPlayerOne.EnemyPlayerNumberOffset = 1;
- Global.TempPlayerTwo.EnemyPlayerNumberOffset = 0;
- Global.TempHeroPool = Randomized Array(Allowed Heroes(Global.TempPlayerOne));
- Global.HeroPoolArray[5 * Global.TempAvailableDuelZones + 0] = Global.TempHeroPool[0];
- Global.HeroPoolArray[5 * Global.TempAvailableDuelZones + 1] = Global.TempHeroPool[1];
- Global.HeroPoolArray[5 * Global.TempAvailableDuelZones + 2] = Global.TempHeroPool[2];
- Global.HeroPoolArray[5 * Global.TempAvailableDuelZones + 3] = Global.TempHeroPool[3];
- Global.HeroPoolArray[5 * Global.TempAvailableDuelZones + 4] = Global.TempHeroPool[4];
- Global.TempPlayerOne.CurrentOpponent = Global.TempPlayerTwo;
- Global.TempPlayerTwo.CurrentOpponent = Global.TempPlayerOne;
- Loop If(Count Of(Global.TempWaitingPlayersList) >= 2);
- }
- }
- rule("LOOP: Matchmaker Clock")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global Variable(MatchmakerTicker) == 0;
- Global.MatchmakerTicker == 0;
- }
- actions
- {
Set Global Variable(MatchmakerTicker, Global Variable(ConfigMatchmakerTimer));
- Global.MatchmakerTicker = Global.ConfigMatchmakerTimer;
- Chase Global Variable At Rate(MatchmakerTicker, 0, 1, None);
- }
- }
- rule("ON: Damaging Non-Opponent During Match")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
Player Variable(Victim, PlayerState) > 2;
- Victim.PlayerState > 2;
- Victim != Event Player;
Player Variable(Event Player, ActiveDuelZone) != Player Variable(Victim, ActiveDuelZone);
- Event Player.ActiveDuelZone != Victim.ActiveDuelZone;
- }
- actions
- {
- Kill(Event Player, Null);
Big Message(Event Player, Custom String("NO GRIEFING", Null, Null, Null));
Modify Player Score(Event Player, -10.000);
- Big Message(Event Player, Custom String("NO GRIEFING"));
- Modify Player Score(Event Player, -10);
- }
- }
- rule("COLLIDE: Outside of Duel Zone")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) >= 4;
Distance Between(Event Player, Value In Array(Global Variable(DuelZonePositionList), Player Variable(Event Player,
ActiveDuelZone))) >= Subtract(Value In Array(Global Variable(DuelZoneRadiusList), Player Variable(Event Player,
ActiveDuelZone)), 1);
- Event Player.PlayerState >= 4;
- Distance Between(Event Player, Global.DuelZonePositionList[Event Player.ActiveDuelZone])
- >= Global.DuelZoneRadiusList[Event Player.ActiveDuelZone] - 1;
- }
- actions
- {
Apply Impulse(Event Player, Multiply(Direction Towards(Event Player, Value In Array(Global Variable(DuelZonePositionList),
Player Variable(Event Player, ActiveDuelZone))), 1), 20, To World, Cancel Contrary Motion);
- Apply Impulse(Event Player, Direction Towards(Event Player, Global.DuelZonePositionList[Event Player.ActiveDuelZone]) * 1, 20,
- To World, Cancel Contrary Motion);
- Damage(Event Player, Null, 50);
- Set Status(Event Player, Null, Burning, 1);
- Wait(0.250, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("COLLIDE: Inside of Barrier")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) >= 4;
Count Of(Filtered Array(Global Variable(BarrierPositionList), Compare(Subtract(Distance Between(Current Array Element,
Event Player), 0.500), <=, Value In Array(Global Variable(BarrierRadiusList), Index Of Array Value(Global Variable(
BarrierPositionList), Current Array Element))))) > 0;
- Event Player.PlayerState >= 4;
- Count Of(Filtered Array(Global.BarrierPositionList, Distance Between(Current Array Element, Event Player)
- - 0.500 <= Global.BarrierRadiusList[Index Of Array Value(Global.BarrierPositionList, Current Array Element)])) > 0;
- }
- actions
- {
- Kill(Event Player, Null);
Big Message(Event Player, Custom String("OUT OF BOUNDS", Null, Null, Null));
- Big Message(Event Player, Custom String("OUT OF BOUNDS"));
- }
- }
- rule("ON: Player Disconnected")
- {
- event
- {
- Player Left Match;
- All;
- All;
- }
- actions
- {
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 0)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 1)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 2)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 3)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 4)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
Set Global Variable(TempOrphanPlayers, Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element,
ActiveDuelZone), ==, 5)));
Skip If(Compare(Count Of(Global Variable(TempOrphanPlayers)), !=, 1), 3);
Set Player Score(Global Variable(TempOrphanPlayers), Max(Min(Add(Score Of(Global Variable(TempOrphanPlayers)), 1), 5), 0));
Set Player Variable(Global Variable(TempOrphanPlayers), PlayerState, 1);
Enable Built-In Game Mode Respawning(Global Variable(TempOrphanPlayers));
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 0);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 1);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 2);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 3);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 4);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- Global.TempOrphanPlayers = Filtered Array(All Players(All Teams), Current Array Element.ActiveDuelZone == 5);
- Skip If(Count Of(Global.TempOrphanPlayers) != 1, 3);
- Set Player Score(Global.TempOrphanPlayers, Max(Min(Score Of(Global.TempOrphanPlayers) + 1, 5), 0));
- Global.TempOrphanPlayers.PlayerState = 1;
- Enable Built-In Game Mode Respawning(Global.TempOrphanPlayers);
- }
- }
- rule("INIT: Create Spectate Zone Effects")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-102.000, 3, -82.000), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 1, Null, Null), Vector(-102.000, 6, -82.000), 2, Clip Against Surfaces,
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-102, 3, -82), 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), String("#{0}", 1), Vector(-102, 6, -82), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 0))), Null), Vector(-102.000, 5,
-82.000), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-97.000, 3, -77.000), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 2, Null, Null), Vector(-97.000, 6, -77.000), 2, Clip Against Surfaces,
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 0))), Vector(-102, 5, -82), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-97, 3, -77), 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), String("#{0}", 2), Vector(-97, 6, -77), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 1))), Null), Vector(-97.000, 5,
-77.000), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-86.000, 9.500, -65.000), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 3, Null, Null), Vector(-86.000, 12, -65.000), 2, Clip Against Surfaces,
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 1))), Vector(-97, 5, -77), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-86, 9.500, -65), 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), String("#{0}", 3), Vector(-86, 12, -65), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 2))), Null), Vector(-86.000, 11,
-65.000), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-94.000, 9.500, -55.000), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 4, Null, Null), Vector(-94.000, 12, -55.000), 2, Clip Against Surfaces,
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 2))), Vector(-86, 11, -65), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-94, 9.500, -55), 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), String("#{0}", 4), Vector(-94, 12, -55), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 3))), Null), Vector(-94.000, 11,
-55.000), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 3))), Vector(-94, 11, -55), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-108.934, 3, -70.808), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 5, Null, Null), Vector(-108.934, 6, -70.808), 2, Clip Against Surfaces,
- Create In-World Text(All Players(All Teams), String("#{0}", 5), Vector(-108.934, 6, -70.808), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 4))), Null), Vector(-108.934, 5,
-70.808), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-114.000, 3, -77.000), 2, Visible To Position and Radius);
Create In-World Text(All Players(All Teams), String("#{0}", 6, Null, Null), Vector(-114.000, 6, -77.000), 2, Clip Against Surfaces,
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 4))), Vector(-108.934, 5, -70.808), 1.500, Clip Against Surfaces,
- Visible To and String, White, Default Visibility);
- Create Effect(All Players(All Teams), Light Shaft, Aqua, Vector(-114, 3, -77), 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), String("#{0}", 6), Vector(-114, 6, -77), 2, Clip Against Surfaces,
- Visible To Position and String, White, Default Visibility);
disabled Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players", Null, Null, Null), Count Of(Filtered Array(
All Players(All Teams), Compare(Player Variable(Current Array Element, ActiveDuelZone), ==, 5))), Null), Vector(-114.000, 5,
-77.000), 1.500, Clip Against Surfaces, Visible To and String, White, Default Visibility);
- Create In-World Text(All Players(All Teams), String("{0}: {1}", String("Players"), Count Of(Filtered Array(All Players(All Teams),
- Current Array Element.ActiveDuelZone == 5))), Vector(-114, 5, -77), 1.500, Clip Against Surfaces, Visible To and String, White,
- Default Visibility);
- }
- }
- rule("ON: On Spectate Zone #1")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Distance Between(Event Player, Vector(-102.000, 5, -82.000)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Distance Between(Event Player, Vector(-102, 5, -82)) <= 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(-68.000, 15, -46.000), Add(Vector(-68.321, 15, -46.540), Facing Direction Of(Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(-68.000, 15, -46.000), Value In Array(Global Variable(DuelZonePositionList), 0)),
To World);
Set Player Variable(Event Player, Spectating, Vector(-102.000, 5, -82.000));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(-68, 15, -46), Vector(-68.321, 15, -46.540) + Facing Direction Of(Event Player), 10);
- Set Facing(Event Player, Direction Towards(Vector(-68, 15, -46), Global.DuelZonePositionList[0]), To World);
- Event Player.Spectating = Vector(-102, 5, -82);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: On Spectate Zone #2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Distance Between(Event Player, Vector(-97.000, 5, -77.000)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Distance Between(Event Player, Vector(-97, 5, -77)) <= 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(-6.753, 8, -58.626), Add(Vector(-6.753, 8, -58.626), Facing Direction Of(Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(-68.000, 15, -46.000), Value In Array(Global Variable(DuelZonePositionList), 1)),
To World);
Set Player Variable(Event Player, Spectating, Vector(-97.000, 5, -77.000));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(-6.753, 8, -58.626), Vector(-6.753, 8, -58.626) + Facing Direction Of(Event Player), 10);
- Set Facing(Event Player, Direction Towards(Vector(-68, 15, -46), Global.DuelZonePositionList[1]), To World);
- Event Player.Spectating = Vector(-97, 5, -77);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: On Spectate Zone #3")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Distance Between(Event Player, Vector(-86.000, 11, -65.000)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Distance Between(Event Player, Vector(-86, 11, -65)) <= 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(32.976, 19.508, -74.900), Add(Vector(32.976, 19.508, -74.900), Facing Direction Of(
Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(-86.000, 11, -65.000), Value In Array(Global Variable(DuelZonePositionList), 2)),
To World);
Set Player Variable(Event Player, Spectating, Vector(-86.000, 11, -65.000));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(32.976, 19.508, -74.900), Vector(32.976, 19.508, -74.900) + Facing Direction Of(Event Player),
- 10);
- Set Facing(Event Player, Direction Towards(Vector(-86, 11, -65), Global.DuelZonePositionList[2]), To World);
- Event Player.Spectating = Vector(-86, 11, -65);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: On Spectate Zone #4")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Distance Between(Event Player, Vector(-94.000, 11, -55.000)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Distance Between(Event Player, Vector(-94, 11, -55)) <= 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(98.003, 19, -72.840), Add(Vector(98.003, 19, -72.840), Facing Direction Of(Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(98.003, 19, -72.840), Value In Array(Global Variable(DuelZonePositionList), 3)),
To World);
Set Player Variable(Event Player, Spectating, Vector(-94.000, 11, -55.000));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(98.003, 19, -72.840), Vector(98.003, 19, -72.840) + Facing Direction Of(Event Player), 10);
- Set Facing(Event Player, Direction Towards(Vector(98.003, 19, -72.840), Global.DuelZonePositionList[3]), To World);
- Event Player.Spectating = Vector(-94, 11, -55);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: On Spectate Zone #5")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Vector(-108.934, 5, -70.808)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(124.410, 15.910, -46.384), Add(Vector(124.410, 15.910, -46.384), Facing Direction Of(
Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(124.410, 15.910, -46.384), Value In Array(Global Variable(DuelZonePositionList),
4)), To World);
Set Player Variable(Event Player, Spectating, Vector(-108.934, 5, -70.808));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(124.410, 15.910, -46.384), Vector(124.410, 15.910, -46.384) + Facing Direction Of(Event Player),
- 10);
- Set Facing(Event Player, Direction Towards(Vector(124.410, 15.910, -46.384), Global.DuelZonePositionList[4]), To World);
- Event Player.Spectating = Vector(-108.934, 5, -70.808);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: On Spectate Zone #6")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Distance Between(Event Player, Vector(-114.000, 5, -77.000)) <= 2;
Player Variable(Event Player, PlayerState) == 2;
- Distance Between(Event Player, Vector(-114, 5, -77)) <= 2;
- Event Player.PlayerState == 2;
- }
- actions
- {
- Abort If(Is In Air(Event Player));
Start Camera(Event Player, Vector(227.511, 36, -40.406), Add(Vector(227.511, 36, -40.406), Facing Direction Of(Event Player)), 10);
Set Facing(Event Player, Direction Towards(Vector(227.511, 36, -40.406), Value In Array(Global Variable(DuelZonePositionList), 5)),
To World);
Set Player Variable(Event Player, Spectating, Vector(-114.000, 5, -77.000));
Small Message(Event Player, Custom String("Jump or move to stop spectating", Null, Null, Null));
- Start Camera(Event Player, Vector(227.511, 36, -40.406), Vector(227.511, 36, -40.406) + Facing Direction Of(Event Player), 10);
- Set Facing(Event Player, Direction Towards(Vector(227.511, 36, -40.406), Global.DuelZonePositionList[5]), To World);
- Event Player.Spectating = Vector(-114, 5, -77);
- Small Message(Event Player, Custom String("Jump or move to stop spectating"));
- }
- }
- rule("ON: Finished Spectating")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, Spectating) != Null;
disabled Distance Between(Player Variable(Event Player, Spectating), Position Of(Event Player)) > 2;
Or(Compare(Distance Between(Player Variable(Event Player, Spectating), Position Of(Event Player)), >, 2), Is In Air(Event Player))
== True;
- Event Player.Spectating != Null;
- disabled Distance Between(Event Player.Spectating, Position Of(Event Player)) > 2;
- (Distance Between(Event Player.Spectating, Position Of(Event Player)) > 2 || Is In Air(Event Player)) == True;
- }
- actions
- {
- Stop Camera(Event Player);
Set Player Variable(Event Player, Spectating, Null);
- Event Player.Spectating = Null;
- }
- }
- rule("ON: Entered AFK Room")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Spawn Room(Event Player) == False;
Player Variable(Event Player, PlayerState) == 2;
- Event Player.PlayerState == 2;
- Distance Between(Vector(-90.622, 5.176, -61.049), Event Player) < 13;
- }
- actions
- {
Small Message(Event Player, Custom String("AFK MODE ENABLED", Null, Null, Null));
Set Player Variable(Event Player, PlayerState, -4.000);
- Small Message(Event Player, Custom String("AFK MODE ENABLED"));
- Event Player.PlayerState = -4;
- Set Status(Event Player, Null, Phased Out, 9999);
- }
- }
- rule("ON: Exit AFK Room")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Player Variable(Event Player, PlayerState) == -4.000;
- Event Player.PlayerState == -4;
- Is In Spawn Room(Event Player) == True;
- }
- actions
- {
Small Message(Event Player, Custom String("AFK MODE DISABLED", Null, Null, Null));
Set Player Variable(Event Player, PlayerState, 2);
- Small Message(Event Player, Custom String("AFK MODE DISABLED"));
- Event Player.PlayerState = 2;
- }
}
- }