Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Attack on Titan with Genji. Made by VoN#12146. Code: C15TD"
  • Description: "Attack on Titan with Genji. Dash to deal damage, every move consumes gas. Dash counsumes blade. Charged dash would deal more damage and stun Titan, but use more blade hp. Make good use of resourses and mobility to kill the Titan. Made by VoN#12146. Code: C15TD"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Match Voice Chat: Enabled
  • Max Spectators: 6
  • Max Team 1 Players: 5
  • Max Team 2 Players: 1
  • Swap Teams After Match: No
  • }
  • modes
  • {
  • Team Deathmatch
  • {
  • Self Initiated Respawn: Off
  • enabled maps
  • {
  • Eichenwalde Halloween
  • }
  • }
  • General
  • {
  • Allow Hero Switching: Off
  • Game Mode Start: Immediately
  • Hero Limit: Off
  • Kill Cam: Off
  • Kill Feed: Off
  • Respawn As Random Hero: On
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • Team 2
  • {
  • enabled heroes
  • {
  • Winston
  • }
  • }
  • General
  • {
  • Genji
  • {
  • Swift Strike Cooldown Time: 0%
  • Ultimate Generation - Combat Dragonblade: 130%
  • Ultimate Generation - Passive Dragonblade: 130%
  • Ultimate Generation - Combat Dragonblade: 400%
  • Ultimate Generation - Passive Dragonblade: 190%
  • Ultimate Generation Dragonblade: 300%
  • }
  • Mei
  • {
  • Cryo-Freeze Cooldown Time: 10%
  • }
  • Winston
  • {
  • Barrier Projector: Off
  • Damage Dealt: 101%
  • Damage Received: 20%
  • Infinite Ultimate Duration: On
  • Movement Speed: 60%
  • Primal Rage Melee Knockback Scalar: 40%
  • Primary Fire: Off
  • Spawn With Ultimate Ready: On
  • Ultimate Duration: 500%
  • Ultimate Generation - Combat Primal Rage: 500%
  • Ultimate Generation - Passive Primal Rage: 500%
  • Ultimate Generation Primal Rage: 500%
  • Ultimate Duration: 255%
  • Ultimate Generation - Combat Primal Rage: 253%
  • Ultimate Generation - Passive Primal Rage: 271%
  • Ultimate Generation Primal Rage: 250%
  • }
  • Wrecking Ball
  • {
  • Grappling Claw Cooldown Time: 0%
  • }
  • enabled heroes
  • {
  • Genji
  • }
  • }
  • }
  • workshop
  • {
  • Fall Damage: Off
  • Kill Need to win for titan: 10
  • Show fall speed: Off
  • Titan HP: 2000
  • Titan Scale: 3
  • }
  • }
  • variables
  • {
  • global:
  • 0: GenjiSpawnPosition
  • 2: GasStation
  • 3: BladeStation
  • 4: TitanSpawnPosition
  • 5: TitanKillCount
  • 7: DummyCreated
  • 13: DebugShowFallSpeed
  • 14: DebugShowInfo
  • 15: DebugAddDummy
  • 16: OptionPlayerCollision
  • 17: OptionEnvCollision
  • 18: OptionTitanHP
  • 19: OptionTitanKillToWin
  • 20: OptionTitanScale
  • 21: OptionFallDmg
  • 114: cfg_CamDistance
  • 115: cfg_CamRaycastsEyePos
  • 116: cfg_CamHasCrosshairCorrection
  • 117: cfg_CamOverridesGame
  • 118: cfg_CamOverridesEmotes
  • 119: cfg_CamOffset
  • 120: cfg_CamAimDistance
  • 121: cfg_CamBlendSpeed
  • 122: cfg_ScopesDisableCam
  • 123: cfg_StartWithCamActive
  • player:
  • 0: IsGrappling
  • 1: AlreadySet
  • 2: SavedSpeed
  • 3: DummyBot
  • 4: Gas
  • 5: Blade
  • 6: BladeDmg
  • 7: IsPoweringUp
  • 9: IsUsingUlt
  • 10: Kill
  • 26: color_gas_bar
  • 27: color_gas_text
  • 28: color_blade_bar
  • 29: color_blade_text
  • 30: color_power_bar
  • 31: color_power_text
  • 107: plyr_CamDistance
  • 108: plyr_CamRaycastsEyePos
  • 109: plyr_CamHasCrosshairCorrection
  • 110: plyr_CamOverridesGame
  • 111: plyr_CamOverridesEmotes
  • 112: plyr_CamOffset
  • 113: plyr_CamAimDistance
  • 114: plyr_CamActive
  • 115: plyr_CamBlendSpeed
  • 116: plyr_ScopesDisableCam
  • }
  • subroutines
  • {
  • 0: CreateDummy
  • 1: InitColor
  • 2: RefreshColor
  • 3: StationLocation
  • 4: ShowStations
  • 114: RefreshCam
  • }
  • rule("INIT - Is In Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Global.GenjiSpawnPosition = Vector(23, 11, -73);
  • Global.TitanSpawnPosition = Vector(10, 6, -68);
  • Call Subroutine(StationLocation);
  • Global.OptionPlayerCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Player Collision"), False, 0);
  • Global.OptionEnvCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Env Collision when using grapple"),
  • False, 1);
  • Global.OptionTitanHP = Workshop Setting Integer(Custom String("Options"), Custom String("Titan HP"), 500, 300, 3000, 2);
  • Global.OptionTitanScale = Workshop Setting Integer(Custom String("Options"), Custom String("Titan Scale"), 4, 2, 10, 3);
  • Global.OptionTitanKillToWin = Workshop Setting Integer(Custom String("Options"), Custom String("Kill Need to win for titan"), 20,
  • 10, 100, 4);
  • Global.OptionFallDmg = Workshop Setting Toggle(Custom String("Options"), Custom String("Fall Damage"), True, 5);
  • Global.DebugShowFallSpeed = Workshop Setting Toggle(Custom String("Debug"), Custom String("Show fall speed"), True, 2);
  • Global.DebugShowInfo = Workshop Setting Toggle(Custom String("Debug"), Custom String("Show debug info"), False, 3);
  • Global.DebugAddDummy = Workshop Setting Toggle(Custom String("Debug"), Custom String("Add dummy titan"), False, 4);
  • Global.OptionPlayerCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Player Collision"), False, 0);
  • Global.OptionEnvCollision = Workshop Setting Toggle(Custom String("Options"), Custom String("Env Collision when using grapple"),
  • False, 0);
  • Wait(5, Ignore Condition);
  • Communicate(Players On Hero(Hero(Genji), Team 1), Countdown);
  • }
  • }
  • rule("INIT - Game In Progress")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Pause Match Time;
  • disabled Set Match Time(0);
  • Disable Built-In Game Mode Announcer;
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Disable Built-In Game Mode Music;
  • }
  • }
  • rule("INIT - Team 1 Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.AlreadySet == False;
  • }
  • actions
  • {
  • disabled Disable Built-In Game Mode Respawning(Event Player);
  • Create HUD Text(Event Player, Custom String("{0} Health: {1}", Hero(Winston), Health(Players In Slot(0, Team 2))), Null, Null,
  • Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Custom String("Titan needs {0} More Kill to win",
  • Global.OptionTitanKillToWin - Global.TitanKillCount), Null, Null, Left, 1, Color(White), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" \r\nCreated by VoN#12146\r\nCode: C15TD"), Null, Right, 0, Color(White), Color(
  • Orange), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(
  • " \r\nrefill your gas tank and repair your blade\r\nby standing on the stations\r\n "), Null, Right, 1, Color(White), Color(
  • Aqua), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("{0} to use jetpack", Input Binding String(Button(Jump))), Null, Right, 2, Color(
  • White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("{0} to use 3D Manever Gear", Input Binding String(Button(Secondary Fire))),
  • Null, Right, 3, Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Hold {0} to increase attack power", Input Binding String(Button(Ability 2))),
  • Null, Right, 4, Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Hold {0} to charge up dash", Input Binding String(Button(Ability 2))), Null,
  • Right, 4, Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Falling deals damage", Input Binding String(Button(Ability 2))), Null, Right, 5,
  • Color(White), Color(Aqua), Color(White), String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Using Ult will heal you"), Null, Right, 6, Color(White), Color(Aqua), Color(
  • White), String, Default Visibility);
  • Set Respawn Max Time(Event Player, 0);
  • Call Subroutine(InitColor);
  • Create Progress Bar HUD Text(Event Player, Event Player.Gas, Custom String("Gas"), Top, 0, Event Player.color_gas_bar,
  • Event Player.color_gas_text, Visible To Values and Color, Default Visibility);
  • Create Progress Bar HUD Text(Event Player, Event Player.Blade, Custom String("Blade"), Top, 1, Event Player.color_blade_bar,
  • Event Player.color_blade_text, Visible To Values and Color, Default Visibility);
  • Create Progress Bar HUD Text(Event Player, Event Player.BladeDmg, Custom String("Power"), Top, 2, Event Player.color_power_bar,
  • Event Player.color_power_text, Visible To Values and Color, Default Visibility);
  • If(Global.OptionPlayerCollision != True);
  • Disable Movement Collision With Players(Event Player);
  • End;
  • Enable Death Spectate All Players(Event Player);
  • Enable Death Spectate Target HUD(Event Player);
  • Disable Game Mode HUD(Event Player);
  • "after system countdown"
  • Wait(3, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Ability 2));
  • Call Subroutine(CreateDummy);
  • Call Subroutine(ShowStations);
  • Event Player.AlreadySet = True;
  • }
  • }
  • rule("INIT - Team 2 Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.AlreadySet == False;
  • }
  • actions
  • {
  • disabled Disable Built-In Game Mode Respawning(Event Player);
  • Create HUD Text(Event Player, Custom String("Kills: {0}", Event Player.Kill), Null, Null, Left, 0, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Disable Built-In Game Mode Respawning(Event Player);
  • Create HUD Text(Event Player, Custom String("{0} More Kill to win", Global.OptionTitanKillToWin - Global.TitanKillCount), Null,
  • Null, Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" \r\nCreated by VoN#12146\r\nCode: C15TD"), Null, Right, 0, Color(White), Color(
  • Orange), Color(White), None, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Eat em' all!!!!"), Null, Right, 1, Color(White), Color(Aqua), Color(White),
  • None, Default Visibility);
  • Set Respawn Max Time(Event Player, 0);
  • If(Global.OptionPlayerCollision != True);
  • Disable Movement Collision With Players(Event Player);
  • End;
  • Enable Death Spectate All Players(Event Player);
  • Enable Death Spectate Target HUD(Event Player);
  • Disable Game Mode HUD(Event Player);
  • If(Slot Of(Event Player) == 0);
  • Start Forcing Player To Be Hero(Event Player, Hero(Winston));
  • End;
  • "after system countdown"
  • Wait(3, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Event Player.AlreadySet = True;
  • }
  • }
  • rule("INIT - [Sub] Init Color")
  • {
  • event
  • {
  • Subroutine;
  • InitColor;
  • }
  • actions
  • {
  • Event Player.color_gas_bar = Color(White);
  • Event Player.color_gas_text = Color(White);
  • Event Player.color_blade_bar = Color(White);
  • Event Player.color_blade_text = Color(White);
  • Event Player.color_power_bar = Color(White);
  • Event Player.color_power_text = Color(White);
  • }
  • }
  • rule("INIT - [Sub] Station Locations")
  • {
  • event
  • {
  • Subroutine;
  • StationLocation;
  • }
  • actions
  • {
  • "Gas"
  • Modify Global Variable(GasStation, Append To Array, Vector(12.900, 6, -83.500));
  • Modify Global Variable(GasStation, Append To Array, Vector(14, 11, -87.400));
  • Modify Global Variable(GasStation, Append To Array, Vector(9, 10, -40));
  • "Blade"
  • Modify Global Variable(BladeStation, Append To Array, Vector(1.300, 6, -49));
  • Modify Global Variable(BladeStation, Append To Array, Vector(4.800, 4.800, -93.600));
  • }
  • }
  • rule("INIT - [Sub] Create Dummy")
  • {
  • event
  • {
  • Subroutine;
  • CreateDummy;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Wrecking Ball), Team 1, -1, Position Of(Event Player), Vector(0, 0, 0));
  • Event Player.DummyBot = Last Created Entity;
  • Set Status(Event Player.DummyBot, Null, Phased Out, 9999);
  • Set Invisible(Event Player.DummyBot, All);
  • Start Scaling Player(Event Player.DummyBot, 1.100, True);
  • Disable Movement Collision With Players(Event Player.DummyBot);
  • Skip If(Global.OptionEnvCollision == True, 1);
  • Disable Movement Collision With Environment(Event Player.DummyBot, False);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • }
  • }
  • rule("INIT - [Sub] Show Stations")
  • {
  • event
  • {
  • Subroutine;
  • ShowStations;
  • }
  • actions
  • {
  • "Gas"
  • For Player Variable(Event Player, I, 1, Count Of(Global.GasStation), 1);
  • Create Effect(All Players(Team 1), Ring, Color(Red), Global.GasStation[Event Player.I], 0.500, None);
  • Create In-World Text(All Players(Team 1), Custom String("Refill Gas Here"), Global.GasStation[Event Player.I], 1,
  • Clip Against Surfaces, None, Color(Red), Default Visibility);
  • End;
  • "Blade"
  • For Player Variable(Event Player, I, 1, Count Of(Global.BladeStation), 1);
  • Create Effect(All Players(Team 1), Ring, Color(Green), Global.BladeStation[Event Player.I], 0.500, None);
  • Create In-World Text(All Players(Team 1), Custom String("Repair Blade Here"), Global.BladeStation[Event Player.I], 1,
  • Clip Against Surfaces, None, Color(Green), Default Visibility);
  • End;
  • }
  • }
  • rule("TEAM1 - Genji Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Global.GenjiSpawnPosition);
  • Play Effect(All Players(Team 1), Ring Explosion Sound, Color(White), Event Player, 30);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Set Gravity(Event Player, 120);
  • Start Scaling Player(Event Player, 0.700, True);
  • Event Player.Gas = 15;
  • Allow Button(Event Player, Button(Ability 1));
  • Event Player.Blade = 15;
  • Event Player.BladeDmg = 25;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - Genji In Gas Station")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • (Distance Between(Event Player, Global.GasStation[1]) <= 0.600 || Distance Between(Event Player, Global.GasStation[2])
  • <= 0.600 || Distance Between(Event Player, Global.GasStation[3]) <= 0.600) == True;
  • Event Player.Gas <= 100;
  • }
  • actions
  • {
  • Event Player.Gas += 30;
  • Call Subroutine(RefreshColor);
  • Skip If(Event Player.Gas <= 0, 1);
  • Allow Button(Event Player, Button(Ability 1));
  • Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 30);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji In Blade Station")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • (Distance Between(Event Player, Global.BladeStation[1]) <= 0.600 || Distance Between(Event Player, Global.BladeStation[2])
  • <= 0.600) == True;
  • Event Player.Blade <= 100;
  • }
  • actions
  • {
  • Event Player.Blade += 30;
  • Call Subroutine(RefreshColor);
  • Skip If(Event Player.Blade <= 0, 1);
  • Event Player.BladeDmg = 25;
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 30);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji Start Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • If(Event Player.Gas <= 0);
  • Small Message(Event Player, Custom String("{0} No Gas Left", Icon String(Exclamation Mark)));
  • Abort;
  • End;
  • If(Is In Alternate Form(Event Player.DummyBot) == False);
  • Press Button(Event Player.DummyBot, Button(Ability 1));
  • End;
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Detach Players(Event Player.DummyBot);
  • Start Forcing Throttle(Event Player.DummyBot, 1, 1, 0, 1, 0, 1);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player, Event Player.DummyBot, Vector(0, 0, 0));
  • Set Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player.DummyBot), Ray Cast Hit Position(Event Player,
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • To World);
  • Wait(0.016, Ignore Condition);
  • Start Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Event Player.IsGrappling = True;
  • Wait(0.200, Ignore Condition);
  • }
  • }
  • rule("TEAM1 - Genji Is Grappling")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.IsGrappling == True;
  • }
  • actions
  • {
  • Event Player.Gas -= 0.200;
  • Call Subroutine(RefreshColor);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji End Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == False;
  • }
  • actions
  • {
  • Stop Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Detach Players(Event Player);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • Stop Facing(Event Player.DummyBot);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Stop Forcing Throttle(Event Player.DummyBot);
  • Event Player.IsGrappling = False;
  • Wait(0.300, Ignore Condition);
  • }
  • }
  • rule("TEAM1 - Genji Out Of Gas")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.Gas < 0;
  • Event Player.Gas <= 0;
  • }
  • actions
  • {
  • If(Event Player.IsGrappling == True);
  • Stop Holding Button(Event Player.DummyBot, Button(Secondary Fire));
  • Detach Players(Event Player);
  • Wait(0.050, Ignore Condition);
  • Attach Players(Event Player.DummyBot, Event Player, Vector(0, 0, 0));
  • Stop Facing(Event Player.DummyBot);
  • Start Facing(Event Player.DummyBot, Direction Towards(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 100, All Players(All Teams), All Players(Team 1), False)),
  • 50000, To World, Direction and Turn Rate);
  • Stop Forcing Throttle(Event Player.DummyBot);
  • Event Player.IsGrappling = False;
  • Wait(0.300, Ignore Condition);
  • End;
  • If(Event Player.IsPoweringUp == True);
  • Stop Forcing Throttle(Event Player);
  • Set Gravity(Event Player, 120);
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ultimate));
  • Set Move Speed(Event Player, 100);
  • Wait(0.300, Ignore Condition);
  • Event Player.IsPoweringUp = False;
  • End;
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Secondary Fire));
  • }
  • }
  • rule("TEAM1 - Save Speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Event Player.SavedSpeed = Speed Of(Event Player);
  • Loop;
  • }
  • }
  • rule("TEAM1 - Fall Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is On Ground(Event Player) == True;
  • Global.OptionFallDmg == True;
  • }
  • actions
  • {
  • If(Global.DebugShowFallSpeed == True);
  • Small Message(Event Player, Custom String("{0}", Event Player.SavedSpeed));
  • End;
  • If(Event Player.SavedSpeed > 12);
  • Damage(Event Player, Null, (Event Player.SavedSpeed - 12) * 30);
  • Small Message(Event Player, Custom String("Took fall damage"));
  • Small Message(Event Player, Custom String("{0} You took fall damage", Icon String(Warning)));
  • End;
  • }
  • }
  • rule("TEAM1 - Jet Pack")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Has Status(Event Player, Hacked) == False;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Asleep) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • Event Player.IsPoweringUp != True;
  • }
  • actions
  • {
  • If(Event Player.Gas <= 0);
  • Small Message(Event Player, Custom String("{0} No Gas Left", Icon String(Exclamation Mark)));
  • Abort;
  • End;
  • Play Effect(All Players(All Teams), Good Explosion, Color(White), Position Of(Event Player), 0.100 / 10);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Position Of(Event Player), 10);
  • Apply Impulse(Event Player, Up, 0.500, To World, Incorporate Contrary Motion);
  • Event Player.Gas -= 0.050;
  • Call Subroutine(RefreshColor);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji Start Attacking")
  • rule("TEAM1 - Genji Start Dashing")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • Event Player.Gas -= 1;
  • If(Event Player.Blade <= 0);
  • Set Damage Dealt(Event Player, 10);
  • Else If(Event Player.BladeDmg < 50);
  • Event Player.Blade -= 5;
  • Set Damage Dealt(Event Player, 100);
  • Else If(Event Player.BladeDmg < 75);
  • Event Player.Blade -= 10;
  • Set Damage Dealt(Event Player, 200);
  • Else If(Event Player.BladeDmg < 100);
  • Event Player.Blade -= 15;
  • Set Damage Dealt(Event Player, 250);
  • Else;
  • Event Player.Blade -= 30;
  • Set Damage Dealt(Event Player, 400);
  • End;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - Genji End Attacking")
  • rule("TEAM1 - Genji End Dashing")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • If(Event Player.Blade <= 0);
  • Event Player.BladeDmg = 0;
  • Else If(Event Player.IsUsingUlt == True);
  • Event Player.BladeDmg = 50;
  • Else;
  • Event Player.BladeDmg = 25;
  • End;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - Try To Dash With No Gas")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Ability 1)) == True;
  • Event Player.Gas <= 0;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("{0} No Gas Left", Icon String(Exclamation Mark)));
  • }
  • }
  • rule("TEAM1 - Genji Melee")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Meleeing(Event Player) == True;
  • }
  • actions
  • {
  • If(Event Player.Blade > 0);
  • Event Player.BladeDmg = 25;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - Genji Start Power Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Ability 2)) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Stunned) == False;
  • Has Status(Event Player, Frozen) == False;
  • Has Status(Event Player, Rooted) == False;
  • Event Player.Gas > 0;
  • }
  • actions
  • {
  • Set Gravity(Event Player, 0);
  • Start Forcing Throttle(Event Player, 0, 0, 0, 0, 0, 0);
  • Set Move Speed(Event Player, 0);
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Jump));
  • Disallow Button(Event Player, Button(Ultimate));
  • Event Player.IsPoweringUp = True;
  • }
  • }
  • rule("TEAM1 - Genji Is Powering Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Event Player.IsPoweringUp == True;
  • }
  • actions
  • {
  • Event Player.BladeDmg += 1;
  • Event Player.Gas -= 0.020;
  • Play Effect(All Players(All Teams), Good Explosion, Color(White), Position Of(Event Player), 0.100 / 100);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Position Of(Event Player), 10);
  • Call Subroutine(RefreshColor);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("TEAM1 - Genji End Power Up")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Ability 2)) == False;
  • }
  • actions
  • {
  • Stop Forcing Throttle(Event Player);
  • Set Gravity(Event Player, 120);
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ultimate));
  • Set Move Speed(Event Player, 100);
  • Wait(0.300, Ignore Condition);
  • Event Player.IsPoweringUp = False;
  • }
  • }
  • rule("TEAM1 - Genji Using Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Heal(Event Player, Null, 200);
  • Small Message(Event Player, Custom String("{0} You got healed", Icon String(Plus)));
  • Event Player.BladeDmg = 50;
  • Call Subroutine(RefreshColor);
  • Event Player.IsUsingUlt = True;
  • }
  • }
  • rule("TEAM1 - Genji Ult Ended")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Genji;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.BladeDmg = 25;
  • Event Player.IsUsingUlt = False;
  • Call Subroutine(RefreshColor);
  • }
  • }
  • rule("TEAM1 - [Sub] Refresh All Color")
  • {
  • event
  • {
  • Subroutine;
  • RefreshColor;
  • }
  • actions
  • {
  • If(Event Player.Gas <= 0);
  • Event Player.color_gas_bar = Color(Red);
  • Event Player.color_gas_text = Color(Red);
  • Else If(Event Player.Gas <= 15);
  • Event Player.color_gas_bar = Color(Red);
  • Event Player.color_gas_text = Color(White);
  • Else;
  • Event Player.color_gas_bar = Color(White);
  • Event Player.color_gas_text = Color(White);
  • End;
  • If(Event Player.Blade <= 0);
  • Event Player.color_blade_bar = Color(Red);
  • Event Player.color_blade_text = Color(Red);
  • Else If(Event Player.Blade <= 15);
  • Event Player.color_blade_bar = Color(Red);
  • Event Player.color_blade_text = Color(White);
  • Else;
  • Event Player.color_blade_bar = Color(White);
  • Event Player.color_blade_text = Color(White);
  • End;
  • If(Event Player.BladeDmg <= 0);
  • Event Player.color_power_text = Color(Red);
  • Else If(Event Player.BladeDmg < 50);
  • Event Player.color_power_bar = Color(White);
  • Event Player.color_power_text = Color(White);
  • Else If(Event Player.BladeDmg < 75);
  • Event Player.color_power_bar = Color(Orange);
  • Event Player.color_power_text = Color(White);
  • Else If(Event Player.BladeDmg < 100);
  • Event Player.color_power_bar = Color(Red);
  • Event Player.color_power_text = Color(White);
  • Else;
  • Event Player.color_power_bar = Color(Purple);
  • Event Player.color_power_text = Color(White);
  • End;
  • }
  • }
  • rule("TEAM1 - Kill")
  • rule("TEAM1 - Player Left")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Destroy Dummy Bot(Team 1, Slot Of(Event Player.DummyBot));
  • Event Player.AlreadySet = False;
  • Small Message(All Players(All Teams), Custom String("{0} Left", Event Player));
  • }
  • }
  • rule("TEAM1 - Win")
  • {
  • event
  • {
  • Player Earned Elimination;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("TEAM2 - Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • Slot 0;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Global.TitanSpawnPosition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(12.900, 12.792, -75.544)), To World);
  • Set Gravity(Event Player, 100);
  • Start Scaling Player(Event Player, 5, True);
  • Set Max Health(All Players(Team 2), 5000);
  • Start Scaling Player(Event Player, Global.OptionTitanScale, True);
  • Set Max Health(Event Player, Global.OptionTitanHP / 500 * 100);
  • Set Healing Received(Event Player, 0);
  • }
  • }
  • rule("TEAM2 - Kill")
  • {
  • event
  • {
  • Player Earned Elimination;
  • Team 2;
  • All;
  • }
  • actions
  • {
  • Event Player.Kill += 1;
  • Global.TitanKillCount += 1;
  • }
  • }
  • rule("TEAM2 - Stun By Charged Dash")
  • {
  • event
  • {
  • Player Took Damage;
  • Team 2;
  • Slot 0;
  • }
  • conditions
  • {
  • Attacker.BladeDmg >= 75;
  • }
  • actions
  • {
  • Set Status(Event Player, Attacker, Stunned, 1);
  • }
  • }
  • rule("TEAM2 - 100Kills")
  • rule("TEAM2 - Win")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Event Player.Kill >= 100;
  • Global.TitanKillCount >= Global.OptionTitanKillToWin;
  • }
  • actions
  • {
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("3RDCAM - Configuration")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "Controls how far behind the player's head camera will be."
  • Global.cfg_CamDistance = 5;
  • "Determines whether the camera will check for surfaces behind the player. Setting this to False can reduce server load, but may result in the camera clipping into terrain."
  • Global.cfg_CamRaycastsEyePos = True;
  • "Controls the offset of the camera from the player's facing direction. X affects the left/right offset, Y controls the up/down offset, and Z controls the forward/back offset. Any X or Y offset can result in misalignment of the player crosshair."
  • Global.cfg_CamOffset = Vector(-0.500, 0, 0);
  • "Determines whether or not the camera will attempt to place the crosshair directly over what the hero is aiming at. Setting this to True will increase server load. Aim may also feel somewhat jittery, especially when cfg_CamOffset is large."
  • Global.cfg_CamHasCrosshairCorrection = False;
  • "Determines the distance at which the crosshair will be exactly accurate to the hero's target. If set to 0, the crosshair aiming line will be parallel to the hero aiming line. (If cfg_CamCrosshairCorrection is enabled, this setting is ignored.)"
  • Global.cfg_CamAimDistance = 0;
  • "Controls the blend speed of the camera."
  • Global.cfg_CamBlendSpeed = 75;
  • "Determines whether the camera will override the game's native third person cameras, such as Reinhardt's shield or Hammond's ball form."
  • Global.cfg_CamOverridesGame = True;
  • "Determines whether or not the camera will override the third person emoting camera."
  • Global.cfg_CamOverridesEmotes = True;
  • "Determines whether scopes such as Ana's, Widow's, or Ashe's disable the camera."
  • Global.cfg_ScopesDisableCam = True;
  • Global.cfg_StartWithCamActive = True;
  • }
  • }
  • rule("3RDCAM - Start Cams")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Global.cfg_StartWithCamActive == True;
  • }
  • actions
  • {
  • "Resets a particular player's camera settings back to the defaults listed in Configuration. Make sure not to call this subroutine from a Global rule."
  • Event Player.plyr_CamDistance = Global.cfg_CamDistance;
  • Event Player.plyr_CamRaycastsEyePos = Global.cfg_CamRaycastsEyePos;
  • Event Player.plyr_CamOffset = Global.cfg_CamOffset;
  • Event Player.plyr_CamHasCrosshairCorrection = Global.cfg_CamHasCrosshairCorrection;
  • Event Player.plyr_CamAimDistance = Global.cfg_CamAimDistance;
  • Event Player.plyr_CamBlendSpeed = Global.cfg_CamBlendSpeed;
  • Event Player.plyr_CamOverridesGame = Global.cfg_CamOverridesGame;
  • Event Player.plyr_CamOverridesEmotes = Global.cfg_CamOverridesEmotes;
  • Event Player.plyr_ScopesDisableCam = Global.cfg_ScopesDisableCam;
  • Event Player.plyr_CamActive = True;
  • Call Subroutine(RefreshCam);
  • }
  • }
  • rule("3RDCAM - [Sub] Refresh Cam")
  • {
  • event
  • {
  • Subroutine;
  • RefreshCam;
  • }
  • actions
  • {
  • Skip If(!Event Player.plyr_ScopesDisableCam, 1);
  • "Refreshes a particular player's camera. Call this after changing a player's camera settings. Make sure not to call this subroutine from a Global rule."
  • Stop Camera(Event Player);
  • If(Event Player.plyr_CamActive);
  • If(!Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Eye Position(Event Player) + (
  • Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && !Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True), Eye Position(
  • Event Player) + (Event Player.plyr_CamAimDistance <= 0 ? World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • : Facing Direction Of(Event Player) * Event Player.plyr_CamAimDistance), Event Player.plyr_CamBlendSpeed);
  • Else If(!Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 300, All Players(Opposite Team Of(Team Of(Event Player))),
  • All Players(Team Of(Event Player)), True), Event Player.plyr_CamBlendSpeed);
  • Else If(Event Player.plyr_CamRaycastsEyePos && Event Player.plyr_CamHasCrosshairCorrection);
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset,
  • Event Player, Rotation), Eye Position(Event Player) + World Vector Of(Event Player.plyr_CamOffset, Event Player, Rotation)
  • + Facing Direction Of(Event Player) * -1 * Event Player.plyr_CamDistance, Null, All Players(All Teams), True),
  • Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 300,
  • All Players(Opposite Team Of(Team Of(Event Player))), All Players(Team Of(Event Player)), True),
  • Event Player.plyr_CamBlendSpeed);
  • Else;
  • Small Message(Host Player, Custom String("Camera error - {0}", Event Player));
  • End;
  • End;
  • }
  • }
  • rule("DEBUG - Show Info")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.DebugShowInfo == True;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Position Of(Event Player), Null, Null, Left, 100, Color(Red), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Current Speed: {0}", Speed Of(Event Player)), Null, Top, 0, Color(Red), Color(
  • Red), Color(Red), Visible To and String, Default Visibility);
  • }
  • }
  • rule("DEBUG - Add Dummy Titan")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.DebugAddDummy == True;
  • }
  • actions
  • {
  • If(Global.DummyCreated != True);
  • Create Dummy Bot(Hero(Winston), Team 2, 0, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Genji), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • Global.DummyCreated = True;
  • Wait(0.250, Ignore Condition);
  • }
  • }
Join the Workshop.codes Discord