Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 0: TS_SHOP
  • 1: SETTINGS
  • player:
  • 0: Direction
  • 1: Zoom
  • 4: scale
  • 5: setup
  • 6: spear_count
  • 7: spear_thrown
  • 8: buttonheld
  • 9: v_vel
  • 10: p_pos
  • 11: s_inispeed
  • 12: m_mass
  • 13: g_grav
  • 14: d_dt
  • 15: t_airtime
  • 16: e_gravforce
  • 17: f_force_on_proj
  • 18: l_array
  • 26: grappleStorage
  • 27: grapplePos
  • 28: grappleSettings
  • 29: grappleStorage2
  • 30: grapplePos2
  • 31: grappleSettings2
  • }
  • rule("General Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Is Assembling Heroes || Is Waiting For Players) == True;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Set Match Time(0);
  • Wait(2, Ignore Condition);
  • Set Match Time(25);
  • "Some vanity"
  • Create HUD Text(All Players(All Teams), Null, Custom String("{0} AOT: Wall Breach!\r\nBy WildByte", Ability Icon String(Hero(Mei),
  • Button(Ability 2))), Custom String("A20GA"), Left, 0, Color(White), Color(Yellow), Color(White), Visible To and String,
  • Default Visibility);
  • Set Objective Description(All Players(Team 2), Custom String("Capture the point and breach Wall Rose"), Visible To and String);
  • Set Objective Description(All Players(Team 1), Custom String("Stop the Titans and defend Wall Rose"), Visible To and String);
  • }
  • }
  • rule("One-time setup (scouts)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Event Player.setup == False;
  • }
  • actions
  • {
  • Event Player.setup = True;
  • Create In-World Text(Event Player, Custom String("{0} Thunder Spear x{1} - Press ({2}) to throw", Ability Icon String(Hero(Ashe),
  • Button(Ability 2)), Event Player.spear_count, Input Binding String(Button(Ultimate))), World Vector Of(Vector(0, 0, -0.250),
  • Event Player, Rotation And Translation), 2, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" \r\n\r\n\r\n\r\n"), Is Button Held(Event Player, Button(Interact))
  • ? Custom String("Movement:\r\n{0}", Custom String("({0}) Left Hook\n({1}) Right Hook\n({2}) Gas Boost", Input Binding String(
  • Button(Ability 1)), Input Binding String(Button(Secondary Fire)), Input Binding String(Button(Jump))), Input Binding String(
  • Button(Reload))) : Custom String("Press {0} to view controls", Input Binding String(Button(Interact))), Left, 1, Color(White),
  • Color(White), Color(White), Visible To and String, Default Visibility);
  • Create Effect(Filtered Array(All Players(All Teams), Is Alive(Event Player) && Is Button Held(Event Player, Button(Jump))
  • && Is In Air(Event Player)), Smoke Sound, Color(White), Event Player, 65, Visible To Position and Radius);
  • }
  • }
  • rule("Player Spawn/Respawn Actions (scouts)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.spear_thrown = False;
  • Start Scaling Player(Event Player, 0.750, True);
  • Set Move Speed(Event Player, 75);
  • Set Jump Vertical Speed(Event Player, 75);
  • Set Gravity(Event Player, 75);
  • If(Hero Of(Event Player) == Hero(Genji));
  • Wait(1, Ignore Condition);
  • Press Button(Event Player, Button(Ultimate));
  • }
  • }
  • rule("Grapple (built off one-rule grapple by NyaWalking)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.grappleStorage <= Null;
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • Event Player.buttonheld[False] == False;
  • (Hero Of(Event Player) != Hero(Mercy) || Weapon(Event Player) == 2) == True;
  • }
  • actions
  • {
  • "[0]: Grapple Start Position Offset\r\n[1]: Grapple Travel Speed\r\n[2]: Grapple Cooldown (Whole numbers only, sorry)\r\n[3]: Grapple Max Range (Meters)\r\n[4]: Grapple Time Before Returning (Set to 0 to disable)\r\n[5]: Grapple Strength"
  • Event Player.grappleSettings = Array(Vector(-0.200, -0.100, 0.150), 125, 0, 30, 0, 2.670);
  • Event Player.grappleStorage = Array(Null, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 500, All Players(All Teams), Event Player, True), Null, Total Time Elapsed);
  • Event Player.grapplePos = Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings[False], Event Player,
  • Rotation);
  • Chase Player Variable At Rate(Event Player, grapplePos, Event Player.grappleStorage[True], Event Player.grappleSettings[True],
  • Destination and Rate);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Is Button Held(Event Player, Button(Secondary Fire)) && Is Alive(
  • Event Player)), Grapple Beam, Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings[False], Event Player,
  • Rotation), Event Player.grapplePos, Color(White), Visible To Position and Radius);
  • Event Player.grappleStorage[2] = Last Created Entity;
  • Wait Until(Distance Between(Event Player.grapplePos, Event Player.grappleStorage[True]) <= 0.150 || !Is Button Held(Event Player,
  • Button(Secondary Fire)) || !Array Contains(All Players(All Teams), Event Player) || Distance Between(Eye Position(Event Player)
  • + World Vector Of(Event Player.grappleSettings[False], Event Player, Rotation), Event Player.grappleStorage[True])
  • > Event Player.grappleSettings[3], 99999);
  • If(Distance Between(Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings[False], Event Player, Rotation),
  • Event Player.grappleStorage[True]) > Event Player.grappleSettings[3]);
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable At Rate(Event Player, grapplePos, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings[False], Event Player, Rotation), Event Player.grappleSettings[True] + 5, Destination and Rate);
  • Wait Until(Distance Between(Event Player.grapplePos, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings[False], Event Player, Rotation)) <= 0.150, 99999);
  • Destroy Effect(Event Player.grappleStorage[2]);
  • Event Player.grappleStorage = Array(Null, Null, Null, Null);
  • Event Player.grapplePos = Null;
  • Abort;
  • Else;
  • While((Is Button Held(Event Player, Button(Secondary Fire)) || Is Dead(Event Player)) && Array Contains(All Players(All Teams),
  • Event Player));
  • Apply Impulse(Event Player, Direction Towards(Event Player, Event Player.grappleStorage[True]), Event Player.grappleSettings[5],
  • To World, Incorporate Contrary Motion);
  • If(Total Time Elapsed > Event Player.grappleStorage[3] + ((
  • Event Player.grappleSettings[4] <= Null ? 99999 : Event Player.grappleSettings[4]) - 0.250) || !Is In Line of Sight(
  • Eye Position(Event Player) + Event Player.grappleSettings[False], Event Player.grapplePos, Barriers Do Not Block LOS)
  • || Is Dead(Event Player));
  • If(!Is In Line of Sight(Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings[False], Event Player, Rotation),
  • Event Player.grapplePos, Barriers Do Not Block LOS));
  • Wait(0.375, Ignore Condition);
  • End;
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable At Rate(Event Player, grapplePos, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings[False], Event Player, Rotation), Event Player.grappleSettings[True] + 5, Destination and Rate);
  • Wait Until(Distance Between(Event Player.grapplePos, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings[False], Event Player, Rotation)) <= 0.150, 99999);
  • Destroy Effect(Event Player.grappleStorage[2]);
  • Event Player.grappleStorage = Array(Event Player.grappleSettings[2], Null, Null, Null);
  • Event Player.grapplePos = Null;
  • Skip(6);
  • End;
  • Wait(0.050, Ignore Condition);
  • End;
  • End;
  • Destroy Effect(Event Player.grappleStorage[2]);
  • Event Player.grappleStorage[False] = Event Player.grappleSettings[2];
  • While(Event Player.grappleStorage[False] > Null);
  • Wait(1, Ignore Condition);
  • Event Player.grappleStorage[False] -= 1;
  • End;
  • disabled Small Message(Event Player, Custom String("Grapple Ready"));
  • }
  • }
  • rule("Grapple2 (built off one-rule grapple by NyaWalking)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.grappleStorage2 <= Null;
  • Is Button Held(Event Player, Button(Ability 1)) == True;
  • Event Player.buttonheld[True] == False;
  • disabled Hero Of(Event Player) != Hero(Mercy);
  • }
  • actions
  • {
  • "[0]: Grapple Start Position Offset\r\n[1]: Grapple Travel Speed\r\n[2]: Grapple Cooldown (Whole numbers only, sorry)\r\n[3]: Grapple Max Range (Meters)\r\n[4]: Grapple Time Before Returning (Set to 0 to disable)\r\n[5]: Grapple Strength"
  • Event Player.grappleSettings2 = Array(Vector(0.200, -0.100, 0.150), 125, 0, 30, 0, 2.670);
  • Event Player.grappleStorage2 = Array(Null, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 500, All Players(All Teams), Event Player, True), Null, Total Time Elapsed);
  • Event Player.grapplePos2 = Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings2[False], Event Player,
  • Rotation);
  • Chase Player Variable At Rate(Event Player, grapplePos2, Event Player.grappleStorage2[True], Event Player.grappleSettings2[True],
  • Destination and Rate);
  • Create Beam Effect(Filtered Array(All Players(All Teams), Is Button Held(Event Player, Button(Ability 1)) && Is Alive(
  • Event Player)), Grapple Beam, Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings2[False], Event Player,
  • Rotation), Event Player.grapplePos2, Color(White), Visible To Position and Radius);
  • Event Player.grappleStorage2[2] = Last Created Entity;
  • Wait Until(Distance Between(Event Player.grapplePos2, Event Player.grappleStorage2[True]) <= 0.150 || !Is Button Held(Event Player,
  • Button(Ability 1)) || !Array Contains(All Players(All Teams), Event Player) || Distance Between(Eye Position(Event Player)
  • + World Vector Of(Event Player.grappleSettings2[False], Event Player, Rotation), Event Player.grappleStorage2[True])
  • > Event Player.grappleSettings2[3], 99999);
  • If(Distance Between(Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings2[False], Event Player, Rotation),
  • Event Player.grappleStorage2[True]) > Event Player.grappleSettings2[3]);
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable At Rate(Event Player, grapplePos2, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings2[False], Event Player, Rotation), Event Player.grappleSettings2[True] + 5, Destination and Rate);
  • Wait Until(Distance Between(Event Player.grapplePos2, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings2[False], Event Player, Rotation)) <= 0.150, 99999);
  • Destroy Effect(Event Player.grappleStorage2[2]);
  • Event Player.grappleStorage2 = Array(Null, Null, Null, Null);
  • Event Player.grapplePos2 = Null;
  • Abort;
  • Else;
  • While((Is Button Held(Event Player, Button(Ability 1)) || Is Dead(Event Player)) && Array Contains(All Players(All Teams),
  • Event Player));
  • Apply Impulse(Event Player, Direction Towards(Event Player, Event Player.grappleStorage2[True]), Event Player.grappleSettings2[5],
  • To World, Incorporate Contrary Motion);
  • If(Total Time Elapsed > Event Player.grappleStorage2[3] + ((
  • Event Player.grappleSettings2[4] <= Null ? 99999 : Event Player.grappleSettings2[4]) - 0.250) || !Is In Line of Sight(
  • Eye Position(Event Player) + Event Player.grappleSettings2[False], Event Player.grapplePos2, Barriers Do Not Block LOS)
  • || Is Dead(Event Player));
  • If(!Is In Line of Sight(Eye Position(Event Player) + World Vector Of(Event Player.grappleSettings2[False], Event Player, Rotation),
  • Event Player.grapplePos2, Barriers Do Not Block LOS));
  • Wait(0.375, Ignore Condition);
  • End;
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable At Rate(Event Player, grapplePos2, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings2[False], Event Player, Rotation), Event Player.grappleSettings2[True] + 5, Destination and Rate);
  • Wait Until(Distance Between(Event Player.grapplePos2, Eye Position(Event Player) + World Vector Of(
  • Event Player.grappleSettings2[False], Event Player, Rotation)) <= 0.150, 99999);
  • Destroy Effect(Event Player.grappleStorage2[2]);
  • Event Player.grappleStorage2 = Array(Event Player.grappleSettings2[2], Null, Null, Null);
  • Event Player.grapplePos2 = Null;
  • Skip(6);
  • End;
  • Wait(0.050, Ignore Condition);
  • End;
  • End;
  • Destroy Effect(Event Player.grappleStorage2[2]);
  • Event Player.grappleStorage2[False] = Event Player.grappleSettings2[2];
  • While(Event Player.grappleStorage2[False] > Null);
  • Wait(1, Ignore Condition);
  • Event Player.grappleStorage2[False] -= 1;
  • End;
  • disabled Small Message(Event Player, Custom String("Grapple Ready"));
  • }
  • }
  • rule("Gas")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Is In Air(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Throttle Of(Event Player) != Vector(Empty Array, Empty Array, Empty Array) ? Throttle Of(Event Player)
  • : Forward, 2.500, To Player, Incorporate Contrary Motion);
  • Apply Impulse(Event Player, Up, 0.200, To World, Incorporate Contrary Motion);
  • Wait(0.050, Ignore Condition);
  • Play Effect(All Players(All Teams), Good Explosion, Color(White), Event Player + Vector(0, -0.100, 0), 0.100);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Hook beam effect reset workaround")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • (Is Button Held(Event Player, Button(Secondary Fire)) || Is Button Held(Event Player, Button(Ability 1))) == True;
  • }
  • actions
  • {
  • If(Is Button Held(Event Player, Button(Secondary Fire)));
  • Event Player.buttonheld[False] = True;
  • Wait Until(!Is Button Held(Event Player, Button(Secondary Fire)), 99999);
  • Event Player.buttonheld[False] = False;
  • Else;
  • Event Player.buttonheld[True] = True;
  • Wait Until(!Is Button Held(Event Player, Button(Ability 1)), 99999);
  • Event Player.buttonheld[True] = False;
  • End;
  • }
  • }
  • rule("Nape")
  • {
  • event
  • {
  • Player Dealt Damage;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Eye Position(Victim)) < 3.500;
  • Distance Between(Event Player, Eye Position(Victim)) < 3.800;
  • disabled Event Ability == Button(Primary Fire);
  • }
  • actions
  • {
  • Damage(Victim, Null, Max Health(Victim) * 0.330);
  • Damage(Victim, Null, Max Health(Victim) * 0.600);
  • Wait(0.250, Ignore Condition);
  • }
  • }
  • rule("Thunder Spear - Init (Based on Brewbies' Projectile Demo - 9ABDY)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • (Ultimate Charge Percent(Event Player) < 99 || Hero Of(Event Player) == Hero(Genji)) == True;
  • Event Player.spear_thrown == False;
  • Is Alive(Event Player) == True;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Event Player.spear_count > 0;
  • }
  • actions
  • {
  • Event Player.spear_thrown = True;
  • Event Player.spear_count += -1;
  • Skip If(Entity Exists(Event Player.l_array) == False, 2);
  • Destroy Effect(Event Player.l_array[0]);
  • Destroy Effect(Event Player.l_array[1]);
  • Event Player.p_pos = Eye Position(Event Player);
  • Event Player.s_inispeed = 15 + Speed Of In Direction(Event Player, Facing Direction Of(Event Player));
  • Event Player.v_vel = Facing Direction Of(Event Player) * Event Player.s_inispeed;
  • Event Player.m_mass = 1;
  • Event Player.g_grav = 4.900;
  • Event Player.d_dt = 0.016;
  • Event Player.t_airtime = 0;
  • Create Effect(All Players(All Teams), Bad Aura, Color(Yellow), Event Player.p_pos, 0.100, Visible To Position and Radius);
  • Event Player.l_array[0] = Last Created Entity;
  • Create Effect(All Players(All Teams), Bad Aura, Color(Red), Event Player.p_pos, 0.250, Visible To Position and Radius);
  • Event Player.l_array[1] = Last Created Entity;
  • Event Player.e_gravforce = Vector(0, -1 * Event Player.g_grav * Event Player.m_mass, 0);
  • Event Player.f_force_on_proj = Event Player.e_gravforce;
  • }
  • }
  • rule("Thunder Spear - Movement & Effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player.p_pos, Ray Cast Hit Position(Event Player.p_pos,
  • Event Player.p_pos + Event Player.v_vel * Event Player.d_dt * 1000, All Players(Opposite Team Of(Team Of(Event Player))),
  • Event Player, True)) >= 0.250 + Event Player.s_inispeed / 100;
  • }
  • actions
  • {
  • Event Player.v_vel = Event Player.v_vel + Event Player.f_force_on_proj / Event Player.m_mass * Event Player.d_dt;
  • Event Player.p_pos = Event Player.p_pos + Event Player.v_vel * Event Player.d_dt;
  • Event Player.t_airtime = Event Player.t_airtime + Event Player.d_dt;
  • Play Effect(All Players(All Teams), Bad Explosion, Color(Orange), Event Player.p_pos, 0.100);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • Destroy Effect(Event Player.l_array[0]);
  • Destroy Effect(Event Player.l_array[1]);
  • Play Effect(All Players(All Teams), Good Explosion, Color(Red), Event Player.p_pos, 4);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Red), Event Player.p_pos, 6);
  • Damage(Players Within Radius(Event Player.p_pos, 5, Team 2, Surfaces And All Barriers), Event Player, 500);
  • Damage(Players Within Radius(Event Player.p_pos, 5, Global.SETTINGS[1] ? All Teams : Team 2, Surfaces And All Barriers),
  • Event Player, 85);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Event Player.p_pos, 75);
  • Set Status(Players Within Radius(Event Player.p_pos, 6, Team 2, Surfaces And All Barriers), Null, Burning, 5);
  • Start Damage Over Time(Players Within Radius(Event Player.p_pos, 6, Team 2, Surfaces And All Barriers), Event Player, 5, 15);
  • Skip If(Is Dead(Event Player), 1);
  • Set Status(Players Within Radius(Event Player.p_pos, 6, Global.SETTINGS[1] ? All Teams : Team 2, Surfaces And All Barriers), Null,
  • Burning, 5);
  • Start Damage Over Time(Players Within Radius(Event Player.p_pos, 6, Global.SETTINGS[1] ? All Teams : Team 2,
  • Surfaces And All Barriers), Event Player, 5, 15);
  • Event Player.spear_thrown = False;
  • }
  • }
  • rule("Titan Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Invincible, 5);
  • Start Scaling Player(Event Player, Event Player.scale, True);
  • Start Scaling Barriers(Event Player, 2, True);
  • Set Max Health(Event Player, Absolute Value(5000));
  • Set Max Health(Event Player, Absolute Value(3250));
  • Wait(1, Ignore Condition);
  • Set Player Health(Event Player, Max Health(Event Player));
  • Set Damage Dealt(Event Player, 150);
  • Set Healing Dealt(Event Player, Absolute Value(1500));
  • }
  • }
  • rule("Thunder Spear Shop")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.TS_SHOP = Vector(55.855, 21.603, -68.296);
  • If(Current Map == Map(Eichenwalde) || Current Map == Map(Eichenwalde Halloween));
  • Global.TS_SHOP = Vector(55.855, 21.603, -68.296);
  • Else If(Current Map == Map(Hollywood) || Current Map == Map(Hollywood Halloween));
  • Global.TS_SHOP = Vector(1.366, 11.500, -59.064);
  • Else If(Current Map == Map(King's Row) || Current Map == Map(King's Row Winter));
  • Global.TS_SHOP = Vector(-58.161, 5.500, -16.512);
  • End;
  • Create Effect(All Players(Team 1), Ring, Color(Orange), Global.TS_SHOP, 1.500, Visible To Position and Radius);
  • Create In-World Text(All Players(Team 1), Custom String("Get Thunder Spear - ({0})", Input Binding String(Button(Interact))),
  • Global.TS_SHOP, 1, Do Not Clip, Visible To Position and String, Color(Orange), Default Visibility);
  • }
  • }
  • rule("Get Thunder Spear")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Global.TS_SHOP) <= 1.500;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Event Player.spear_count < 5;
  • Event Player.spear_count < 2;
  • }
  • actions
  • {
  • Event Player.spear_count += 1;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Orange), Global.TS_SHOP + Vector(0, -0.500, 0), 3);
  • Skip If(Is Button Held(Event Player, Button(Crouch)), 1);
  • Wait(0.150, Ignore Condition);
  • Wait(0.050, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Titan - Crouch to get under small overhangs")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • }
  • actions
  • {
  • Chase Player Variable Over Time(Event Player, scale, 1.500, 0.500, Destination and Duration);
  • }
  • }
  • rule("Titan - Stop Crouching to grow")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Crouch)) == False;
  • }
  • actions
  • {
  • Chase Player Variable Over Time(Event Player, scale, 3, 0.500, Destination and Duration);
  • }
  • }
  • rule("One-time setup (titans)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Event Player.setup == False;
  • }
  • actions
  • {
  • Event Player.setup = True;
  • Create Effect(All Players(Team 1), Orb, Color(Red), Eye Position(Event Player), 1, Visible To Position and Radius);
  • Start Heal Over Time(Event Player, Null, 9999, 25);
  • }
  • }
  • rule("Payload Breached Wall Rose")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Payload Progress Percentage >= 10;
  • Payload Progress Percentage < 11;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("Wall Rose has been Breached!"));
  • Wait(2, Ignore Condition);
  • Set Objective Description(All Players(Team 2), Custom String("Escort the payload and breach Wall Sina"), Visible To and String);
  • Set Objective Description(All Players(Team 1), Custom String("Stop the Titans and defend Wall Sina"), Visible To and String);
  • }
  • }
  • rule("Payload Breached Wall Sina")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Payload Progress Percentage >= 66;
  • Payload Progress Percentage < 67;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("Wall Sina has been Breached!"));
  • Wait(2, Ignore Condition);
  • Set Objective Description(All Players(Team 2), Custom String("Escort the payload into the castle"), Visible To and String);
  • Set Objective Description(All Players(Team 1), Custom String("Stop the Titans! Defend the castle!"), Visible To and String);
  • }
  • }
  • rule("Anti-Crash - 1")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Server Load > 250;
  • }
  • actions
  • {
  • Set Slow Motion(50);
  • }
  • }
  • rule("Anti-Crash - 2")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Server Load < 150;
  • }
  • actions
  • {
  • Set Slow Motion(100);
  • }
  • }
  • disabled rule("----- Made by Mitsiee. More at https://workshop.codes/third-person -----")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Initialise")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • First Of(Global.SETTINGS) == True;
  • }
  • actions
  • {
  • Event Player.Direction = 0.650;
  • Event Player.Zoom = -2.250;
  • }
  • }
  • rule("Set Third Person")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • First Of(Global.SETTINGS) == True;
  • Is Alive(Event Player) == True;
  • ((Hero Of(Event Player) == Hero(Widowmaker) || Hero Of(Event Player) == Hero(Ashe)) && Is Button Held(Event Player, Button(
  • Secondary Fire))) != True;
  • }
  • actions
  • {
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + World Vector Of(Vector(
  • Event Player.Direction * Min(Event Player.Zoom / 2.500, -0.750), 0, 0), Event Player, Rotation) + Facing Direction Of(
  • Event Player) * Event Player.Zoom, All Players(All Teams), Event Player, False), Ray Cast Hit Position(Eye Position(
  • Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 200, All Players(All Teams), Event Player,
  • False), 35);
  • }
  • }
  • rule("Workshop Settings")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.SETTINGS = Array(Workshop Setting Toggle(Custom String("General Customization"), Custom String("Third Person Scouts"), True,
  • 0), Workshop Setting Toggle(Custom String("General Customization"), Custom String(
  • "Realistic Thunder Spears (friendly damage)"), False, 1));
  • }
  • }
Join the Workshop.codes Discord