Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Hero Swap v1.0 by Caaethil#2559 - Concept by /u/Thermogenic - Code: 1DNMN6 - You control the hero of a player on the enemy team, and they control yours! You can change your linked enemy's hero once per death while in your spawn room via the regular hero select screen."
  • Description: "Hero Swap v1.1 by Caaethil#2559 - Concept by /u/Thermogenic - Code: 1DNMN6 - You control the hero of a player on the enemy team, and they control yours! You can change your linked enemy's hero once per death while in your spawn room via the regular hero select screen."
  • }
  • modes
  • {
  • Assault
  • {
  • enabled maps
  • {
  • }
  • }
  • Control
  • {
  • enabled maps
  • {
  • Busan
  • }
  • }
  • Escort
  • {
  • enabled maps
  • {
  • }
  • }
  • Hybrid
  • {
  • enabled maps
  • {
  • }
  • }
  • General
  • {
  • Hero Limit: Off
  • }
  • }
  • }
  • variables
  • {
  • player:
  • 0: linked_player
  • 1: forced_hero
  • 2: selected_hero
  • 3: can_select
  • 4: ultimate_charge
  • 5: update_ultimate_charge
  • }
  • rule("Initialise Player (On Join)")
  • {
  • event
  • {
  • Player Joined Match;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.linked_player = Players In Slot(Slot Of(Event Player), Opposite Team Of(Team Of(Event Player)));
  • Event Player.linked_player.linked_player = Event Player;
  • Event Player.can_select = True;
  • Event Player.update_ultimate_charge = True;
  • Create HUD Text(Event Player.linked_player == 0 ? Event Player : Null, Null, Null, Custom String(
  • "You do not yet have a linked enemy."), Right, 0, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Event Player.linked_player == 0 ? Event Player : Null, Null, Null, Custom String(
  • "You will be linked when the enemy team has enough players!"), Right, 1, Color(White), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player.linked_player != 0 && !Is Game In Progress ? Event Player : Null, Null, Custom String(
  • "Your Linked Enemy:"), Event Player.linked_player, Right, 0, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Event Player.linked_player != 0 && Is Game In Progress ? Event Player : Null, Hero Icon String(Hero Of(
  • Event Player.linked_player)), Custom String("Your Linked Enemy:"), Event Player.linked_player, Right, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(!Is Game In Progress ? Event Player : Null, Null, Null, Custom String(
  • "When the round begins, you and your linked enemy will swap heroes."), Left, 0, Color(White), Color(White), Color(Yellow),
  • Visible To and String, Default Visibility);
  • Create HUD Text(!Is Game In Progress ? Event Player : Null, Null, Null, Custom String(
  • "You can change their hero again when you die..."), Left, 1, Color(White), Color(White), Color(Yellow), Visible To and String,
  • Default Visibility);
  • Create HUD Text(!Is Game In Progress ? Event Player : Null, Null, Null, Custom String(
  • "...And they can change yours again when they die!"), Left, 2, Color(White), Color(White), Color(Yellow),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Is Game In Progress && Event Player.can_select && Is In Spawn Room(Event Player) ? Event Player : Null, Null, Null,
  • Custom String("Select a new hero to change your linked enemy's hero."), Left, 0, Color(White), Color(White), Color(Green),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Is Game In Progress && Event Player.can_select && Is In Spawn Room(Event Player) && Hero Of(
  • Event Player.linked_player) != Hero Of(Event Player) ? Event Player : Null, Null, Null, Custom String(
  • "Hold {0} and {1} at the same time to select your current hero as your linked enemy's hero.", Input Binding String(Button(
  • Crouch)), Input Binding String(Button(Interact))), Left, 1, Color(White), Color(White), Color(Green), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Is Game In Progress && !Event Player.can_select && Is In Spawn Room(Event Player) ? Event Player : Null, Null,
  • Null, Custom String("You cannot change your linked enemy's hero again until your next death."), Left, 0, Color(White), Color(
  • White), Color(Red), Visible To and String, Default Visibility);
  • }
  • }
  • rule("Re-Initialise Player (On New Round)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == False;
  • Is Between Rounds == True;
  • }
  • actions
  • {
  • Event Player.forced_hero = Null;
  • Start Forcing Player To Be Hero(Event Player, Event Player.selected_hero);
  • Stop Forcing Player To Be Hero(Event Player);
  • }
  • }
  • rule("Initialise Player (On Join When Game Started)")
  • {
  • event
  • {
  • Player Joined Match;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.linked_player != 0;
  • }
  • actions
  • {
  • Event Player.selected_hero = Hero Of(Event Player);
  • Start Forcing Player To Be Hero(Event Player, Event Player.linked_player.selected_hero);
  • Event Player.forced_hero = Hero Of(Event Player.linked_player);
  • Stop Forcing Player To Be Hero(Event Player);
  • Start Forcing Player To Be Hero(Event Player.linked_player, Event Player.selected_hero);
  • Event Player.linked_player.forced_hero = Event Player.selected_hero;
  • If(Event Player.linked_player.can_select == True);
  • Stop Forcing Player To Be Hero(Event Player.linked_player);
  • }
  • }
  • rule("Re-Initialise Players (On Player Leave)")
  • {
  • event
  • {
  • Player Left Match;
  • All;
  • All;
  • }
  • actions
  • {
  • Players In Slot(0, Team 1).linked_player = Players In Slot(0, Team 2);
  • Players In Slot(0, Team 2).linked_player = Players In Slot(0, Team 1);
  • Players In Slot(1, Team 1).linked_player = Players In Slot(1, Team 2);
  • Players In Slot(1, Team 2).linked_player = Players In Slot(1, Team 1);
  • Players In Slot(2, Team 1).linked_player = Players In Slot(2, Team 2);
  • Players In Slot(2, Team 2).linked_player = Players In Slot(2, Team 1);
  • Players In Slot(3, Team 1).linked_player = Players In Slot(3, Team 2);
  • Players In Slot(3, Team 2).linked_player = Players In Slot(3, Team 1);
  • Players In Slot(4, Team 1).linked_player = Players In Slot(4, Team 2);
  • Players In Slot(4, Team 2).linked_player = Players In Slot(4, Team 1);
  • Players In Slot(5, Team 1).linked_player = Players In Slot(5, Team 2);
  • Players In Slot(5, Team 2).linked_player = Players In Slot(5, Team 1);
  • }
  • }
  • rule("Fix Heroes (On Player Leave)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.forced_hero != Event Player.linked_player.selected_hero;
  • }
  • actions
  • {
  • Event Player.update_ultimate_charge = False;
  • Start Forcing Player To Be Hero(Event Player, Event Player.linked_player.selected_hero);
  • If(Event Player.can_select == True);
  • Stop Forcing Player To Be Hero(Event Player);
  • End;
  • Event Player.forced_hero = Event Player.linked_player.selected_hero;
  • Wait(0.016, Ignore Condition);
  • Set Ultimate Charge(Event Player, Event Player.ultimate_charge);
  • Event Player.update_ultimate_charge = True;
  • }
  • }
  • rule("Set Selected Hero (Before Match Start)")
  • rule("Set Selected Hero (Before Round Start)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == False;
  • Hero Of(Event Player) != Event Player.selected_hero;
  • }
  • actions
  • {
  • Event Player.selected_hero = Hero Of(Event Player);
  • }
  • }
  • rule("Initial Swap (On Match Start)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Start Forcing Player To Be Hero(Event Player, Event Player.forced_hero);
  • Event Player.can_select = False;
  • }
  • }
  • rule("Select Enemy Hero")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Hero Of(Event Player) != Event Player.forced_hero;
  • }
  • actions
  • {
  • Event Player.linked_player.update_ultimate_charge = False;
  • Event Player.update_ultimate_charge = False;
  • Event Player.selected_hero = Hero Of(Event Player);
  • Event Player.linked_player.forced_hero = Hero Of(Event Player);
  • Start Forcing Player To Be Hero(Event Player.linked_player, Event Player.linked_player.forced_hero);
  • Wait(0.016, Ignore Condition);
  • Set Ultimate Charge(Event Player.linked_player, Event Player.linked_player.ultimate_charge);
  • If(Event Player.linked_player.can_select == True);
  • Stop Forcing Player To Be Hero(Event Player.linked_player);
  • End;
  • Start Forcing Player To Be Hero(Event Player, Event Player.forced_hero);
  • Wait(0.016, Ignore Condition);
  • Set Ultimate Charge(Event Player, Event Player.ultimate_charge);
  • Event Player.can_select = False;
  • Event Player.linked_player.update_ultimate_charge = True;
  • Event Player.update_ultimate_charge = True;
  • }
  • }
  • rule("Allow Choice on Death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.can_select = True;
  • Stop Forcing Player To Be Hero(Event Player);
  • }
  • }
  • rule("Update Ultimate Charge Variable")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.update_ultimate_charge == True;
  • Ultimate Charge Percent(Event Player) != Event Player.ultimate_charge;
  • }
  • actions
  • {
  • Event Player.ultimate_charge = Ultimate Charge Percent(Event Player);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Select Forced Hero As Enemy Hero")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.can_select == True;
  • Is In Spawn Room(Event Player) == True;
  • Hero Of(Event Player.linked_player) != Hero Of(Event Player);
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Event Player.linked_player.update_ultimate_charge = False;
  • Event Player.selected_hero = Hero Of(Event Player);
  • Event Player.linked_player.forced_hero = Hero Of(Event Player);
  • Start Forcing Player To Be Hero(Event Player.linked_player, Event Player.linked_player.forced_hero);
  • Wait(0.016, Ignore Condition);
  • Set Ultimate Charge(Event Player.linked_player, Event Player.linked_player.ultimate_charge);
  • If(Event Player.linked_player.can_select == True);
  • Stop Forcing Player To Be Hero(Event Player.linked_player);
  • End;
  • Event Player.can_select = False;
  • Event Player.linked_player.update_ultimate_charge = True;
  • }
  • }
Join the Workshop.codes Discord