Return to post
- settings
- {
- lobby
- {
- Max Team 1 Players: 4
- Max Team 2 Players: 4
- }
- modes
- {
- disabled Assault
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Capture the Flag
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Control
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Deathmatch
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Elimination
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Escort
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Hybrid
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Junkenstein's Revenge
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- disabled Practice Range
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- Skirmish
- {
- Hero Limit: Off
- Respawn Time Scalar: 30%
- enabled maps
- {
Workshop Island
- Blizzard World
- Blizzard World Winter
- Dorado
- Eichenwalde
- Eichenwalde Halloween
- Havana
- Hollywood
- Hollywood Halloween
- Junkertown
- King's Row
- King's Row Winter
- Paris
- Watchpoint: Gibraltar
- }
- }
- disabled Team Deathmatch
- {
- Limit Roles: 2 Of Each Role Per Team
- }
- }
- extensions
- {
Buff Status Effects
Debuff Status Effects
- Energy Explosion Effects
- Spawn More Dummy Bots
- }
- }
- variables
- {
- global:
- 0: standNames
- 23: lastAllPlayers
- 24: allBotsDeletableTemp
- 25: botDeletionCounter
- player:
- 0: bots
- 1: bot1Pos
- 2: bot2Pos
- 3: nextTP
- 4: punchingBot
- 5: rushing
- 6: inacuracy
- 7: meter
- 19: counter
- 20: queuedTp
- 21: isPunching
- 22: launchAngle
- 23: punchRequest
- 24: punchTime
- 25: standUser
- }
- subroutines
- {
- 0: punchBot
- }
- disabled rule("debug - huds")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Create HUD Text(All Players(All Teams), Custom String("{0} ld {1} pk {2} avg", Server Load, Server Load Peak, Server Load Average),
- Null, Null, Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- Create HUD Text(Local Player, Local Player.inacuracy, Null, Null, Left, 0, Color(White), Color(White), Color(White),
- Visible To and String, Default Visibility);
- }
- }
- rule("init global")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.standNames = Array(Custom String("Bruh Platinum"), Custom String("Stah Purachina"), Custom String("Tsar Wario"),
- Custom String("Earth"), Custom String("Jonathan Joestar"), Custom String("Same type of stand"), Custom String(
- "Yellow Diver Down"), Custom String("my stand :)"));
- Global.standNames = Randomized Array(Global.standNames);
- }
- }
- rule("cleanup bots")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.lastAllPlayers != Array(All Players(Team 1), All Players(Team 2));
- }
- actions
- {
- Global.lastAllPlayers = Array(All Players(Team 1), All Players(Team 2));
- If(Current Game Mode == Game Mode(Deathmatch));
- Global.allBotsDeletableTemp = Filtered Array(All Players(All Teams), Is Dummy Bot(Current Array Element) && !Array Contains(
- All Players(All Teams), Current Array Element.standUser));
- Else;
- Global.allBotsDeletableTemp = Filtered Array(All Players(All Teams), Is Dummy Bot(Current Array Element) && !Array Contains(
- All Players(Team Of(Current Array Element)), Current Array Element.standUser));
- End;
- For Global Variable(botDeletionCounter, 0, Count Of(Global.allBotsDeletableTemp), 1);
- Destroy Dummy Bot(Team Of(Global.allBotsDeletableTemp[Global.botDeletionCounter]), Slot Of(
- Global.allBotsDeletableTemp[Global.botDeletionCounter]));
- End;
- Wait(0.016, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("player init")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Has Spawned(Event Player) == True;
- disabled Hero Of(Event Player) != Hero(Doomfist);
- }
- actions
- {
Create Dummy Bot(Hero(Doomfist), Team Of(Event Player), Slot Of(Event Player) + 4, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Doomfist), Team Of(Event Player), Slot Of(Event Player) + (Current Game Mode == Game Mode(Deathmatch)
- ? 8 : 4), Vector(0, 1000, 0), Vector(0, 0, 0));
- Event Player.bots[0] = Last Created Entity;
Create Dummy Bot(Hero(Doomfist), Team Of(Event Player), Slot Of(Event Player) + 8, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Doomfist), Team Of(Event Player), Slot Of(Event Player) + (Current Game Mode == Game Mode(Deathmatch)
- ? 16 : 8), Vector(0, 1000, 0), Vector(0, 0, 0));
- Event Player.bots[1] = Last Created Entity;
disabled Start Forcing Player Position(Event Player.bots[0], Event Player.bot1Pos, True);
disabled Start Forcing Player Position(Event Player.bots[1], Event Player.bot2Pos, True);
Event Player.bot2Pos = Vector(0, 0, 0);
- Set Invisible(Event Player.bots[1], All);
- Start Facing(Event Player.bots, Facing Direction Of(Event Player), 1440, To World, Direction and Turn Rate);
- disabled Start Facing(Event Player.bots, Is Button Held(Event Player, Button(Secondary Fire)) && Is Button Held(Event Player, Button(
- Primary Fire)) ? Direction From Angles(Horizontal Facing Angle Of(Event Player) + 180, Vertical Facing Angle Of(Event Player))
- : Facing Direction Of(Event Player), 1440, To World, Direction and Turn Rate);
- Event Player.bot2Pos = Vector(0, 1000 - 2 * Count Of(All Players(All Teams)), 0);
- Event Player.bot1Pos = Up;
- Chase Player Variable At Rate(Event Player, bot1Pos, Is Button Held(Event Player, Button(Crouch)) ? Update Every Frame(Position Of(
- Event Player) + 1.500 * Facing Direction Of(Event Player)) : World Vector Of(Vector(0.350, 0.400, -1.250), Event Player,
- Rotation And Translation), 100000, Destination and Rate);
- disabled Chase Player Variable At Rate(Event Player, bot1Pos, World Vector Of(Vector(0.350, 0.400, -1.250), Event Player,
- Rotation And Translation), 100, Destination and Rate);
- Start Forcing Player Position(Event Player.bots[0], Event Player.bot1Pos, True);
- Start Forcing Player Position(Event Player.bots[1], Event Player.bot2Pos, True);
- Set Gravity(Event Player.bots, 0);
- Event Player.bots.standUser = Event Player;
- Set Primary Fire Enabled(Event Player, False);
- Disallow Button(Event Player, Button(Secondary Fire));
- Set Gravity(Event Player, 75);
- Chase Player Variable At Rate(Event Player, inacuracy, 2, Event Player.inacuracy + 0.300, Destination and Rate);
- Start Forcing Dummy Bot Name(Event Player.bots, First Of(Global.standNames));
- Global.standNames = Append To Array(Array Slice(Global.standNames, 1, 7), First Of(Global.standNames));
- Set Ability 1 Enabled(Event Player, False);
- Set Ability 2 Enabled(Event Player, False);
- Set Ultimate Ability Enabled(Event Player, False);
- Event Player.meter = 100;
- }
- }
disabled rule("")
- rule("normalize health")
- {
- event
- {
- Ongoing - Each Player;
- All;
Doomfist;
- All;
- }
- conditions
- {
Is Dummy Bot(Event Player) == True;
Ability Cooldown(Event Player, Button(Secondary Fire)) != 0;
- Absolute Value(Max Health(Event Player) - 405) > 5;
- }
- actions
- {
Set Ability Cooldown(Event Player, Button(Secondary Fire), 0);
- Remove All Health Pools From Player(Event Player);
- Set Max Health(Event Player, 1);
- Wait(0.016, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 405 - Max Health(Event Player), True, False);
- Wait(0.016, Ignore Condition);
- Loop If Condition Is True;
- }
- }
disabled rule("doom secondary fire rate testing")
- rule("dummy bot init")
- {
- event
- {
- Ongoing - Each Player;
- All;
Doomfist;
- All;
- }
- conditions
- {
Is Firing Secondary(Event Player) == True;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
Wait Until(Is Firing Secondary(Event Player), 99999);
Global.A = Total Time Elapsed;
- disabled Create In-World Text(All Players(All Teams), Has Status(Event Player, Knocked Down), Event Player, 2.500, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Set Move Speed(Event Player, 125);
- Disable Movement Collision With Players(Event Player);
- disabled Start Facing(Event Player, Facing Direction Of(Event Player.standUser), 1440, To World, Direction and Turn Rate);
- Set Knockback Dealt(Event Player, 0);
- Disable Built-In Game Mode Respawning(Event Player);
- disabled For Player Variable(Event Player, counter, 0, 20, 1);
- disabled Create Effect(!(Event Player == Event Player.standUser.bots[1] && !Event Player.standUser.rushing) ? All Players(All Teams) : 0,
- Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1, Visible To Position and Radius);
- disabled End;
- }
- }
- rule("make bots ready/unready")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Primary Fire)) == True;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Stop Forcing Player Position(Event Player.bots);
- Set Invisible(Event Player.bots[1], None);
- Event Player.rushing = True;
- disabled Wait(0.016, Ignore Condition);
Wait Until(!Is Firing Secondary(Event Player), 99999);
Wait Until(Is Firing Secondary(Event Player), 99999);
Create HUD Text(All Players(All Teams), Custom String("{0}", Total Time Elapsed - Global.A), Null, Null, Left, 0, Color(White),
Color(White), Color(White), Visible To, Default Visibility);
Loop If Condition Is True;
- disabled Teleport(Event Player.bots, Position Of(Event Player));
- disabled Clear Status(Event Player.bots[1], Phased Out);
- Event Player.inacuracy = 0;
- Wait(0.384, Ignore Condition);
- Wait Until(!Is Button Held(Event Player, Button(Primary Fire)), 99999);
- disabled Start Facing(Event Player.bots, Is Button Held(Event Player, Button(Secondary Fire)) && Is Button Held(Event Player, Button(
- Primary Fire)) ? Vector(0, 0, 0) - Facing Direction Of(Event Player) : Facing Direction Of(Event Player), 1440, To World,
- Direction and Turn Rate);
- Cancel Primary Action(Event Player.bots);
- Set Invisible(Event Player.bots[1], All);
- Start Forcing Player Position(Event Player.bots[0], Event Player.bot1Pos, True);
- Start Forcing Player Position(Event Player.bots[1], Event Player.bot2Pos, True);
- Event Player.rushing = False;
- }
- }
disabled rule("spam rmb")
- rule("make bots fire")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Primary Fire)) == True;
- Is Alive(Event Player) == True;
- }
- actions
- {
Press Button(Event Player.bots, Button(Secondary Fire));
Wait(0.016, Ignore Condition);
- Event Player.punchingBot = Event Player.bots[0];
- Call Subroutine(punchBot);
- Wait(0.176, Ignore Condition);
- Event Player.punchingBot = Event Player.bots[1];
- Call Subroutine(punchBot);
- Wait(0.176, Ignore Condition);
- Loop If Condition Is True;
- }
- }
rule("set bots to idle")
- disabled rule("camera")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Is Button Held(Event Player, Button(Primary Fire)) == False;
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
Start Forcing Player Position(Event Player.bots[0], Event Player.bot1Pos, True);
Start Forcing Player Position(Event Player.bots[1], Event Player.bot2Pos, True);
Start Facing(Event Player.bots, Facing Direction Of(Event Player), 10000, To World, Direction and Turn Rate);
Event Player.bot2Pos = Vector(0, 10000, 0);
Event Player.bot1Pos = Up;
Chase Player Variable At Rate(Event Player, bot1Pos, World Vector Of(Vector(0.350, 0.400, -1.250), Event Player,
Rotation And Translation), 100, Destination and Rate);
- disabled Start Camera(Event Player, Update Every Frame(Eye Position(Event Player) + -5 * Facing Direction Of(Event Player)),
- Update Every Frame(Eye Position(Event Player)), 0);
- Start Camera(Event Player, Vector(0, 40, 0), Vector(0, 0, 0), 0);
- disabled Start Camera(Event Player, World Vector Of(Vector(5, 2, -2), Event Player, Rotation And Translation), Eye Position(Event Player),
- 0);
- }
- }
rule("make bots ready")
- disabled rule("stun by bot")
- {
- event
- {
Ongoing - Each Player;
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
Is Button Held(Event Player, Button(Primary Fire)) == True;
- Is Dummy Bot(Attacker) == True;
- disabled Has Status(Event Player, Knocked Down) == True;
- Has Status(Event Player, Stunned) == True;
- }
- actions
- {
disabled Stop Forcing Player Position(Event Player.bots[0]);
disabled Stop Forcing Player Position(Event Player.bots[1]);
Stop Forcing Player Position(Event Player.bots);
Teleport(Event Player.bots, Position Of(Event Player));
- Clear Status(Event Player, Stunned);
- }
- }
rule("make bots fire")
- disabled rule("knocked down by bot - collision")
- {
- event
- {
Ongoing - Each Player;
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
Is Button Held(Event Player, Button(Primary Fire)) == True;
Is Alive(Event Player) == True;
- Is Dummy Bot(Attacker) == True;
- disabled Has Status(Event Player, Knocked Down) == True;
- Has Status(Event Player, Stunned) == True;
- }
- actions
- {
Event Player.punchingBot = Event Player.bots[0];
Call Subroutine(punchBot);
Wait(0.176, Ignore Condition);
Event Player.punchingBot = Event Player.bots[1];
Call Subroutine(punchBot);
Wait(0.176, Ignore Condition);
Loop If Condition Is True;
- Clear Status(Event Player, Stunned);
- }
- }
rule("dummy bot init")
- rule("player-side punch command")
- {
- event
- {
- Subroutine;
- punchBot;
- }
- actions
- {
- Event Player.punchingBot.punchRequest = False;
- Wait(0.016, Ignore Condition);
- Clear Status(Event Player.punchingBot, Knocked Down);
- Clear Status(Event Player.punchingBot, Stunned);
- Cancel Primary Action(Event Player.punchingBot);
- Set Ability Cooldown(Event Player.punchingBot, Button(Secondary Fire), 0);
- Event Player.nextTP = World Vector Of(Vector(Random Real(-1, 1), Random Real(0 - Min(Altitude Of(Event Player),
- Event Player.inacuracy), Event Player.inacuracy), -0.750), Event Player, Rotation And Translation);
- Teleport(Event Player.punchingBot, Event Player.nextTP);
- Press Button(Event Player.punchingBot, Button(Secondary Fire));
- Event Player.punchingBot.punchRequest = True;
- disabled Event Player.punchingBot.queuedTp = World Vector Of(Vector(Random Real(-1, 1), Random Real(0 - Min(Altitude Of(Event Player),
- Event Player.inacuracy), Event Player.inacuracy), -0.750), Event Player, Rotation And Translation);
- disabled Event Player.nextTP = World Vector Of(Vector(Random Real(-1, 1), Random Real(0 - Min(Altitude Of(Event Player),
- Event Player.inacuracy), Event Player.inacuracy), -0.750), Event Player, Rotation And Translation) + 0.016 * Velocity Of(
- Event Player);
- }
- }
- rule("bot-side punch command")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.punchRequest == True;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
disabled Create In-World Text(All Players(All Teams), Has Status(Event Player, Knocked Down), Event Player, 2.500, Clip Against Surfaces,
Visible To Position and String, Color(White), Default Visibility);
Set Move Speed(Event Player, 125);
Disable Movement Collision With Players(Event Player);
disabled Create Effect(All Players(All Teams), Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1,
Visible To Position and Radius);
disabled Create Effect(All Players(All Teams), Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1,
Visible To Position and Radius);
disabled Create Effect(All Players(All Teams), Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1,
Visible To Position and Radius);
disabled Create Effect(All Players(All Teams), Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1,
Visible To Position and Radius);
disabled Create Effect(All Players(All Teams), Soldier: 76 Sprinting Effect, Team Of(Event Player), Event Player, 1,
Visible To Position and Radius);
disabled Start Accelerating(Event Player, Vector(0, 1, 0), 100, 60, To World, Direction Rate and Max Speed);
- disabled Apply Impulse(Event Player.punchingBot, Vector(0, 0 - Y Component Of(Velocity Of(Event Player.punchingBot)), 0), 0.001, To World,
- Cancel Contrary Motion);
- Apply Impulse(Event Player, Velocity Of(Event Player), -0.001, To World, Cancel Contrary Motion);
- Wait Until(Is Firing Secondary(Event Player), 99999);
- Wait Until(!Is Firing Secondary(Event Player), 99999);
- disabled Teleport(Event Player, Event Player.queuedTp);
- disabled Set Facing(Event Player, Facing Direction Of(Event Player.standUser), To World);
- disabled Set Facing(Event Player, Is Button Held(Event Player.standUser, Button(Secondary Fire)) ? Vector(0, 0, 0) - Facing Direction Of(
- Event Player.standUser) : Facing Direction Of(Event Player.standUser), To World);
- Event Player.launchAngle = Vertical Facing Angle Of(Event Player);
- Set Move Speed(Event Player, 120 * Cosine From Degrees(Event Player.launchAngle));
- Event Player.punchTime = Total Time Elapsed;
- Event Player.isPunching = True;
- While(Total Time Elapsed - Event Player.punchTime < 0.176);
- Apply Impulse(Event Player, Down, 36 * Sine From Degrees(Event Player.launchAngle), To World, Cancel Contrary Motion);
- Wait(0.016, Ignore Condition);
- End;
- Event Player.isPunching = False;
- }
- }
rule("Rule 10")
- disabled rule("bot punch boost for user")
- {
- event
- {
Ongoing - Global;
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Event Player.isPunching == True;
- Is Button Held(Event Player.standUser, Button(Secondary Fire)) == True;
- Is In Line of Sight(Eye Position(Event Player), Eye Position(Event Player) + 3 * Facing Direction Of(Event Player),
- Barriers Do Not Block LOS) == False;
- }
- actions
- {
Create HUD Text(All Players(All Teams), Custom String("{0} ld {1} pk {2} avg", Server Load, Server Load Peak, Server Load Average),
Null, Null, Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- Apply Impulse(Event Player.standUser, Facing Direction Of(Event Player), -15, To World, Cancel Contrary Motion XYZ);
- }
- }
disabled rule("camera")
- rule("player dies")
- {
- event
- {
Ongoing - Each Player;
- Player Died;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
Start Camera(Event Player, Update Every Frame(Eye Position(Event Player) + -5 * Facing Direction Of(Event Player)),
Update Every Frame(Eye Position(Event Player)), 0);
disabled Start Camera(Event Player, Vector(0, 50, 0), Vector(0, 0, 0), 0);
disabled Start Camera(Event Player, World Vector Of(Vector(5, 2, -2), Event Player, Rotation And Translation), Eye Position(Event Player),
0);
- Kill(Event Player.bots, Attacker);
- Wait Until(Is Alive(Event Player), 99999);
- Respawn(Event Player.bots);
- }
- }
rule("stun by bot")
- rule("bot takes damage - reflect damage to player & impulse")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
Is Dummy Bot(Attacker) == True;
disabled Has Status(Event Player, Knocked Down) == True;
Has Status(Event Player, Stunned) == True;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
Clear Status(Event Player, Stunned);
- Damage(Event Player.standUser, Is Dummy Bot(Attacker) ? Attacker.standUser : Attacker,
- !Event Player.standUser.rushing && Is Button Held(Event Player.standUser, Button(Crouch))
- ? 0.100 * Event Damage : 0.500 * Event Damage);
- If(Is Button Held(Event Player.standUser, Button(Crouch)) && Is Button Held(Event Player.standUser, Button(Jump)));
- Apply Impulse(Event Player.standUser, Event Direction, 6, To World, Incorporate Contrary Motion);
- Apply Impulse(Event Player.standUser, Up, 2, To World, Incorporate Contrary Motion);
- End;
- }
- }
rule("left game")
- rule("bots healths arent same, pick lower")
- {
- event
- {
Player Left Match;
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- (Health(Event Player.bots[0]) == Health(Event Player.bots[1]) && Is Alive(Event Player.bots[0]) == Is Alive(Event Player.bots[1]))
- == False;
- }
- actions
- {
Global.allBotsDeletableTemp = Filtered Array(All Players(All Teams), Is Dummy Bot(Current Array Element) && !Array Contains(
All Players(All Teams), Current Array Element.standUser));
For Global Variable(botDeletionCounter, 0, Count Of(Global.allBotsDeletableTemp), 1);
Destroy Dummy Bot(Team Of(Global.allBotsDeletableTemp[Global.botDeletionCounter]), Slot Of(
Global.allBotsDeletableTemp[Global.botDeletionCounter]));
- If(Is True For Any(Event Player.bots, Is Dead(Current Array Element)));
- Kill(Event Player.bots, Null);
- Else;
- If(Health(Event Player.bots[0]) > Health(Event Player.bots[1]));
- Set Player Health(Event Player.bots[0], Health(Event Player.bots[1]));
- Else;
- Set Player Health(Event Player.bots[1], Health(Event Player.bots[0]));
- End;
- End;
- }
- }
rule("knocked down by bot - collision")
- rule("stand respawn")
- {
- event
- {
Player Took Damage;
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Is Dummy Bot(Attacker) == True;
disabled Has Status(Event Player, Knocked Down) == True;
Has Status(Event Player, Stunned) == True;
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player.standUser) == True;
- Is Dead(Event Player) == True;
- }
- actions
- {
Clear Status(Event Player, Stunned);
- Wait(5, Abort When False);
- Respawn(Event Player.standUser.bots);
- }
- }
- disabled rule("debug - knockdown clearance")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Set Status(Event Player, Null, Knocked Down, 9999);
- Clear Status(Event Player, Knocked Down);
- Wait(0.016, Ignore Condition);
- Set Status(Event Player, Null, Frozen, 0.001);
- disabled Kill(Event Player, Null);
- disabled Respawn(Event Player);
- }
- }
rule("punchBot")
- disabled rule("debug bot")
- {
- event
- {
Subroutine;
punchBot;
- Ongoing - Global;
- }
- actions
- {
Event Player.punchingBot.punchRequest = False;
Wait(0.016, Ignore Condition);
Clear Status(Event Player.punchingBot, Knocked Down);
Clear Status(Event Player.punchingBot, Stunned);
Cancel Primary Action(Event Player.punchingBot);
Set Ability Cooldown(Event Player.punchingBot, Button(Secondary Fire), 0);
Event Player.nextTP = World Vector Of(Vector(Random Real(-1, 1), Random Real(Max(0 - Altitude Of(Event Player), -1), 1), -1),
Event Player, Rotation And Translation);
Teleport(Event Player.punchingBot, Event Player.nextTP);
Press Button(Event Player.punchingBot, Button(Secondary Fire));
Event Player.punchingBot.punchRequest = True;
- Create Dummy Bot(Hero(Ana), Team 2, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
rule("aim bot")
- disabled rule("bypass speedlimit in air")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Is In Air(Event Player) == True;
- }
- actions
- {
- Start Transforming Throttle(Event Player, 0.500, 0.500, Facing Direction Of(Event Player));
- Set Move Speed(Event Player, 200);
- }
- }
- disabled rule("bypass speedlimit in air off")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Is In Air(Event Player) == False;
- }
- actions
- {
- disabled Start Transforming Throttle(Event Player, 0.500, 0.500, Facing Direction Of(Event Player));
- Stop Transforming Throttle(Event Player);
- Set Move Speed(Event Player, 100);
- }
- }
- rule("player self healing")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Event Damage > 20;
- }
- actions
- {
- Stop All Heal Over Time(Event Player);
- Wait(4, Ignore Condition);
- Start Heal Over Time(Event Player, Event Player, 9999, 10);
- }
- }
- rule("bot plays collision effect")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Event Player.punchRequest == True;
- Is Dummy Bot(Event Player) == True;
- Has Status(Event Player, Knocked Down) == True;
- Hero Of(Ray Cast Hit Player(Update Every Frame(Position Of(Event Player)) + Vector(0, 0.750, 0), Update Every Frame(Position Of(
- Event Player)) + Vector(0, 0.750, 0) + 3 * Facing Direction Of(Event Player), All Players(Opposite Team Of(Team Of(
- Event Player.standUser))), Event Player, True)) == Hero(Doomfist);
- }
- actions
- {
Apply Impulse(Event Player.punchingBot, Vector(0, 0 - Y Component Of(Velocity Of(Event Player.punchingBot)), 0), 0.001, To World,
Cancel Contrary Motion);
Wait Until(Is Firing Secondary(Event Player), 99999);
Wait Until(!Is Firing Secondary(Event Player), 99999);
Apply Impulse(Event Player.punchingBot, Vector(0, 1, 0), 200, To World, Cancel Contrary Motion);
Event Player.launchAngle = Vertical Facing Angle Of(Event Player);
Set Move Speed(Event Player, 100 * Cosine From Degrees(Event Player.launchAngle));
Event Player.punchTime = Total Time Elapsed;
While(Total Time Elapsed - Event Player.punchTime < 0.192);
Apply Impulse(Event Player, Down, 20 * Sine From Degrees(Event Player.launchAngle), To World, Cancel Contrary Motion);
Wait(0.016, Abort When False);
End;
- Play Effect(All Players(All Teams), Tracer Recall Reappear Effect, Team Of(Event Player.standUser), Position Of(Event Player)
- + Vector(0, 0.750, 0), 1);
- Wait Until(!Has Status(Event Player, Knocked Down), 99999);
- disabled Play Effect(All Players(All Teams), Baptiste Biotic Launcher Explosion Sound, Color(White), Position Of(Event Player) + Vector(0,
- 0.750, 0), 50);
- disabled Play Effect(All Players(All Teams), Doomfist Meteor Strike Impact Sound, Team Of(Event Player.standUser), Evaluate Once(
- Position Of(Event Player)) + Vector(0, 0.750, 0), 200);
- disabled Play Effect(All Players(All Teams), Doomfist Meteor Strike Impact Sound, Opposite Team Of(Team Of(Event Player.standUser)),
- Evaluate Once(Position Of(Event Player)) + Vector(0, 0.750, 0), 200);
- }
- }
- rule("bot plays attack hit effect")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Event Ability == Button(Secondary Fire);
- disabled Has Status(Event Player, Knocked Down) == True;
- disabled Hero Of(Ray Cast Hit Player(Update Every Frame(Position Of(Event Player)) + Vector(0, 0.750, 0), Update Every Frame(Position Of(
- Event Player)) + Vector(0, 0.750, 0) + 3 * Facing Direction Of(Event Player), All Players(All Teams), Event Player, True))
- == Hero(Doomfist);
- }
- actions
- {
- Play Effect(All Players(All Teams), Tracer Recall Reappear Effect, Color(White), Position Of(Event Player) + Vector(0, 0.750, 0),
- 1);
- disabled Play Effect(All Players(All Teams), Pharah Concussive Blast Effect, Color(White), Position Of(Event Player) + Vector(0, 0.750, 0),
- 1);
- disabled Play Effect(All Players(All Teams), Doomfist Meteor Strike Impact Sound, Team Of(Event Player.standUser), Evaluate Once(
- Position Of(Event Player)) + Vector(0, 0.750, 0), 200);
- }
- }
- rule("Rule 26")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- disabled Create Progress Bar In-World Text(All Players(All Teams), Local Player.meter, Custom String(""), Update Every Frame(Eye Position(
- Local Player) + 20 * Facing Direction Of(Local Player)), 0.100, Do Not Clip, Color(Purple), Color(White),
- Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(All Players(All Teams), Local Player.meter, Custom String(""), Update Every Frame(Eye Position(
- Local Player) + 20 * Facing Direction Of(Local Player) + 0.500 * Direction From Angles(Horizontal Facing Angle Of(
- Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.100, Do Not Clip, Color(Purple), Color(White),
- Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(All Players(All Teams), Local Player.meter, Custom String(""), Update Every Frame(Eye Position(
- Local Player) + 20 * Facing Direction Of(Local Player) + 0.600 * Direction From Angles(Horizontal Facing Angle Of(
- Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.100, Do Not Clip, Color(Purple), Color(White),
- Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(All Players(All Teams), Local Player.meter, Custom String(""), Update Every Frame(Eye Position(
- Local Player) + 20 * Facing Direction Of(Local Player) + 0.700 * Direction From Angles(Horizontal Facing Angle Of(
- Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.100, Do Not Clip, Color(Purple), Color(White),
- Visible To Position Values and Color, Default Visibility);
- }
- }