Return to post
- settings
- {
- lobby
- {
- Max Team 1 Players: 4
- Max Team 2 Players: 4
- }
- modes
- {
disabled Assault
- Team Deathmatch
- {
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 maps
- {
- Black Forest
- Black Forest Winter
- Ecopoint: Antarctica
- Ecopoint: Antarctica Winter
- Hanamura
- Hanamura Winter
- Ilios Lighthouse
- Ilios Ruins
- Ilios Well
- Lijiang Control Center
- Lijiang Control Center Lunar New Year
- Lijiang Garden
- Lijiang Garden Lunar New Year
- Paris
- Petra
- Temple of Anubis
- Volskaya Industries
- Workshop Chamber
- Workshop Expanse
- Workshop Expanse Night
- Workshop Green Screen
- Workshop Island
- Workshop Island Night
- }
- }
disabled Practice Range
- General
- {
Limit Roles: 2 Of Each Role Per Team
- Hero Limit: Off
- }
- }
Skirmish
- heroes
- {
- General
- {
Hero Limit: Off
Respawn Time Scalar: 30%
enabled maps
- enabled heroes
- {
Blizzard World
Blizzard World Winter
Dorado
Eichenwalde
Eichenwalde Halloween
Havana
Hollywood
Hollywood Halloween
Junkertown
King's Row
King's Row Winter
Paris
Watchpoint: Gibraltar
- McCree
- }
- }
disabled Team Deathmatch
{
Limit Roles: 2 Of Each Role Per Team
}
- }
- extensions
- {
- 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
- 8: meterPauseTimer
- 9: standBreakTimer
- 18: canHeal
- 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);
- Disable Built-In Game Mode Scoring;
- }
- }
- rule("score go up")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- If(!Array Contains(All Players(Team 2), Attacker));
- Modify Team Score(Team Of(Event Player), -1);
- Else;
- Modify Team Score(Opposite Team Of(Team Of(Event Player)), 1);
- End;
- }
- }
- rule("victory condition")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- (Team Score(Team 1) >= 20 || Team Score(Team 2) >= 20) == True;
- }
- actions
- {
- If(Team Score(Team 1) > Team Score(Team 2));
- Declare Team Victory(Team 1);
- Else;
- Declare Team Victory(Team 2);
- End;
- }
- }
- 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("dummy bot init")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- 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 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;
- Event Player.canHeal = True;
- Set Max Health(Event Player, 50);
- }
- }
- 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) + (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) + (Current Game Mode == Game Mode(Deathmatch)
- ? 16 : 8), Vector(0, 1000, 0), Vector(0, 0, 0));
- Event Player.bots[1] = Last Created Entity;
- 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 Secondary Fire Enabled(Event Player, False);
- Set Ability 1 Enabled(Event Player, False);
- Set Ability 2 Enabled(Event Player, False);
- Set Ultimate Ability Enabled(Event Player, False);
- 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;
- Chase Player Variable At Rate(Event Player, meter, 100, Total Time Elapsed - Event Player.meterPauseTimer > 1 ? 20 : 0,
- Destination and Rate);
- }
- }
rule("normalize health")
- rule("player spawn/respawns")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Absolute Value(Max Health(Event Player) - 405) > 5;
- Is Alive(Event Player) == Has Spawned(Event Player);
- }
- actions
- {
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;
- Event Player.meter = 100;
- }
- }
rule("dummy bot init")
- rule("normalize health")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Is Dummy Bot(Event Player) == True;
- Absolute Value(Max Health(Event Player) - 255) > 5;
- }
- 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 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;
- 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, 255 - Max Health(Event Player), True, False);
- Wait(0.016, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- 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;
- Event Player.punchingBot = Event Player.bots[0];
- disabled Wait(0.016, Ignore Condition);
- 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);
- Wait Until(!Is Button Held(Event Player, Button(Primary Fire)) || Event Player.meter < 10, 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;
- }
- }
- 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;
- Event Player.meter >= 10;
- }
- 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);
- disabled Event Player.punchingBot = Event Player.bots[1];
- disabled Call Subroutine(punchBot);
- disabled Wait(0.176, Ignore Condition);
- Event Player.punchingBot = First Of(Remove From Array(Event Player.bots, Event Player.punchingBot));
- Loop If Condition Is True;
- }
- }
- disabled rule("camera")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- 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);
- }
- }
- disabled rule("stun by bot")
- {
- 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;
- }
- actions
- {
- Clear Status(Event Player, Stunned);
- }
- }
- disabled rule("knocked down by bot - collision")
- {
- 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;
- }
- actions
- {
- Clear Status(Event Player, Stunned);
- }
- }
- 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 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);
- Event Player.standUser.meter = Max(0, Event Player.standUser.meter - 10);
- Event Player.standUser.meterPauseTimer = Total Time Elapsed;
- 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;
- }
- }
- disabled rule("bot punch boost for user")
- {
- event
- {
- 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
- {
- Apply Impulse(Event Player.standUser, Facing Direction Of(Event Player), -15, To World, Cancel Contrary Motion XYZ);
- }
- }
- rule("player dies")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- Kill(Event Player.bots, Attacker);
- Wait Until(Is Alive(Event Player), 99999);
- Respawn(Event Player.bots);
- }
- }
rule("bot takes damage - reflect damage to player & impulse")
- rule("bot takes damage - reflect damage to player & impulse & self healing")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
Damage(Event Player.standUser, Is Dummy Bot(Attacker) ? Attacker.standUser : Attacker,
- disabled 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);
- If(Is Button Held(Event Player.standUser, Button(Crouch)));
- Event Player.standUser.meter = Min(200, Event Player.standUser.meter + 25);
- If(Event Player.standUser.meter > 100);
- Event Player.standUser.meterPauseTimer = Total Time Elapsed;
- End;
- Damage(Event Player.standUser, Is Dummy Bot(Attacker) ? Attacker.standUser : Attacker, 0.250 * Event Damage);
- If(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;
- Else;
- Damage(Event Player.standUser, Is Dummy Bot(Attacker) ? Attacker.standUser : Attacker, 0.500 * Event Damage);
- End;
- }
- }
rule("bots healths arent same, pick lower")
- disabled rule("bots healths arent same, pick lower")
- {
- event
- {
- 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
- {
- Big Message(All Players(All Teams), Custom String("ye"));
- 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;
- Wait(0.016, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("stand respawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player.standUser) == True;
- Is Dead(Event Player) == True;
- }
- actions
- {
- Event Player.standUser.standBreakTimer = 0;
- Chase Player Variable Over Time(Event Player.standUser, standBreakTimer, 100, 5, None);
- 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);
- }
- }
- disabled rule("debug bot")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Create Dummy Bot(Hero(Ana), Team 2, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
- 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
- {
- 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
- {
- 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")
- rule("hud meter")
- {
- 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);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 20 * Facing Direction Of(Local Player) + 3 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Purple),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 20 * Facing Direction Of(Local Player) + 3.100 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Purple),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 20 * Facing Direction Of(Local Player) + 3.200 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Purple),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter - 100, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 19 * Facing Direction Of(Local Player) + 2.850 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Yellow),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter - 100, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 19 * Facing Direction Of(Local Player) + 2.945 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Yellow),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Local Player.meter - 100, Custom String(""),
- Update Every Frame(Eye Position(Local Player) + 19 * Facing Direction Of(Local Player) + 3.040 * Direction From Angles(
- Horizontal Facing Angle Of(Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Color(Yellow),
- Color(White), Visible To Position Values and Color, Default Visibility);
- Create Progress Bar In-World Text(Is Alive(Local Player) ? Local Player : False, Is Alive(Local Player.bots[0])
- ? 100 * Normalized Health(Local Player.bots[0]) : Local Player.standBreakTimer, Custom String(""), Update Every Frame(
- Eye Position(Local Player) + 20 * Facing Direction Of(Local Player) + 3.300 * Direction From Angles(Horizontal Facing Angle Of(
- Local Player), Vertical Facing Angle Of(Local Player) + 90)), 0.050, Do Not Clip, Is Alive(Local Player.bots[0]) ? Color(Blue)
- : Color(Red), Color(White), Visible To Position Values and Color, Default Visibility);
- }
- }
- rule("stand selfhealing - damage")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Event Player.canHeal = False;
- Stop All Heal Over Time(Event Player.standUser.bots);
- Wait(4, Abort When False);
- Event Player.canHeal = True;
- disabled Wait Until(!Is Button Held(Event Player.standUser, Button(Crouch)), 99999);
- disabled Start Heal Over Time(Event Player.standUser.bots, Empty Array, 9999, 50);
- }
- }
- rule("stand self healing start")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Crouch)) == False;
- Event Player.rushing == False;
- Is True For All(Event Player.bots, Current Array Element.canHeal) == True;
- }
- actions
- {
- Start Heal Over Time(Event Player.bots, Empty Array, 9999, 12.500);
- }
- }
- rule("stop healing bots")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- (Is Button Held(Event Player, Button(Crouch)) || Event Player.rushing) == True;
- }
- actions
- {
- Stop All Heal Over Time(Event Player.standUser.bots);
- }
- }