Mercy Boxing Plus

D7VC0S

Mercy Boxing Plus is the traditional Mercy Boxing gamemode, plus some additional features!

Currently supports:

  • Scoreboard that shows the top eliminations, resurrects, deaths, highest killstreak, and the game MVP.
  • Killstreak system that gives a player different effects, and notifies when a player breaks someone's streak.
  • Revenge system that announces when a player takes revenge.
  • Team Autobalancing. When a team is 3 or more points ahead, the player with the most eliminations is handicapped. There are currently 4 handicap modes: Off, No Valkyrie, No GA When Valk, and No Rez.

Note: MVP is based on a formula that takes into account both elims and resurrects, as well as deaths. It's not just the player who kills the most!

CHANGING THE HANDICAP MODE:

  1. Open the Workshop Editor.
  2. Open up the first rule, "Manual Setup".
  3. Click on the "Set Global Variable(Handicap, 0)" rule in the action list.
  4. Change "Number" to a number from 0 to 3. Use the list below to decide which you want to use.

MODES:

Mode 0: Handicap Mode is OFF
Mode 1: The handicapped player cannot use Valkyrie.
Mode 2: The handicapped player cannot use Guardian Angel when in Valkyrie.
Mode 3: The handicapped player cannot use Resurrect.

Code Snippet

View variables

Rules

No Rules are declared.
variables { global: 0: ElimsName 1: ElimsNo 2: DeathsName 3: DeathsNo 4: ResurrectsName 5: RessurectsNo 6: KillstreakName 7: KillstreakNo 8: MVPNo 9: MVPName 10: Handicap 11: HandicappedPlayer player: 0: Elims 1: Deaths 2: Resurrects 3: Killstreak 4: MVPScore 5: TopKillstreak 6: LastKiller 7: IsHandicapped 10: currentEffect } rule("/!\\ MANUAL SETUP /!\\ Set \"Handicap\" variable to: // 0 = \"Off\" // 1 = \"No Valk\" // 2 = \"No GA When Valk\" // 3 = \"No Res\" //") { event { Ongoing - Global; } actions { Set Global Variable(Handicap, 0); } } rule("Initialization") { event { Ongoing - Each Player; All; All; } actions { Set Player Variable(Event Player, Elims, 0); Set Player Variable(Event Player, Deaths, 0); Set Player Variable(Event Player, Resurrects, 0); Set Player Variable(Event Player, Killstreak, 0); Set Player Variable(Event Player, TopKillstreak, 0); Set Player Variable(Event Player, MVPScore, 0); } } rule("Config Scoreboard HUD") { event { Ongoing - Global; } actions { Create HUD Text(All Players(All Teams), Null, Null, Custom String("Mercy Boxing Plus - v1.1 by Parachor", Null, Null, Null), Right, 0, White, White, Aqua, Visible To and String, Visible Always); Create HUD Text(All Players(All Teams), Icon String(Skull), Custom String("Most Elims:", Null, Null, Null), String("{0} - {1}", Global Variable(ElimsName), Global Variable(ElimsNo), Null), Left, 1, Red, Red, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String("", Null, Null, Null), String("", Null, Null, Null), Null), Null, Left, 1.500, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Icon String(Halo), Custom String("Most Resurrects:", Null, Null, Null), String("{0} - {1}", Global Variable(ResurrectsName), Global Variable(RessurectsNo), Null), Left, 2, Yellow, Yellow, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String("", Null, Null, Null), String("", Null, Null, Null), Null), Null, Left, 2.500, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Icon String(Trashcan), Custom String("Most Deaths:", Null, Null, Null), String("{0} - {1}", Global Variable(DeathsName), Global Variable(DeathsNo), Null), Left, 3, Purple, Purple, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String("", Null, Null, Null), String("", Null, Null, Null), Null), Null, Left, 3.500, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Icon String(Fire), Custom String("Highest Killstreak:", Null, Null, Null), String( "{0} - {1}", Global Variable(KillstreakName), Global Variable(KillstreakNo), Null), Left, 4, Orange, Orange, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String("", Null, Null, Null), String("", Null, Null, Null), Null), Null, Left, 4.500, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Icon String(Bolt), Custom String("MVP:", Null, Null, Null), Global Variable(MVPName), Left, 5, Turquoise, Turquoise, White, Visible To and String, Default Visibility); disabled Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String("", Null, Null, Null), String("", Null, Null, Null), Null), Null, Left, 0, White, White, White, Visible To and String, Default Visibility); } } rule("Handicap HUD Text") { event { Ongoing - Global; } actions { Create HUD Text(All Players(All Teams), Null, Custom String("Handicap Mode:", Null, Null, Null), Custom String("OFF", Null, Null, Null), Right, 0.500, White, White, Sky Blue, Visible To and String, Visible Always); Abort If(Compare(Global Variable(Handicap), ==, 0)); Destroy HUD Text(Last Text ID); Create HUD Text(All Players(All Teams), Null, Custom String("Handicapped Player:", Null, Null, Null), Global Variable( HandicappedPlayer), Right, 0.600, White, White, Red, Visible To and String, Visible Always); Create HUD Text(All Players(All Teams), Null, Custom String("Handicap Mode:", Null, Null, Null), Custom String("NO VALKYRIE", Null, Null, Null), Right, 0.500, White, White, Sky Blue, Visible To and String, Visible Always); Abort If(Compare(Global Variable(Handicap), ==, 1)); Destroy HUD Text(Last Text ID); Create HUD Text(All Players(All Teams), Null, Custom String("Handicap Mode:", Null, Null, Null), Custom String( "NO GA WHEN VALKYRIE", Null, Null, Null), Right, 0.500, White, White, Sky Blue, Visible To and String, Visible Always); Abort If(Compare(Global Variable(Handicap), ==, 2)); Destroy HUD Text(Last Text ID); Create HUD Text(All Players(All Teams), Null, Custom String("Handicap Mode:", Null, Null, Null), Custom String("NO RESURRECT", Null, Null, Null), Right, 0.500, White, White, Sky Blue, Visible To and String, Visible Always); } } rule("Elims Counter") { event { Player Earned Elimination; All; All; } actions { Modify Player Variable(Attacker, Elims, Add, 1); Modify Player Variable(Attacker, Killstreak, Add, 1); } } rule("Resurrects Counter") { event { Ongoing - Each Player; All; All; } conditions { And(Is Alive(Event Player), Is Using Ability 2(Event Player)) == True; } actions { Wait(1.700, Abort When False); Modify Player Variable(Event Player, Resurrects, Add, 1); } } rule("Deaths Counter") { event { Player Died; All; All; } actions { Modify Player Variable(Victim, Deaths, Add, 1); Set Player Variable(Event Player, LastKiller, Attacker); } } rule("Killstreak Counter") { event { Player Earned Elimination; All; All; } conditions { Player Variable(Event Player, Killstreak) > Player Variable(Event Player, TopKillstreak); } actions { Set Player Variable(Event Player, TopKillstreak, Player Variable(Event Player, Killstreak)); } } rule("Display Elims") { event { Ongoing - Global; } actions { Set Global Variable(ElimsName, Last Of(Sorted Array(All Players(All Teams), Player Variable(Current Array Element, Elims)))); Set Global Variable(ElimsNo, Player Variable(Global Variable(ElimsName), Elims)); Wait(1, Ignore Condition); Loop; } } rule("Display Resurrects") { event { Ongoing - Global; } actions { Set Global Variable(ResurrectsName, Last Of(Sorted Array(All Players(All Teams), Player Variable(Current Array Element, Resurrects)))); Set Global Variable(RessurectsNo, Player Variable(Global Variable(ResurrectsName), Resurrects)); Wait(1, Ignore Condition); Loop; } } rule("Display Deaths") { event { Ongoing - Global; } actions { Set Global Variable(DeathsName, Last Of(Sorted Array(All Players(All Teams), Player Variable(Current Array Element, Deaths)))); Set Global Variable(DeathsNo, Player Variable(Global Variable(DeathsName), Deaths)); Wait(1, Ignore Condition); Loop; } } rule("Display Killstreak") { event { Ongoing - Global; } actions { Set Global Variable(KillstreakName, Last Of(Sorted Array(All Players(All Teams), Player Variable(Current Array Element, TopKillstreak)))); Set Global Variable(KillstreakNo, Player Variable(Global Variable(KillstreakName), TopKillstreak)); Wait(1, Ignore Condition); Loop; } } rule("Display MVP") { event { Ongoing - Global; } actions { Set Global Variable(MVPName, Last Of(Sorted Array(All Players(All Teams), Player Variable(Current Array Element, MVPScore)))); Set Global Variable(MVPNo, Player Variable(Global Variable(MVPName), MVPScore)); Wait(1, Ignore Condition); Loop; } } rule("MVP Calculation") { event { Ongoing - Each Player; All; All; } actions { Set Player Variable(Event Player, MVPScore, Subtract(Add(Min(Player Variable(Event Player, Elims), Player Variable(Event Player, Resurrects)), Divide(Max(Player Variable(Event Player, Elims), Player Variable(Event Player, Resurrects)), 2)), Divide( Player Variable(Event Player, Deaths), 2))); Wait(1, Ignore Condition); Loop; } } rule("Reset Killstreak >= 5") { event { Player Died; All; All; } conditions { Player Variable(Victim, Killstreak) > 4; } actions { Set Player Variable(Victim, Killstreak, 0); Destroy Effect(Player Variable(Victim, currentEffect)); Small Message(All Players(All Teams), String("{0} {1} {2}", Victim, Custom String("'s killstreak was shut down by ", Null, Null, Null), Attacker)); } } rule("Reset Killstreak < 5") { event { Player Died; All; All; } conditions { Player Variable(Victim, Killstreak) < 5; } actions { Set Player Variable(Victim, Killstreak, 0); Destroy Effect(Player Variable(Victim, currentEffect)); } } rule("Killstreak of 5") { event { Player Earned Elimination; All; All; } conditions { Player Variable(Attacker, Killstreak) == 5; } actions { Destroy Effect(Player Variable(Attacker, currentEffect)); Create Effect(All Players(All Teams), Sparkles, Yellow, Attacker, 0.100, Visible To Position and Radius); Set Player Variable(Attacker, currentEffect, Last Created Entity); Small Message(All Players(All Teams), String("{0} {1}", Attacker, Custom String(" is on a 5 killstreak!", Null, Null, Null), Null)); } } rule("Killstreak of 10") { event { Player Earned Elimination; All; All; } conditions { Player Variable(Attacker, Killstreak) == 10; } actions { Destroy Effect(Player Variable(Attacker, currentEffect)); Create Effect(All Players(All Teams), Sparkles, Orange, Attacker, 0.100, Visible To Position and Radius); Set Player Variable(Attacker, currentEffect, Last Created Entity); Small Message(All Players(All Teams), String("{0} {1}", Attacker, Custom String(" is on a 10 killstreak!", Null, Null, Null), Null)); } } rule("Killstreak of 15") { event { Player Earned Elimination; All; All; } conditions { Player Variable(Attacker, Killstreak) == 15; } actions { Destroy Effect(Player Variable(Attacker, currentEffect)); Create Effect(All Players(All Teams), Sparkles, Red, Attacker, 0.100, Visible To Position and Radius); Set Player Variable(Attacker, currentEffect, Last Created Entity); Small Message(All Players(All Teams), String("{0} {1}", Attacker, Custom String(" is on a 15 killstreak!", Null, Null, Null), Null)); } } rule("Killstreak of 20") { event { Player Earned Elimination; All; All; } conditions { Player Variable(Attacker, Killstreak) == 20; } actions { Destroy Effect(Player Variable(Attacker, currentEffect)); Create Effect(All Players(All Teams), Sparkles, Purple, Attacker, 0.100, Visible To Position and Radius); Set Player Variable(Attacker, currentEffect, Last Created Entity); Small Message(All Players(All Teams), String("{0} {1}", Attacker, Custom String(" is on a 20 killstreak!", Null, Null, Null), Null)); } } rule("Revenge Check") { event { Player Earned Elimination; All; All; } conditions { Victim == Player Variable(Event Player, LastKiller); } actions { Small Message(All Players(All Teams), String("{0} {1} {2}", Attacker, Custom String("got revenge on ", Null, Null, Null), Victim)); } } rule("Revenge Reset") { event { Ongoing - Each Player; All; All; } conditions { Is Between Rounds == True; } actions { Set Player Variable(Event Player, LastKiller, Null); } } disabled rule("! Teamkill Debug") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Interact) == True; } actions { Kill(Player Closest To Reticle(Event Player, All Teams), Players In Slot(2, All Teams)); } } disabled rule("! Teamkill Debug") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Crouch) == True; } actions { Kill(Player Closest To Reticle(Event Player, All Teams), Players In Slot(3, All Teams)); } } disabled rule("! Bot Debug") { event { Ongoing - Global; } actions { Create Dummy Bot(Hero(Mercy), Team 2, -1.000, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 2, 2, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 1, 2, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 2, 3, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 2, 4, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 2, 5, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 2, 6, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 1, 3, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 1, 4, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 1, 5, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); Create Dummy Bot(Hero(Mercy), Team 1, 6, Vector(-55.529, 267.948, 342.037), Vector(-55.529, 267.948, 342.037)); } } rule("Set Team 1 Handicap") { event { Ongoing - Global; } conditions { Is Between Rounds == True; Global Variable(Handicap) > 0; Subtract(Team Score(Team 1), Team Score(Team 2)) >= 3; } actions { Set Player Variable(All Players(All Teams), IsHandicapped, False); Set Global Variable(HandicappedPlayer, Empty Array); Set Global Variable(HandicappedPlayer, Last Of(Sorted Array(All Players(Team 1), Player Variable(Current Array Element, Elims)))); Set Player Variable(Global Variable(HandicappedPlayer), IsHandicapped, True); Wait(2, Ignore Condition); Small Message(All Players(All Teams), String("{0} {1}", Global Variable(HandicappedPlayer), Custom String( "has been handicapped to balance the teams.", Null, Null, Null), Null)); } } rule("Set Team 2 Handicap") { event { Ongoing - Global; } conditions { Is Between Rounds == True; Global Variable(Handicap) > 0; Subtract(Team Score(Team 1), Team Score(Team 2)) <= -3.000; } actions { Set Player Variable(All Players(All Teams), IsHandicapped, False); Set Global Variable(HandicappedPlayer, Empty Array); Set Global Variable(HandicappedPlayer, Last Of(Sorted Array(All Players(Team 2), Player Variable(Current Array Element, Elims)))); Set Player Variable(Global Variable(HandicappedPlayer), IsHandicapped, True); Wait(2, Ignore Condition); Small Message(All Players(All Teams), String("{0} {1}", Global Variable(HandicappedPlayer), Custom String( "has been handicapped to balance the teams.", Null, Null, Null), Null)); } } rule("Clear Handicap") { event { Ongoing - Global; } conditions { Is Between Rounds == True; Global Variable(Handicap) > 0; Absolute Value(Subtract(Team Score(Team 1), Team Score(Team 2))) < 3; } actions { Set Player Variable(All Players(All Teams), IsHandicapped, False); Set Global Variable(HandicappedPlayer, Empty Array); } } rule("HC1: Turn Valk Off") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, IsHandicapped) == True; Global Variable(Handicap) == 1; } actions { Set Ultimate Ability Enabled(Event Player, False); } } rule("HC1: Turn Valk On") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, IsHandicapped) == False; Global Variable(Handicap) == 1; } actions { Set Ultimate Ability Enabled(Event Player, True); } } rule("HC2: Turn GA Off With Valk") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, IsHandicapped) == True; Global Variable(Handicap) == 2; Is Using Ultimate(Event Player) == True; } actions { Set Ability 1 Enabled(Event Player, False); Wait(1, Restart When True); Loop If Condition Is True; Set Ability 1 Enabled(Event Player, True); } } rule("HC3: Turn Res Off") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, IsHandicapped) == True; Global Variable(Handicap) == 3; } actions { Set Ability 2 Enabled(Event Player, False); } } rule("HC3: Turn Res On") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, IsHandicapped) == False; Global Variable(Handicap) == 3; } actions { Set Ability 2 Enabled(Event Player, True); } }
View Fullscreen
Copy current Rule
Copy all Rules
Categories | Elimination
Heroes | Mercy
Created at |
Last updated |
Current version | 1.1.0

0 Comments

Log in or Sign up to place a comment.
Workshop.codes - Background image