Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "PART 1 - Map puzzle / Find the exit point - Hold F to respawn - Press F on circle to jump to the next lvl - Hold Crough+Interact to reset progress - Hint: The checkpoints are always outside the normal accessable area (=out of the real map) - Always-updated on: https://workshop.elohell.gg v.3.5.7 - P1 Created by Kleator"
  • Description: "PART 1 - Map puzzle / Find the exit point - Hold F to respawn - Press F on circle to jump to the next lvl - Hold Crough+Interact to reset progress - Hint: The checkpoints are always outside the normal accessable area (=out of the real map) - Always-updated on: https://workshop.codes/escape-room v.3.6.0 - P1 Created by Kleator"
  • }
  • lobby
  • {
  • Map Rotation: After A Game
  • Max Spectators: 12
  • Return To Lobby: Never
  • }
  • modes
  • {
  • Skirmish
  • {
  • enabled maps
  • {
  • Busan
  • Hanamura
  • Hanamura Winter
  • Havana
  • Hollywood
  • King's Row
  • Oasis
  • Paris
  • }
  • }
  • General
  • {
  • Respawn As Random Hero: On
  • Respawn Time Scalar: 0%
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Ana
  • {
  • Sleep Dart: Off
  • }
  • Ashe
  • {
  • Coach Gun Cooldown Time: 60%
  • Coach Gun Knockback Scalar Enemy: 0%
  • Coach Gun Knockback Scalar Self: 52%
  • }
  • Baptiste
  • {
  • Jump Vertical Speed: 60%
  • }
  • Brigitte
  • {
  • Shield Bash Cooldown Time: 80%
  • Shield Bash Knockback Scalar: 25%
  • Ultimate Generation - Passive Rally: 500%
  • Whip Shot: Off
  • }
  • D.Va
  • {
  • Boosters: Off
  • Boosters Knockback Scalar: 0%
  • Call Mech Knockback Scalar: 0%
  • Self Destruct Knockback Scalar: 0%
  • Spawn With Ultimate Ready: On
  • Ultimate Generation - Passive Self-Destruct: 500%
  • Ultimate Generation Self-Destruct: 10%
  • }
  • Doomfist
  • {
  • Jump Vertical Speed: 150%
  • Rising Uppercut Knockback Scalar: 0%
  • Rocket Punch Knockback Scalar: 0%
  • Seismic Slam: Off
  • Ultimate Ability Meteor Strike: Off
  • }
  • Genji
  • {
  • Infinite Ultimate Duration: On
  • Spawn With Ultimate Ready: On
  • Swift Strike Cooldown Time: 70%
  • }
  • Junkrat
  • {
  • Concussion Mine Cooldown Time: 30%
  • Frag Launcher Knockback Scalar: 0%
  • }
  • Lúcio
  • {
  • Soundwave Knockback Scalar: 0%
  • }
  • Mei
  • {
  • Blizzard Freeze Rate Scalar: 0%
  • Ice Wall Cooldown Time: 80%
  • }
  • Mercy
  • {
  • Guardian Angel: Off
  • Resurrect: Off
  • }
  • Moira
  • {
  • Fade Cooldown Time: 30%
  • }
  • Pharah
  • {
  • Concussive Blast: Off
  • }
  • Reaper
  • {
  • Shadow Step Cooldown Time: 50%
  • }
  • Reinhardt
  • {
  • Charge Cooldown Time: 60%
  • Charge Knockback Scalar: 0%
  • Rocket Hammer Knockback Scalar: 0%
  • }
  • Soldier: 76
  • {
  • Helix Rockets Cooldown Time: 0%
  • Helix Rockets Knockback Scalar: 145%
  • }
  • Torbjörn
  • {
  • Deploy Turret: Off
  • }
  • Widowmaker
  • {
  • Grappling Hook Cooldown Time: 60%
  • }
  • Wrecking Ball
  • {
  • Grappling Claw Knockback Scalar: 0%
  • Minefield Knockback Scalar: 0%
  • }
  • enabled heroes
  • {
  • Soldier: 76
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 1: Highscorebutton
  • 7: TopHighscore
  • 11: LastWinner
  • 18: Serverload
  • 19: DEVHUD
  • 21: WinGlobalFix
  • 22: Win
  • 23: WinMaprotation
  • 24: WinMaprestartdoublevalfix
  • 25: Currentmap
  • player:
  • 0: Playerlevel
  • 1: Timerrunning
  • 2: TimerHUD
  • 3: Timer
  • 15: PreWinPos
  • 22: Won
  • 23: Winparticle
  • }
  • subroutines
  • {
  • 1: DEVHudTextServerload
  • }
  • rule("----------------------------------------------------------=== Init ===--------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Global.Currentmap = Current Map;
  • Global.Win = False;
  • Global.WinMaprotation = False;
  • Global.TopHighscore[4] = False;
  • Create HUD Text(All Players(All Teams), Null, Custom String("Hold Interact to respawn // Hold Crouch + Interact to reset"),
  • Custom String("Goal: Find the checkpoint (which is always out of the real map)"), Left, -0.050, Purple, Purple, Blue,
  • Visible To and String, Visible Always);
  • Create HUD Text(All Players(All Teams), Null, Custom String("Newest code always on Elo-Hell Workshop:"), Custom String(
  • "Map puzzle / Map escape (v3.5.7 - P1)"), Right, -0.100, Green, Orange, Green, Visible To and String, Visible Always);
  • Create HUD Text(All Players(All Teams), Null, Custom String("Newest code always on workshop.codes:"), Custom String(
  • "Map puzzle / Map escape (v3.6.0 - P1)"), Right, -0.100, Green, Orange, Green, Visible To and String, Visible Always);
  • Call Subroutine(DEVHudTextServerload);
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.Playerlevel[0] = 0;
  • Event Player.Playerlevel[1] = False;
  • Set Damage Received(Event Player, 0);
  • Set Status(Event Player, Null, Unkillable, 9999);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Create HUD Text(Event Player, String("{0} {1}", Hero Icon String(Hero Of(Event Player)), String("{0}: {1}", String(
  • "Current Level"), 1 + Event Player.Playerlevel[0])), Null, Null, Top, 1, Green, White, White, Visible To and String,
  • Default Visibility);
  • Wait(2.200, Ignore Condition);
  • Create HUD Text(Filtered Array(Event Player, Event Player.Timerrunning[1] == True), String("{0}:{1}", String("{0}:{1}",
  • Event Player.TimerHUD[1], Event Player.TimerHUD[0]), Event Player.Timer), String("<- {0}", String("Time")), String("{0}: {1}",
  • Custom String("Best Time"), String("{0}:{1}", Global.TopHighscore[0], String("{0}:{1}", Global.TopHighscore[1],
  • Global.TopHighscore[2]))), Right, -0.001, White, White, Purple, Visible To and String, Default Visibility);
  • Event Player.TimerHUD[2] = Last Text ID;
  • Event Player.Won = False;
  • }
  • }
  • rule("-------------------------------------------------------=== SETTINGS ===-------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("ON/OFF - Server Crash Saver (Slowmotion)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Server Load >= 99;
  • }
  • actions
  • {
  • Set Slow Motion((100 - (Server Load Average * 1.200 - 100)) / 1);
  • Global.Serverload[0] = Server Load;
  • Global.Serverload[1] = Server Load Average;
  • Global.Serverload[2] = Server Load Peak;
  • Wait(0.500, Restart When True);
  • Set Slow Motion(100);
  • }
  • }
  • disabled rule("ON/OFF - Map rotation after Win")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.WinMaprotation = True;
  • }
  • }
  • rule("ON/OFF - Punish (freeze) people who kill")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • All;
  • All;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Frozen, 15);
  • }
  • }
  • rule("ON/OFF - Highscore-Speedrun")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.016, Ignore Condition);
  • Global.TopHighscore[4] = True;
  • Wait(0.980, Ignore Condition);
  • Skip If(Global.Currentmap != Map(Paris), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 1;
  • Global.TopHighscore[2] = 59.980;
  • Skip If(Global.Currentmap != Map(Busan), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 1;
  • Global.TopHighscore[2] = 30.130;
  • Skip If(Global.Currentmap != Map(Oasis), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 2;
  • Global.TopHighscore[2] = 25.140;
  • Skip If(Global.Currentmap != Map(Havana), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 2;
  • Global.TopHighscore[2] = 9.440;
  • Skip If(Global.Currentmap != Map(Hollywood), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 3;
  • Global.TopHighscore[2] = 4.930;
  • Skip If(Global.Currentmap != Map(King's Row), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 2;
  • Global.TopHighscore[2] = 9.040;
  • Skip If(Global.Currentmap != Map(Hanamura) && Global.Currentmap != Map(Hanamura Winter), 3);
  • Global.TopHighscore[0] = 0;
  • Global.TopHighscore[1] = 0;
  • Global.TopHighscore[2] = 45.980;
  • }
  • }
  • rule("ON/OFF - DEV - Disable Inspector Recording (Serverload improving)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Disable Inspector Recording;
  • }
  • }
  • disabled rule("ON/OFF - DEV - HUD: Facing direction")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.Z = Facing Direction Of(Event Player);
  • Wait(3, Ignore Condition);
  • Loop;
  • }
  • }
  • disabled rule("ON/OFF - DEV - HUD: Player Pos")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Position Of(Event Player), Null, Null, Left, 0, White, White, White, Visible To and String,
  • Default Visibility);
  • Global.DEVHUD = True;
  • }
  • }
  • disabled rule("ON/OFF - DEV - HUD: Serverload")
  • {
  • event
  • {
  • Subroutine;
  • DEVHudTextServerload;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Server Load"), Server Load), Null, Null, Left, 1, White, White,
  • White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Server Load Average"), Server Load Average), Null, Null, Left,
  • 1, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • disabled rule("ON/OFF - DEV - Add Level")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Ultimate) && Is Button Held(Event Player, Interact)) == True;
  • disabled True == False;
  • }
  • actions
  • {
  • Event Player.Playerlevel[0] += 1;
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Global.TopHighscore[4] = False;
  • Clear Status(Event Player, Hacked);
  • }
  • }
  • disabled rule("ON/OFF - DEV - Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Interact) && Is Button Held(Event Player, Crouch)) == True;
  • disabled True == False;
  • }
  • actions
  • {
  • Teleport(Event Player, Position Of(Event Player) + 3 * Facing Direction Of(Event Player));
  • Global.TopHighscore[4] = False;
  • }
  • }
  • disabled rule("ON/OFF - DEV - Phara switch")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Primary Fire) && Is Button Held(Event Player, Jump) && Is Button Held(Event Player, Interact))
  • == True;
  • disabled True == False;
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Global.TopHighscore[4] = False;
  • }
  • }
  • rule("-------------------------------------------------------### Mode Setup ###-------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("BUTTON: GLOBAL: INIT")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.TopHighscore[4] == True;
  • }
  • actions
  • {
  • Global.Highscorebutton = Empty Array;
  • Skip If(Global.Currentmap != Map(Hollywood), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(-64.090, 10.784, 87.980));
  • Skip If(Global.Currentmap != Map(Busan), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(-18.477, 18, -137.805));
  • Skip If(Global.Currentmap != Map(Havana), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(-34.723, 8.600, 69.340));
  • Skip If(Global.Currentmap != Map(Paris), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(19.418, 11.583, -38.434));
  • Skip If(Global.Currentmap != Map(Oasis), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(-163.052, 22.800, -32.134));
  • Skip If(Global.Currentmap != Map(King's Row), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(3.239, 0.194, -65.968));
  • Skip If(Global.Currentmap != Map(Hanamura) && Global.Currentmap != Map(Hanamura Winter), 1);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, Vector(27.829, -0.356, -34.120));
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, 0.500);
  • Global.Highscorebutton = Append To Array(Global.Highscorebutton, 5);
  • Global.Highscorebutton[3] = Global.Highscorebutton[0] + Vector(0, 0.500, 0);
  • }
  • }
  • rule("BUTTON: player init")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.TopHighscore[4] == True;
  • }
  • actions
  • {
  • Event Player.Timerrunning = Empty Array;
  • Event Player.Timerrunning = Append To Array(Event Player.Timerrunning, False);
  • Event Player.Timerrunning = Append To Array(Event Player.Timerrunning, False);
  • }
  • }
  • rule("BUTTON: EFFECTS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.TopHighscore[4] == True;
  • }
  • actions
  • {
  • Create In-World Text(Filtered Array(All Players(All Teams), !Current Array Element.Timerrunning[1]), String("Off"),
  • Global.Highscorebutton[0], 1, Clip Against Surfaces, Visible To and String, White, Default Visibility);
  • Create Effect(Filtered Array(All Players(All Teams), !Current Array Element.Timerrunning[1]), Sphere, Red,
  • Global.Highscorebutton[0], Global.Highscorebutton[1], Visible To);
  • Create Effect(Filtered Array(Filtered Array(All Players(All Teams), Current Array Element.Timerrunning[0]),
  • !Current Array Element.Timerrunning[1]), Good Aura, Red, Global.Highscorebutton[0], Global.Highscorebutton[1], Visible To);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.Timerrunning[1]), String("On"),
  • Global.Highscorebutton[0], 1, Clip Against Surfaces, Visible To and String, White, Default Visibility);
  • Create Effect(Filtered Array(All Players(All Teams), Current Array Element.Timerrunning[1]), Sphere, Yellow,
  • Global.Highscorebutton[0], Global.Highscorebutton[1] / 2, Visible To);
  • Create Effect(Filtered Array(Filtered Array(All Players(All Teams), Current Array Element.Timerrunning[0]),
  • Current Array Element.Timerrunning[1]), Good Aura, Yellow, Global.Highscorebutton[0], Global.Highscorebutton[1] / 2,
  • Visible To);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Time"), String("Run")), Global.Highscorebutton[3], 1,
  • Clip Against Surfaces, Visible To and String, White, Default Visibility);
  • }
  • }
  • rule("BUTTON: focus")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Timerrunning[0] == False;
  • (Distance Between(Global.Highscorebutton[0], Eye Position(Event Player)) <= Global.Highscorebutton[2] && Distance Between(
  • Global.Highscorebutton[0], Eye Position(Event Player) + Facing Direction Of(Event Player) * Distance Between(Eye Position(
  • Event Player), Global.Highscorebutton[0])) <= Global.Highscorebutton[1] && Is In Line of Sight(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player),
  • Global.Highscorebutton[0]), Barriers Do Not Block LOS)) == True;
  • Event Player.Playerlevel[0] == 0;
  • }
  • actions
  • {
  • Event Player.Timerrunning[0] = True;
  • }
  • }
  • rule("BUTTON: UNfocus")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Timerrunning[0] == True;
  • (Distance Between(Global.Highscorebutton[0], Eye Position(Event Player)) <= Global.Highscorebutton[2] && Distance Between(
  • Global.Highscorebutton[0], Eye Position(Event Player) + Facing Direction Of(Event Player) * Distance Between(Eye Position(
  • Event Player), Global.Highscorebutton[0])) <= Global.Highscorebutton[1] && Is In Line of Sight(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player),
  • Global.Highscorebutton[0]), Barriers Do Not Block LOS)) == False;
  • }
  • actions
  • {
  • Event Player.Timerrunning[0] = False;
  • }
  • }
  • rule("BUTTON: INTERACT")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Timerrunning[0] == True;
  • Event Player.Playerlevel[0] == 0;
  • }
  • actions
  • {
  • Play Effect(Event Player, Ring Explosion, White, Global.Highscorebutton[0], 2);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 100);
  • Skip If(Event Player.Timerrunning[1], 2);
  • Event Player.Timerrunning[1] = True;
  • Abort;
  • Skip If(!Event Player.Timerrunning[1], 3);
  • Event Player.Timerrunning[1] = False;
  • Stop Chasing Player Variable(Event Player, Timer);
  • Event Player.Timer = 0;
  • }
  • }
  • rule("Soldier avoid bug: phased out")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Soldier: 76);
  • Is Button Held(Event Player, Secondary Fire) == True;
  • }
  • actions
  • {
  • Clear Status(Event Player, Phased Out);
  • Wait(0.500, Restart When True);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("Self kill")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Is Button Held(Event Player, Crouch) == False;
  • Global.Win == False;
  • }
  • actions
  • {
  • Wait(0.500, Ignore Condition);
  • Skip If(Is Button Held(Event Player, Interact) == False, 2);
  • Small Message(Event Player, String("{0} sec", 3));
  • Wait(0.800, Ignore Condition);
  • Skip If(Is Button Held(Event Player, Interact) == False, 2);
  • Small Message(Event Player, String("{0} sec", 2));
  • Wait(0.800, Ignore Condition);
  • Skip If(Is Button Held(Event Player, Interact) == False, 2);
  • Small Message(Event Player, String("{0} sec", 1));
  • Wait(0.800, Ignore Condition);
  • Skip If(Is Button Held(Event Player, Interact) == False, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • }
  • }
  • rule("Progress reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Is Button Held(Event Player, Crouch) == True;
  • Global.Win == False;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 3);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 50);
  • Big Message(Event Player, String("{0}!", String("{0}: {1}", String("Try Again"), 10), String("New High Score")));
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 2);
  • Big Message(Event Player, String("{0}!", String("{0}: {1}", String("Try Again"), 9), String("New High Score")));
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 1);
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 2);
  • Big Message(Event Player, String("{0}!", String("{0}: {1}", String("Try Again"), 7), String("New High Score")));
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 2);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 70);
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 2);
  • Big Message(Event Player, String("{0}!!", String("{0}: {1}", String("Try Again"), 5), String("New High Score")));
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 1);
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 3);
  • Big Message(Event Player, String("{0}!!!", String("{0}: {1}", String("Try Again"), 3), String("New High Score")));
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 80);
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 3);
  • Big Message(Event Player, String("{0}!!!", String("{0}: {1}", String("Try Again"), 2), String("New High Score")));
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 100);
  • Wait(1, Ignore Condition);
  • Skip If((Is Button Held(Event Player, Crouch) && Is Button Held(Event Player, Interact)) == False, 8);
  • Big Message(Event Player, String("{0}!!!", String("{0}: {1}", String("Try Again"), 1), String("New High Score")));
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 120);
  • Wait(1, Ignore Condition);
  • Play Effect(Event Player, Bad Explosion, Red, Event Player, 30);
  • Wait(0.100, Ignore Condition);
  • Event Player.Playerlevel[0] = 0;
  • Event Player.Timerrunning[1] = False;
  • Teleport(Event Player, Vector(0, -10000, 0));
  • }
  • }
  • rule("Speedrun-Timer")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Timerrunning[1] == True;
  • }
  • actions
  • {
  • Event Player.Timer[0] = 0;
  • Event Player.TimerHUD[0] = 0;
  • Event Player.TimerHUD[1] = 0;
  • Chase Player Variable At Rate(Event Player, Timer, 60, 1, Destination and Rate);
  • }
  • }
  • rule("Speedrun-Timer count reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Timerrunning[1] == True;
  • }
  • actions
  • {
  • Skip If(Event Player.Timer != 60, 2);
  • Event Player.TimerHUD[0] += 1;
  • Event Player.Timer = 0;
  • Skip If(Event Player.TimerHUD[0] != 60, 2);
  • Event Player.TimerHUD[1] += 1;
  • Event Player.TimerHUD[0] = 0;
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Map Win-Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Event Player.Won == True;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(All Players(All Teams), Timer, 60, 0, Destination and Rate);
  • Global.WinGlobalFix = True;
  • Global.LastWinner = Event Player;
  • Wait(0.250, Ignore Condition);
  • Set Match Time(17);
  • Skip If(Global.TopHighscore[4] == False, 3);
  • Destroy HUD Text(Event Player.TimerHUD[2]);
  • Skip If(Event Player.Timer == 0, 1);
  • Create HUD Text(All Players(All Teams), String("{0}:{1}", String("{0}:{1}", Event Player.TimerHUD[1], Event Player.TimerHUD[0]),
  • Event Player.Timer), String("<- {0}", String("Time")), String("{0}: {1}", String("High Score"), String("{0}:{1}",
  • Global.TopHighscore[0], String("{0}:{1}", Global.TopHighscore[1], Global.TopHighscore[2]))), Right, -0.001, Red, Yellow,
  • Purple, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Win"), Event Player), Null, Null, Top, 998, Purple, White,
  • White, Visible To and String, Default Visibility);
  • Big Message(All Players(All Teams), String("{0}: {1}", String("Games Won"), Event Player));
  • Wait(1, Ignore Condition);
  • Destroy Effect(Event Player.Winparticle);
  • Wait(0.100, Ignore Condition);
  • Create Effect(All Players(All Teams), Sparkles, Purple, Position Of(Event Player), 1, Visible To Position and Radius);
  • Event Player.Winparticle = Last Created Entity;
  • Wait(15, Ignore Condition);
  • Skip If(Global.WinMaprotation == True, 7);
  • Skip If(Event Player.Won == False, 6);
  • Event Player.Playerlevel = 0;
  • Event Player.Timerrunning[1] = False;
  • Event Player.Timer = 0;
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(5, Ignore Condition);
  • Event Player.Won = False;
  • }
  • }
  • rule("Map Win-Global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.WinGlobalFix == True;
  • Global.Win == True;
  • Global.WinMaprotation != True;
  • }
  • actions
  • {
  • Wait(15.750, Ignore Condition);
  • Set Match Time(9999);
  • Global.WinMaprestartdoublevalfix = True;
  • Wait(0.100, Ignore Condition);
  • Global.Win = False;
  • Play Effect(All Players(All Teams), Ring Explosion Sound, White, All Players(All Teams), 80);
  • Global.WinGlobalFix = False;
  • }
  • }
  • rule("Map teleport back + HUD Recover")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.WinMaprotation == False;
  • Global.WinMaprestartdoublevalfix == True;
  • }
  • actions
  • {
  • Skip If(Event Player.Won == True, 2);
  • Teleport(Event Player, Event Player.PreWinPos);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 1, Destination and Rate);
  • Wait(0.250, Ignore Condition);
  • Destroy All HUD Text;
  • Wait(0.050, Ignore Condition);
  • Create HUD Text(Event Player, String("{0} {1}", Hero Icon String(Hero Of(Event Player)), String("{0}: {1}", String(
  • "Current Level"), 1 + Event Player.Playerlevel[0])), Custom String("Last winner:"), Global.LastWinner, Top, 1, Green, Red, Red,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Event Player, Event Player.Timerrunning[1] == True), String("{0}:{1}", String("{0}:{1}",
  • Event Player.TimerHUD[1], Event Player.TimerHUD[0]), Event Player.Timer), String("<- {0}", String("Time")), String("{0}: {1}",
  • Custom String("Best Time"), String("{0}:{1}", Global.TopHighscore[0], String("{0}:{1}", Global.TopHighscore[1],
  • Global.TopHighscore[2]))), Right, -0.001, White, White, Purple, Visible To and String, Default Visibility);
  • Global.WinMaprestartdoublevalfix = False;
  • }
  • }
  • rule("Map teleport HUD Recover")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.WinMaprotation == False;
  • Global.WinMaprestartdoublevalfix == True;
  • }
  • actions
  • {
  • Wait(0.300, Ignore Condition);
  • Create HUD Text(All Players(All Teams), Null, Custom String("Hold Interact to respawn // Hold Crouch + Interact to reset"),
  • Custom String("Goal: Find the checkpoint (which is always out of the real map)"), Left, -0.050, Purple, Purple, Blue,
  • Visible To and String, Visible Always);
  • Create HUD Text(All Players(All Teams), Null, Custom String("Newest code always on Elo-Hell Workshop:"), Custom String(
  • "Map puzzle / Map escape (v3.5.7 - P1)"), Right, -0.100, Green, Orange, Green, Visible To and String, Visible Always);
  • Create HUD Text(All Players(All Teams), Null, Custom String("Newest code always on workshop.codes:"), Custom String(
  • "Map puzzle / Map escape (v3.6.0 - P1)"), Right, -0.100, Green, Orange, Green, Visible To and String, Visible Always);
  • Call Subroutine(DEVHudTextServerload);
  • }
  • }
  • rule("-------------------------------------------------------===[ Paris ]===-------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Paris);
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(33.106, 11.381, -25.405));
  • Wait(2, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Event Player, Vector(19.408, 10.079, -38.424)), To World);
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Respawn(Event Player);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 3);
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(33.106, 11.381, -25.405));
  • Set Facing(Event Player, Direction Towards(Event Player, Vector(19.408, 10.079, -38.424)), To World);
  • Skip If(Event Player.Playerlevel[0] != 1, 3);
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(-3.783, 12.843, -22.029));
  • Set Facing(Event Player, Vector(-0.910, 0, 0.420), To World);
  • Skip If(Event Player.Playerlevel[0] != 2, 3);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-36.472, 14.366, 47.005));
  • Set Facing(Event Player, Vector(0.700, 0, -0.720), To World);
  • Skip If(Event Player.Playerlevel[0] != 3, 3);
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(-35.138, 45.203, 44.705));
  • Set Facing(Event Player, Vector(0.300, 0, -0.950), To World);
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(30.115, 13.928, -64.258));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(3.516, 17.102, -53.139));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Widowmaker));
  • Teleport(Event Player, Vector(-9.019, 21.098, -58.354));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-63.168, 13.307, -27.835));
  • Skip If(Event Player.Playerlevel[0] != 8, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-91.295, 24.599, -113.311));
  • Set Match Time(10000);
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(9.738, 12.849, -30.461), 1.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(9.738, 12.849, -30.461), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-30.610, 11.338, 28.828), 0.200, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(-30.610, 11.338, 28.828), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-49.969, 13.339, 28.572), 0.200, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(-49.969, 13.339, 28.572), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Green, Vector(12.498, 11.376, -74.610), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(12.498, 11.376, -74.610), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Green, Vector(-16.233, 41.264, -96.604), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Ring, Green, Vector(-2.160, 7.630, -48.380), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(-2.160, 7.630, -48.380), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Green, Vector(-71.930, 14.646, -100.333), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(-71.930, 14.646, -100.333), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Green, Vector(-63.449, 21.088, 3.301), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 9), Vector(-63.449, 21.089, 3.301), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(-112.112, 10.041, -47.387), 0.800, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-112.112, 10, -47.387),
  • 1, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-112.112, 10, -47.387),
  • 1, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Hold INTERACT to respawn"), Vector(-37.391, 13, -20.442), 1.700,
  • Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • }
  • }
  • rule("Bubble impulse Paris")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Paris);
  • Event Player.Playerlevel[0] == 5;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-2.690, -2.500, -47.620)) > 10.100, 2);
  • Start Accelerating(Event Player, Direction Towards(Vector(-2.690, -2.500, -47.620), Event Player), 1000, 4.200, To World, None);
  • Wait(0.016, Ignore Condition);
  • Skip If(Distance Between(Event Player, Vector(-2.690, -2.500, -47.620)) <= 10, 1);
  • Stop Accelerating(Event Player);
  • Wait(0.020, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Lvl1 = Soldier")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(9.738, 11.599, -30.461)) > 1.500, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(9.738, 11.599, -30.461), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(-3.783, 12.843, -22.029));
  • Set Facing(Event Player, Vector(-0.910, 0, 0.420), To World);
  • }
  • }
  • rule("Lvl2 - Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-14.303, 11.316, -8.622)) < 1;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(-13.450, 10.964, -7.805));
  • }
  • }
  • rule("Lvl2 = Ash")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-30.910, 10.089, 28.828)) > 1.500, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-30.910, 10.338, 28.828), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-36.472, 14.366, 47.005));
  • Set Facing(Event Player, Vector(0.700, 0, -0.720), To World);
  • }
  • }
  • rule("Lvl3 = Pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-49.969, 12.088, 28.572)) > 1, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-49.969, 12.088, 28.572), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(-35.138, 45.203, 44.705));
  • Set Facing(Event Player, Vector(0.300, 0, -0.950), To World);
  • }
  • }
  • rule("Lvl4 = Hanzo")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-16.233, 40.014, -96.604)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-16.233, 40.014, -96.604), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(30.115, 13.928, -64.258));
  • }
  • }
  • rule("Lvl5 = Reaper")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(12.498, 10.376, -74.610)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(12.498, 10.126, -74.610), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 5;
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(3.516, 17.102, -53.139));
  • }
  • }
  • rule("Lvl6 = Genji")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-2.160, 7.630, -48.380)) > 1.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-2.160, 6.380, -48.380), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Widowmaker));
  • Teleport(Event Player, Vector(-9.019, 21.098, -58.354));
  • }
  • }
  • rule("Lvl7 - Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-21.138, 10.104, -62.225)) < 0.700;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(-22.102, 11.354, -63.185));
  • }
  • }
  • rule("Lvl8 = Widow")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-71.930, 13.396, -100.333)) > 1.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-71.930, 13.396, -100.333), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-63.181, 13.307, -27.848));
  • }
  • }
  • rule("Lvl9 = Pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 7;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-63.449, 19.839, 3.301)) > 1.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-63.449, 19.839, 3.301), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-91.295, 24.599, -113.311));
  • }
  • }
  • rule("Lvl10 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 8;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-112.112, 9.791, -47.387)) > 0.800, 12);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(-112.112, 9.791, -47.387), 4);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 9;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(-57.725, 13.339, -27.813));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(Paris);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(-53.695, 13.339, -29.742));
  • }
  • }
  • rule("----------------------------------------------------===[ Busan ]===----------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(-15.605, 17.348, -136.857));
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Teleport(Event Player, Vector(36.698, 7.375, -97.828));
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(7.572, 9.072, -81.552));
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Junkrat));
  • Teleport(Event Player, Vector(9.615, 28.600, -96.453));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Ana));
  • Teleport(Event Player, Vector(31.142, 20, -120.899));
  • Skip If(Event Player.Playerlevel[0] != 0, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(-15.605, 17.348, -136.857));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(7.318, 44.990, -185.474));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Wrecking Ball));
  • Teleport(Event Player, Vector(114.159, 41.908, -188.284));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(178.829, 20.619, 220.148));
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(26.853, 9.549, -84.039), 0.600, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(26.852, 9.547, -84.039), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(3.275, 17.348, -95.832), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(3.152, 17.198, -95.854), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-22.400, 35.670, -95.510), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(-22.400, 35.670, -95.510), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-47.196, 23.400, -127.941), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(-47.196, 23.400, -127.941), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(35.100, 11.348, -132.936), 0.400, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(35.100, 11.348, -132.936), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(1.550, 17.348, -176.169), 0.600, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(1.550, 17.348, -176.169), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(92.806, 17.110, -165.104), 0.400, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(92.806, 17.110, -165.104), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(195.313, 12.474, 269.956), 0.800, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(195.313, 12, 269.956), 1,
  • Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(195.313, 12, 269.956), 1,
  • Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • }
  • }
  • rule("Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(11.330, -55, -97.824)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(27.878, -45, -126.915)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(1.995, -45, -180.095)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(91.446, -45, -165.440)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(141.277, -45, -190.043)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(-48.421, -45, -169.660)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(-40.235, -45, -126.299)) > 55, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(42.500, 7.549, -97.404)) > 5, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(0.300, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Bubble impulse")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(42, 7.549, -97.404)) > 5.600, 2);
  • Start Accelerating(Event Player, Direction Towards(Vector(42, 7.549, -97.404), Event Player), 300, 100, To World, None);
  • Wait(0.016, Ignore Condition);
  • Skip If(Distance Between(Event Player, Vector(42, 7.549, -97.404)) <= 5, 1);
  • Stop Accelerating(Event Player);
  • Skip If(Distance Between(Event Player, Vector(43, 12, -97.404)) > 5.100, 2);
  • Start Accelerating(Event Player, Direction Towards(Vector(43, 12, -97.404), Event Player), 300, 100, To World, None);
  • Wait(0.016, Ignore Condition);
  • Skip If(Distance Between(Event Player, Vector(43, 12, -97.404)) <= 5.500, 1);
  • Stop Accelerating(Event Player);
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Lvl1 = Reaper")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-47.196, 22.150, -127.941)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-47.196, 22.150, -127.941), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Ana));
  • Teleport(Event Player, Vector(31.142, 20.352, -120.899));
  • }
  • }
  • rule("Lvl2 = Ana")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(35.100, 10.098, -132.936)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(35.100, 10.098, -132.936), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(36.698, 7.375, -97.828));
  • }
  • }
  • rule("Lvl3 = Soldier")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(26.853, 8.299, -84.039)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(26.852, 8.299, -84.039), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(7.572, 9.072, -81.552));
  • }
  • }
  • rule("Lvl3 - Teleport 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(14.082, 14.785, -86.474)) < 0.300;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(14.678, 11, -97.733));
  • }
  • }
  • rule("Lvl3 - Teleport 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(9.594, 11.349, -97.493)) < 0.300;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(8.813, 12.749, -97.493));
  • }
  • }
  • rule("Lvl4 = Genji")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(3.275, 16.098, -95.832)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(3.275, 16.098, -95.832), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Junkrat));
  • Teleport(Event Player, Vector(9.615, 28.600, -96.453));
  • }
  • }
  • rule("Lvl4 - Teleport 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(12.641, 30.093, -96.148)) < 0.500;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(12.654, 31.433, -95.047));
  • }
  • }
  • rule("Lvl4 - Teleport 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(15.010, 24.900, -88.100)) < 1;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(10.210, 25.818, -88.073));
  • }
  • }
  • rule("Lvl4 - Teleport 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(16.320, 23.800, -86.040)) < 0.500;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(15.592, 25.481, -83.514));
  • }
  • }
  • rule("Lvl4 - Teleport 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(14.699, 24.952, -82.182)) < 0.400;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(12.990, 26.198, -82.552));
  • }
  • }
  • rule("Lvl5 = Junkrat")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(-22.400, 34.420, -95.510)) < 2;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-22.400, 34.420, -95.510)) > 2, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-22.400, 34.420, -95.510), 4);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 5;
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(7.318, 44.990, -185.474));
  • }
  • }
  • rule("Lvl6 = Hanzo")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(1.550, 16.098, -176.169)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(1.550, 16.098, -176.169), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Wrecking Ball));
  • Teleport(Event Player, Vector(114.159, 41.908, -188.284));
  • }
  • }
  • rule("Lvl7 = Wrecking Ball")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(92.806, 15.860, -165.104)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(92.806, 15.860, -165.104), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(178.829, 20.620, 220.148));
  • }
  • }
  • rule("Lvl8 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 7;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(195.313, 11.224, 269.956)) > 0.800, 12);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(195.313, 11.224, 269.956), 4);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(161.720, 16.446, 249.536));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(Busan);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(163.576, 11.449, 254.271));
  • }
  • }
  • rule("----------------------------------------------------===[ Oasis ]===----------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Baptiste));
  • Teleport(Event Player, Vector(-165.096, 23.101, -28.632));
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Baptiste));
  • Teleport(Event Player, Vector(-165.096, 23.101, -28.632));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(165.659, 62.542, 288.602));
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(59.444, 2.348, 327.050));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Teleport(Event Player, Vector(148.175, 3.349, 287.812));
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Ana));
  • Teleport(Event Player, Vector(197.066, 25.682, -185.987));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(130.243, 6.848, -234.036));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Lúcio));
  • Teleport(Event Player, Vector(76.061, 25.682, -306.829));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(222.789, 10.571, 191.276));
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-170.705, 17.351, 20.487), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(-170.705, 16.351, 20.487), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(235.528, 32.203, 192.779), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(235.528, 32.204, 192.779), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(68.430, 31.848, 321.471), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(68.430, 31.848, 321.471), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(125.805, 2.571, 316.856), 0.600, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(125.805, 1.521, 316.856), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(224.932, 16.767, -189.910), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(224.932, 16.767, -189.910), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(127.105, 3.848, -197.997), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(127.105, 3.848, -197.997), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(90.673, 10.272, -288.766), 0.700, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(90.673, 10.272, -288.766), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(185.068, 3.299, 253.885), 0.800, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(185.068, 3.299, 253.885),
  • 1, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(185.068, 3.299, 253.885),
  • 1, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Hold INTERACT to respawn"), Vector(-187.921, 18.500, -0.106), 1.700,
  • Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • }
  • }
  • rule("Bubble impulse")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(145.564, 2.500, 297.516)) > 5, 2);
  • Start Accelerating(Event Player, Direction Towards(Vector(145.564, 2.500, 297.516), Event Player), 1000, 6, To World, None);
  • Wait(0.016, Ignore Condition);
  • Skip If(Distance Between(Event Player, Vector(145.564, 2.500, 297.516)) <= 4.900, 1);
  • Stop Accelerating(Event Player);
  • Skip If(Distance Between(Event Player, Vector(240.170, 10.090, 191.250)) > 7.800, 2);
  • Start Accelerating(Event Player, Direction Towards(Vector(240.170, 10.090, 191.250), Event Player), 1000, 4, To World, None);
  • Wait(0.016, Ignore Condition);
  • Skip If(Distance Between(Event Player, Vector(240.170, 10.090, 191.250)) <= 7.700, 1);
  • Stop Accelerating(Event Player);
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(204.030, 23.958, 225.003)) > 5, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(221.766, 25, 200.751)) > 7.500, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(224.580, 25, 190.430)) > 9.500, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(172.395, 33, 276.980)) > 25, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(225.194, 10.521, 209.775)) > 2, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(221.813, -5, 211.964)) > 8, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(233.870, 3.740, 189.200)) > 5, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Lvl1 = Baptiste")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-170.705, 16.101, 20.487)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-170.705, 16.101, 20.487), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(165.659, 62.542, 288.602));
  • }
  • }
  • rule("Lvl2 = Hanzo")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(235.528, 30.954, 192.779)) > 1, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(235.528, 30.954, 192.779), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Set Ability 1 Enabled(Event Player, False);
  • Teleport(Event Player, Vector(59.444, 2.348, 327.050));
  • }
  • }
  • rule("Lvl3 = Genji")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(68.430, 30.598, 321.471)) > 0.500, 9);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(68.430, 30.598, 321.471), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Teleport(Event Player, Vector(148.175, 3.349, 287.812));
  • }
  • }
  • rule("Lvl3 - Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(158.447, 11.235, 302.011)) < 0.500;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(157.667, 12.330, 303.656));
  • }
  • }
  • rule("Lvl4 = Doomfist")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(125.805, 1.321, 316.856)) > 0.600, 9);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(125.805, 1.321, 316.856), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Ana));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Teleport(Event Player, Vector(197.066, 25.682, -185.987));
  • }
  • }
  • rule("Lvl5 = Ana")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(224.932, 15.517, -189.910)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(224.932, 15.517, -189.910), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 5;
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(130.243, 6.848, -234.036));
  • }
  • }
  • rule("Lvl6 = pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(127.105, 2.598, -197.997)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(127.105, 2.598, -197.997), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Lúcio));
  • Teleport(Event Player, Vector(76.061, 25.682, -306.829));
  • }
  • }
  • rule("Lvl7 = lucio")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(90.673, 9.022, -288.766)) > 0.700, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(90.673, 9.022, -288.766), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(222.789, 10.571, 191.276));
  • }
  • }
  • rule("Lvl8 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 7;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(185.068, 2.049, 253.885)) > 1, 12);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(185.068, 2.049, 253.885), 3);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(182.061, 16.767, -188.671));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(Oasis);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(179.800, 16.767, -186.339));
  • }
  • }
  • rule("-------------------------------------------------------===[ Havanna ]===-------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Reinhardt));
  • Teleport(Event Player, Vector(-35.648, 8.195, 63.607));
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Reinhardt));
  • Teleport(Event Player, Vector(-35.648, 8.195, 63.607));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Moira));
  • Teleport(Event Player, Vector(-35.648, 8.195, 63.607));
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(33.518, 11.048, -101.696));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(33.518, 11.048, -101.696));
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(73.659, 5.425, -65.261));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(161.024, 13.424, -74.496));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-66.755, 4.400, -66.835));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(-68.979, 11.101, -38.794));
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(40.409, 5.500, -44.144), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(40.409, 6.942, -44.144), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-75.039, 5.348, -39.683), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(-75.039, 5, -39.683), 0.800,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(19.146, 27.779, -79.244), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(19.146, 27.780, -79.244), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(39.084, 4, -90.743), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(39.084, 4.500, -90.743), 0.800,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(61.116, 23, -84.590), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(61.116, 24, -84.590), 0.600,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(202.949, 25, -50.679), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(202.949, 25, -50.679), 0.500,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-50.180, 17, -87.115), 0.400, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(-50.180, 17, -87.115), 0.600,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(-44.417, 3.500, -44.984), 0.700, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-44.417, 4, -44.984),
  • 0.700, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-44.417, 4, -44.984),
  • 0.700, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • }
  • }
  • rule("Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(41.659, 6, -97.091)) > 2.800, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Lvl1 = Reinhardt")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(40.409, 5.692, -44.144)) > 0.400, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(40.409, 5.692, -44.144), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Moira));
  • Teleport(Event Player, Vector(-35.648, 8.195, 63.607));
  • }
  • }
  • rule("Lvl2 = Moira")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-75.039, 4.098, -39.683)) > 0.400, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-75.039, 4.098, -39.683), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(33.518, 11.048, -101.696));
  • }
  • }
  • rule("Lvl3 = Mei")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(19.146, 26.529, -79.244)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(19.146, 26.529, -79.244), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(33.518, 11.048, -101.696));
  • }
  • }
  • rule("Lvl4 = Mei")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(39.084, 4.048, -90.743)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(39.084, 4.048, -90.743), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(73.659, 5.425, -65.261));
  • }
  • }
  • rule("Lvl5 = soldier")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(61.116, 23.866, -84.590)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(61.116, 23.866, -84.590), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 5;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(161.517, 13.414, -74.907));
  • }
  • }
  • rule("Lvl6 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(202.949, 26, -50.679)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(202.949, 25.500, -50.679), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-66.755, 4.400, -66.835));
  • }
  • }
  • rule("Lvl7 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-50.180, 16.799, -87.115)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-50.180, 16.799, -87.115), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(-68.979, 11.101, -38.794));
  • }
  • }
  • rule("Lvl8 = Hanzo")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 7;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-44.417, 3.500, -44.984)) > 0.700, 12);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(-44.417, 4, -44.984), 3);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(-81.657, 5.349, -91.259));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(Havana);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(-84.020, 5.351, -89.106));
  • }
  • }
  • rule("-------------------------------------------------------===[ Hollywood ]===------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(-58.258, 10.571, 85.074));
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Set Move Speed(Event Player, 0);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Reaper));
  • Teleport(Event Player, Vector(-58.258, 10.571, 85.074));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-36.763, 1.345, 24.012));
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(30.260, 9.694, -28.576));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-10.749, 3.097, 18.637));
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(-2.309, 3.098, 9.727));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Baptiste));
  • Teleport(Event Player, Vector(35.586, 32.799, 47.628));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Teleport(Event Player, Vector(-12.667, 3.275, -23.461));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(-23.385, 3.349, 98.078));
  • Set Move Speed(Event Player, 100);
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-34.298, -1, 77.378), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(-34.298, 1, 77), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-40.822, -1, 4.228), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(-40.822, 0.400, 4.228), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Light Shaft, Yellow, Vector(73.589, 8, -46.748), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(73.589, 9.800, -46.748), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-61.350, 10.573, 49.462), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(-61.350, 10.573, 49.462), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(8.660, 2, -14.690), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(8.660, 3, -14.690), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(17.487, 41.087, 38.256), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(17.487, 42.607, 38.256), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-41.390, 1, -138.421), 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(-41.390, 2.300, -138.421), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Light Shaft, Blue, Vector(86.877, -1, -14.007), 0.300, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(86.877, 9.678, -14.007),
  • 1, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(86.877, 9.678, -14.007),
  • 1, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • }
  • }
  • rule("Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-38.473, -41, 5.604)) > 40, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(-23, -2.660, 15.500)) > 7, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(-34.010, -6, 16.500)) > 7, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(9.456, -42, 1.470)) > 45, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(-21.760, 3.430, -32.120)) > 7, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Skip If(Distance Between(Event Player, Vector(3.386, 8, 12.066)) > 4, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Lvl1 = Reaper")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-34.298, 0.298, 77.378)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-34.298, 0.298, 77.378), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-36.763, 1.345, 24.012));
  • }
  • }
  • rule("Lvl2 = Pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-40.822, -0.151, 4.228)) > 0.300, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-40.822, -0.151, 4.228), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(30.260, 9.694, -28.576));
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Lvl3 = Genji")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(73.589, 9.007, -46.748)) > 0.500, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(73.589, 9.007, -46.748), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(-10.749, 3.097, 18.637));
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Lvl4 = Pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-61.350, 9.323, 49.462)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-61.350, 9.323, 49.462), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(-2.309, 3.098, 9.727));
  • }
  • }
  • rule("Lvl5 = Ashe")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(8.660, 1.848, -14.690)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(8.660, 1.848, -14.690), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Teleport(Event Player, Vector(35.586, 32.799, 47.628));
  • Start Forcing Player To Be Hero(Event Player, Hero(Baptiste));
  • Event Player.Playerlevel[0] = 5;
  • }
  • }
  • rule("Lvl6 = Baptiste - Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(15.797, 32.631, 30.786)) < 1;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(17.328, 32.854, 32.324));
  • }
  • }
  • rule("Lvl6 = Baptiste - Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Playerlevel[0] == 5;
  • Distance Between(Event Player, Vector(22.870, 105, 39.410)) > 80;
  • Global.Win == False;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(0, -10000, 0));
  • }
  • }
  • rule("Lvl6 = Baptiste")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(17.487, 41.357, 38.256)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(17.487, 41.357, 38.256), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Teleport(Event Player, Vector(-12.667, 3.276, -23.461));
  • }
  • }
  • rule("Lvl7 = Doomfist")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-41.390, 1.849, -138.421)) > 1, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-41.390, 1.849, -138.421), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(-23.385, 3.349, 98.078));
  • }
  • }
  • rule("Lvl8 = Soldier")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 7;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(86.850, 8.427, -14.105)) > 0.300, 12);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(86.850, 8.427, -14.105), 3);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(-12.038, 3.352, 94.060));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(Hollywood);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(-12.276, 3.298, 89.504));
  • }
  • }
  • rule("-------------------------------------------------------===[ Kings Row ]===------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(5.019, 0.244, -67.962));
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Set Move Speed(Event Player, 0);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Mei));
  • Teleport(Event Player, Vector(5.019, 0.245, -67.962));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Torbjörn));
  • Teleport(Event Player, Vector(-71.628, 9.353, -28.926));
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Brigitte));
  • Teleport(Event Player, Vector(-69.258, 5.796, -51.445));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Teleport(Event Player, Vector(-91.329, 10.512, -52.692));
  • Skip If(Event Player.Playerlevel[0] != 4, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(32.157, 48.550, -97.987));
  • Skip If(Event Player.Playerlevel[0] != 5, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(-40.650, 1.230, 20.750));
  • Skip If(Event Player.Playerlevel[0] != 6, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Widowmaker));
  • Teleport(Event Player, Vector(-57.051, 1.105, -17.585));
  • Skip If(Event Player.Playerlevel[0] != 7, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-100.908, 2.409, -26.088));
  • Set Move Speed(Event Player, 100);
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(14.366, 0.349, -60.500), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(14.366, 0.349, -60.500), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-80.365, 1.815, -42.402), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(-80.365, 1.815, -42.402), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-101.451, 1.425, -47.813), 0.200, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(-101.451, 1.425, -47.813), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-97.507, 10.512, -45.809), 0.600, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(-97.507, 10.512, -45.809), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(13.198, 1.511, 4.374), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 6), Vector(13.198, 1.510, 4.374), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-64.859, 1.546, -2.284), 0.500, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 7), Vector(-64.859, 1.546, -2.284), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(-84.792, 5.940, 24.136), 0.300, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 8), Vector(-84.792, 5.940, 24.136), 0.700,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(-188.982, -1.600, 30.673), 0.300, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-188.982, -0.100,
  • 30.673), 0.500, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(-188.982, -0.100,
  • 30.673), 0.500, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • }
  • }
  • rule("Lvl1 = Mei")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(14.366, -0.901, -60.500)) > 0.900, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(14.366, -0.901, -60.500), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Torbjörn));
  • Teleport(Event Player, Vector(-71.628, 9.353, -28.926));
  • }
  • }
  • rule("Lvl2 = Torbjörn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-80.365, 0.565, -42.402)) > 0.900, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-80.365, 0.565, -42.402), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Brigitte));
  • Teleport(Event Player, Vector(-69.258, 5.796, -51.445));
  • }
  • }
  • rule("Lvl3 = Brigitte")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-101.451, 0.175, -47.813)) > 0.200, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-101.451, 0.175, -47.813), 2);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Doomfist));
  • Teleport(Event Player, Vector(-91.329, 10.512, -52.692));
  • }
  • }
  • rule("Lvl4 = Doomfist")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-97.507, 9.262, -45.809)) > 0.900, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-97.507, 9.262, -45.809), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Ashe));
  • Teleport(Event Player, Vector(32.157, 48.550, -97.987));
  • }
  • }
  • rule("Lvl5 = Ashe")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 4;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(13.198, 0.261, 4.374)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(13.198, 0.261, 4.374), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 5;
  • Start Forcing Player To Be Hero(Event Player, Hero(Soldier: 76));
  • Teleport(Event Player, Vector(-40.650, 1.230, 20.750));
  • }
  • }
  • rule("Lvl6 = Soldier")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 5;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-64.858, 0.296, -2.284)) > 0.500, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-64.858, 0.296, -2.284), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 6;
  • Start Forcing Player To Be Hero(Event Player, Hero(Widowmaker));
  • Teleport(Event Player, Vector(-57.051, 1.105, -17.585));
  • }
  • }
  • rule("Lvl7 = Widowmaker")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 6;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-84.792, 4.690, 24.136)) > 0.300, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(-84.792, 4.690, 24.136), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 7;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(-100.908, 2.409, -26.088));
  • }
  • }
  • rule("Lvl8 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 7;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(-188.982, -0.769, 30.673)) > 1, 11);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(-188.982, -0.769, 30.673), 3);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(3, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(-77.249, 1.849, -36.045));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • Global.Currentmap == Map(King's Row);
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(-74.130, 1.848, -40.265));
  • }
  • }
  • rule("-------------------------------------------------------===[ Hanamura ]===------------------------------------------------------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(30.256, -0.369, -33.580));
  • Set Status(Event Player, Null, Hacked, 9999);
  • }
  • }
  • rule("Respawn Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == False;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Set Match Time(10000);
  • Respawn(Event Player);
  • Set Move Speed(Event Player, 0);
  • Wait(0.016, Ignore Condition);
  • Skip If(Event Player.Playerlevel[0] != 0, 3);
  • Set Status(Event Player, Null, Hacked, 9999);
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Teleport(Event Player, Vector(30.256, -0.369, -33.580));
  • Skip If(Event Player.Playerlevel[0] != 1, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Zenyatta));
  • Teleport(Event Player, Vector(111.206, 6.621, -9.065));
  • Skip If(Event Player.Playerlevel[0] != 2, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(43.249, 1.336, 43.059));
  • Skip If(Event Player.Playerlevel[0] != 3, 2);
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(32.294, 3.049, 41.559));
  • Skip If(Event Player.Playerlevel[0] != 4, 3);
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(84.608, 14.548, 13.503));
  • Set Ultimate Charge(Event Player, 100);
  • Set Move Speed(Event Player, 100);
  • }
  • }
  • rule("Kill bubble")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Playerlevel[0] == 3;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(31.730, -2.930, 34.920)) > 6.700, 1);
  • Teleport(Event Player, Vector(0, -10000, 0));
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Setup (Circles / text / barrier bubble)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Create In-World Text(All Players(All Teams), Custom String("Remember the right way"), Vector(118.610, 6.810, -0.590), 2,
  • Clip Against Surfaces, Visible To Position and String, Turquoise, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Hold INTERACT to respawn"), Vector(93.210, 0.740, -6.275), 1.700,
  • Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(29.671, 0.199, -17.356), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 2), Vector(29.671, 1.449, -17.356), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(112.280, 5.611, 7.237), 0.600, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 3), Vector(112.280, 6.661, 7.237), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(35.139, -5.499, 74.228), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 4), Vector(35.139, -4.249, 74.228), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Yellow, Vector(31.622, 0.164, 18.578), 0.800, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), 5), Vector(31.622, 1.414, 18.578), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Ring, Blue, Vector(72.886, -1.837, -8.435), 0.800, Visible To Position and Radius);
  • Skip If(Global.WinMaprotation != True, 2);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(72.886, -0.787, -8.435),
  • 1, Clip Against Surfaces, Visible To Position and String, Red, Default Visibility);
  • Abort;
  • Create In-World Text(All Players(All Teams), String("{0} {1}", String("Level"), String("Finish")), Vector(72.886, -0.787, -8.435),
  • 1, Clip Against Surfaces, Visible To Position and String, Blue, Default Visibility);
  • }
  • }
  • rule("Lvl1 = Pharah")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 0;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(29.671, 0.199, -17.356)) > 0.900, 8);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(29.671, 0.199, -17.356), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 1;
  • Start Forcing Player To Be Hero(Event Player, Hero(Zenyatta));
  • Teleport(Event Player, Vector(111.206, 6.621, -9.065));
  • Clear Status(Event Player, Hacked);
  • }
  • }
  • rule("Lvl2 = Zenyatta")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 1;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(112.429, 5.611, 7.033)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(112.280, 5.611, 7.237), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 2;
  • Start Forcing Player To Be Hero(Event Player, Hero(Hanzo));
  • Teleport(Event Player, Vector(43.249, 1.336, 43.059));
  • }
  • }
  • rule("Lvl3 = Hanzo")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 2;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(35.139, -5.499, 74.228)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(35.139, -5.499, 74.228), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 3;
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • Teleport(Event Player, Vector(32.294, 3.049, 41.559));
  • }
  • }
  • rule("Lvl4 = Genji")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] == 3;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(31.622, 0.164, 18.578)) > 0.800, 7);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Vector(31.622, 0.164, 18.578), 3);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Unlocked")));
  • Wait(2, Ignore Condition);
  • Event Player.Playerlevel[0] = 4;
  • Start Forcing Player To Be Hero(Event Player, Hero(Sombra));
  • Teleport(Event Player, Vector(84.608, 14.548, 13.503));
  • Set Ultimate Charge(Event Player, 100);
  • }
  • }
  • rule("Lvl5 = Sombra")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.Playerlevel[0] >= 4;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Skip If(Distance Between(Event Player, Vector(72.914, -1.888, -8.426)) > 0.800, 11);
  • Chase Player Variable At Rate(Event Player, Timer, 60, 0, Destination and Rate);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Vector(-188.982, -0.769, 30.673), 3);
  • Small Message(Event Player, String("{0} {1}", String("Level"), String("Finished")));
  • Wait(3, Ignore Condition);
  • Event Player.Playerlevel[0] = 8;
  • Start Forcing Player To Be Hero(Event Player, Hero(Symmetra));
  • Wait(0.100, Ignore Condition);
  • Teleport(Event Player, Vector(49.239, 0.353, 0.024));
  • Event Player.Won = True;
  • Global.Win = True;
  • }
  • }
  • rule("Map restart")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Win == True;
  • (Global.Currentmap == Map(Hanamura) || Global.Currentmap == Map(Hanamura Winter)) == True;
  • }
  • actions
  • {
  • Event Player.PreWinPos = Position Of(Event Player);
  • Skip If(Event Player.Won == True, 1);
  • Teleport(Event Player, Vector(53.993, 0.048, -0.113));
  • }
  • }
Join the Workshop.codes Discord