Return to post
nothing to see here
- variables
- {
- global:
- 0: BerserkerBuyPos
- 1: GlobalSpawn
- 2: PacifistBuyPos
- 4: FarmerBuyPos
- 5: GladiatorBuyPos
- 6: LightBuyPos
- 7: EventType
- 8: Gen1Pos
- 9: Gen2Pos
- 10: DamageBuyPos
- 11: DefenseBuyPos
- 12: HealthBuyPos
- 13: SpeedBuyPos
- 14: Setup
- 15: HeroChangePos
- 16: BloodCrystalPos
- 17: Overflow
- 18: XPToGoldPos
- 19: XPPumpPos
- 20: ScaleUpPos
- 21: ScaleDownPos
- 22: BankDepositPos
- 23: BankWithdrawPos
- 24: RegenBuyPos
- 25: StunBuyPos
- 26: DoubleShotBuyPos
- 27: InterestBuyPos
- 29: CorrosiveBuyPos
- 30: MoveOrDie
- 31: XPKillEvent
- 32: NextToKill
- 33: StartingMoney
- 34: TenacityPos
- 35: ContractPosition
- 36: DarkShopPos
- 37: DarkShopOutPos
- 38: ResetPos
- 39: ResetPoints
- 40: ResetLevel
- 41: ChanceWheelPos
- 42: HealBubblePos
- 43: DarkPointsBurning
- 44: MoneyToDarkPos
- 45: StrengthTrainingPos
- 46: OneShotPos
- 47: DarkClassesPos
- 48: GhostPos
- 49: TrollPos
- 50: BillionairePos
- 51: AngelPos
- 52: DarkXPBoostPos
- 53: BerserkererPos
- 54: OrbPosition
- 55: OrbPositionType
- 56: OrbID
- 57: OrbTextID
- 58: OrbTimer
- 61: EmptyPos
- 62: HelperPos
- 64: LifestealPos
- 65: ThirdPersonPos
- 66: SpectatePos
- player:
- 0: LastTextDamage
- 1: Berserker
- 2: HasClass
- 3: SwitchingClass
- 4: Pacifist
- 5: Level
- 6: XP
- 7: LevelUpPoints
- 8: Money
- 10: Farmer
- 12: Gladiator
- 13: Lightweight
- 14: Killstreak
- 15: Damage
- 16: Health
- 17: Speed
- 18: DamageTaken
- 19: ClassName
- 21: Scale
- 22: Bank
- 23: Regen
- 24: Stun
- 25: DoubleShot
- 26: Interest
- 27: BloodCrystalBeam
- 28: BloodEnergySound
- 29: XpPumpBeam
- 30: XpPumpSound
- 31: XpPumpSound2
- 32: CorrosiveAmmunition
- 33: Poison
- 34: Poisoner
- 35: Tenacity
- 37: ContractText
- 38: RandomGenerator
- 39: RandomBloodCrystal
- 40: HudDone
- 41: DarkPoints
- 42: WheelOfChance
- 43: WheelMoneyReward
- 44: WheelXPReward
- 45: WheelLevelReward
- 46: WheelCooldown
- 47: Bounty
- 48: ReturnToSpawnReward
- 49: ContractKill
- 50: OnContract
- 51: ContractCoins
- 52: ContractXP
- 53: XPKillReward
- 54: StrengthTraining
- 55: StrengthTrainingScore
- 56: StrengthTrainingCooldown
- 57: XPMultiplier
- 59: OneShot
- 60: DarkClasses
- 61: Ghost
- 62: Troll
- 63: ClassText
- 64: Billionaire
- 65: Angel
- 66: Berserkerer
- 67: Flight
- 68: Helper
- 69: DarkRegen
- 70: Empty
- 71: Lifesteal
- 72: ThirdPerson
- 73: Spectating
- 74: SpectatorPlayer
- 75: TrollMode
- 76: PoisonDamage
- 77: DoubleJump
- 78: DoubleJump2
- }
- subroutines
- {
- 0: PreInitiate
- 1: PostInitiate
- 2: Default
- 3: ClassPurge
- 4: Events
- 5: WheelOfChance
- 6: Spawn
- 7: RewardOrb
- }
- disabled rule("Made by ShadowDragon#1166969")
- {
- event
- {
- Ongoing - Global;
- }
- }
- disabled rule("Position test")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Create HUD Text(Event Player, Custom String("{0}", Position Of(Event Player)), Null, Null, Left, 0, Color(White), Color(White),
- Color(White), Visible To and String, Default Visibility);
- }
- }
- rule("Local Player Hud")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- disabled Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Local Player.Level, Round To Integer(
- Max Health(Local Player), To Nearest), Local Player.ClassName), Local Player, 1.200, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create Progress Bar HUD Text(Local Player, Local Player.XP, Custom String("Level: {0}", Local Player.Level), Left, 100,
- Local Player.XP < 75 ? Color(White) : Color(Green), Color(White), Visible To Values and Color, Default Visibility);
- Create HUD Text(Local Player, Null, Null, Custom String("Killstreak: {0} \r\nFlight: {1}s \r\nContract: {2}",
- Local Player.Killstreak, Local Player.Flight, Local Player.ContractText), Top, 10, Color(White), Color(Green), Color(Green),
- Visible To and String, Default Visibility);
- Create HUD Text(Local Player, Custom String("Class: {0} \r\nMoney: {1} \r\nLevel Up Points: {2}", Local Player.ClassName,
- Local Player.Money, Local Player.LevelUpPoints), Null, Null, Right, -101, Color(Aqua), Color(White), Color(Aqua),
- Visible To and String, Default Visibility);
- Create In-World Text(Local Player, Custom String("Speed ({0}) (R to reset)", Local Player.Speed), Vector(X Component Of(
- Global.SpeedBuyPos), Y Component Of(Global.SpeedBuyPos) + 1, Z Component Of(Global.SpeedBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Local Player, Custom String("Damage ({0})", Local Player.Damage), Vector(X Component Of(Global.DamageBuyPos),
- Y Component Of(Global.DamageBuyPos) + 1, Z Component Of(Global.DamageBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Local Player, Custom String("Health ({0}%)", Local Player.Health), Vector(X Component Of(Global.HealthBuyPos),
- Y Component Of(Global.HealthBuyPos) + 1, Z Component Of(Global.HealthBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Local Player, Custom String("Defence ({0}% Damage)", Local Player.DamageTaken), Vector(X Component Of(
- Global.DefenseBuyPos), Y Component Of(Global.DefenseBuyPos) + 1, Z Component Of(Global.DefenseBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "scale up"
- Global.ScaleUpPos = Vector(-267.750, -5.070, 30.230);
- Create Effect(Local Player, Ring, Color(Yellow), Global.ScaleUpPos, 1, Visible To Position and Radius);
- Create In-World Text(Local Player, Custom String("Scale up | 20 coins ({0}%)", Local Player.Scale * 100), Vector(X Component Of(
- Global.ScaleUpPos), Y Component Of(Global.ScaleUpPos) + 1, Z Component Of(Global.ScaleUpPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "scale down"
- Global.ScaleDownPos = Vector(-265, -5.050, 34);
- Create Effect(Local Player, Ring, Color(Yellow), Global.ScaleDownPos, 1, Visible To Position and Radius);
- Create In-World Text(Local Player, Custom String("Scale down | 20 coins ({0}%)", Local Player.Scale * 100), Vector(X Component Of(
- Global.ScaleDownPos), Y Component Of(Global.ScaleDownPos) + 1, Z Component Of(Global.ScaleDownPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Local Player, Custom String("Bank | ${0} ({1}% interest)", Local Player.Bank, Local Player.Interest * 100),
- Vector(-280, -1, 50), 1.150, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- Create In-World Text(Local Player, Custom String("Dark Points: {0} | XP Boost: {1}%", Local Player.DarkPoints,
- Local Player.XPMultiplier * 100, Custom String("Magic Regen: {1}% Max HP/s | Dark Lifesteal: {2}% Damage dealt", Null,
- Local Player.DarkRegen, Local Player.Lifesteal)), Vector(-301.700, -2, 55.080), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Purple), Default Visibility);
- }
- }
- rule("Call Initiate")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Start Rule(PreInitiate, Do Nothing);
- Start Rule(PostInitiate, Do Nothing);
- Start Rule(Default, Restart Rule);
- }
- }
- rule("Initiate")
- {
- event
- {
- Subroutine;
- PreInitiate;
- }
- actions
- {
- Set Match Time(5);
- disabled Disable Inspector Recording;
- Disable Built-In Game Mode Music;
- Disable Built-In Game Mode Announcer;
- Disable Built-In Game Mode Completion;
- Disable Built-In Game Mode Scoring;
- Global.GlobalSpawn = Vector(-280, -3.300, 40);
- "spawn bubble"
- Create Effect(All Players(All Teams), Sphere, Color(Green), Vector(-280, -3.300, 40), 26, Visible To Position and Radius);
- "Berserker class"
- Global.BerserkerBuyPos = Vector(-287, -3.300, 31);
- Create Effect(All Players(All Teams), Ring, Color(Red), Global.BerserkerBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Berserker | Receive and deal 40% extra damage."), Vector(-287, -2.300,
- 31), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "pacifist class"
- Global.PacifistBuyPos = Vector(-284, -3.300, 29);
- Create Effect(All Players(All Teams), Ring, Color(Aqua), Global.PacifistBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Pacifist | Receive 75% less and deal 90% less damage. Gain passive XP and regenerate while outside."), Vector(X Component Of(
- Global.PacifistBuyPos), Y Component Of(Global.PacifistBuyPos) + 1, Z Component Of(Global.PacifistBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Classes Text"
- Create In-World Text(All Players(All Teams), Custom String("Classes | 15 seconds to switch"), Vector(-282, -1.300, 35), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "jump pad"
- Create Effect(All Players(All Teams), Ring, Color(Green), Vector(-250, -3, 40), 1, Visible To Position and Radius);
- "Farmer Class"
- Global.FarmerBuyPos = Vector(-280, -3.300, 30);
- Create Effect(All Players(All Teams), Ring, Color(Orange), Global.FarmerBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Farmer | Gain 50% extra XP. Heal 30% of damage dealt, but deal 25% less."), Vector(-280, -2.300, 30), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Gladiator class"
- Global.GladiatorBuyPos = Vector(-278, -3.300, 32.500);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.GladiatorBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Gladiator | take 25% less damage and deal 10% more but move 30% slower"), Vector(-278, -2.300, 32.500), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Lightweight class"
- Global.LightBuyPos = Vector(-282.500, -3.300, 32);
- Create Effect(All Players(All Teams), Ring, Color(White), Global.LightBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Lightweight | Increased mobility, gain double jump, and take 20% more damage"), Vector(-282.500, -2.300, 32), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(All Players(All Teams), Custom String("Level Up Shop | 1 point per upgrade"), Local Vector Of(Vector(-270.500,
- 0, 46), Event Player, Rotation), 1.250, Clip Against Surfaces, Visible To Position and String, Color(Yellow),
- Default Visibility);
- "XP To Coins"
- Global.XPToGoldPos = Vector(-153, -3.410, -86);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.XPToGoldPos, 3, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Convert level up points to coins | 1:15 (reload to convert all)",
- Global.XPPumpPos), Vector(X Component Of(Global.XPToGoldPos), Y Component Of(Global.XPToGoldPos) + 1, Z Component Of(
- Global.XPToGoldPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Generator 1"
- Global.Gen1Pos = Vector(-203, 0, -22);
- Create Effect(All Players(All Teams), Ring, Color(Orange), Global.Gen1Pos, 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Generator (Coins)"), Vector(X Component Of(Global.Gen1Pos),
- Y Component Of(Global.Gen1Pos) + 1, Z Component Of(Global.Gen1Pos)), 1, Clip Against Surfaces, Visible To Position and String,
- Color(Green), Default Visibility);
- "Generator 2"
- Global.Gen2Pos = Vector(-215, 0, -10);
- Create Effect(All Players(All Teams), Ring, Color(Orange), Global.Gen2Pos, 2, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Generator (Coins)"), Vector(X Component Of(Global.Gen2Pos),
- Y Component Of(Global.Gen2Pos) + 1, Z Component Of(Global.Gen2Pos)), 1, Clip Against Surfaces, Visible To Position and String,
- Color(Green), Default Visibility);
- "xp shop"
- Global.DamageBuyPos = Vector(-266.500, -1.300, 50.250);
- Create Effect(All Players(All Teams), Ring, Color(Red), Global.DamageBuyPos, 1, Visible To Position and Radius);
- Global.HealthBuyPos = Vector(-268, -1.300, 47);
- Create Effect(All Players(All Teams), Ring, Color(Green), Global.HealthBuyPos, 1, Visible To Position and Radius);
- Global.DefenseBuyPos = Vector(-272, -1.300, 49.500);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.DefenseBuyPos, 1, Visible To Position and Radius);
- Global.SpeedBuyPos = Vector(-270, -1.300, 52);
- Create Effect(All Players(All Teams), Ring, Color(White), Global.SpeedBuyPos, 1, Visible To Position and Radius);
- Global.HeroChangePos = Vector(-284.500, -3.300, 44);
- Create In-World Text(All Players(All Teams), Custom String("Change Hero"), Vector(X Component Of(Global.HeroChangePos),
- Y Component Of(Global.HeroChangePos) + 1, Z Component Of(Global.HeroChangePos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.HeroChangePos, 1.250, Visible To Position and Radius);
- Global.BloodCrystalPos = Vector(-258.030, -4.730, 12.730);
- Create Effect(All Players(All Teams), Ring, Color(Red), Global.BloodCrystalPos, 3, Visible To Position and Radius);
- Create Effect(All Players(All Teams), Orb, Color(Red), Vector(X Component Of(Global.BloodCrystalPos), Y Component Of(
- Global.BloodCrystalPos) + 3, Z Component Of(Global.BloodCrystalPos)), 0.200, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Blood Crystal ", Icon String(Arrow: Down)), Vector(X Component Of(
- Global.BloodCrystalPos), Global.BloodCrystalPos + -0.500, Z Component Of(Global.BloodCrystalPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Bank Deposit"
- Global.BankDepositPos = Vector(-279, -3.300, 49);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BankDepositPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Deposit (reload to deposit all)"), Vector(X Component Of(
- Global.BankDepositPos), Y Component Of(Global.BankDepositPos) + 1, Z Component Of(Global.BankDepositPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Bank Withdraw"
- Global.BankWithdrawPos = Vector(-281.600, -3.300, 51);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BankWithdrawPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Withdraw (reload to withdraw all)"), Vector(X Component Of(
- Global.BankWithdrawPos), Y Component Of(Global.BankWithdrawPos) + 1, Z Component Of(Global.BankWithdrawPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "XP Pump"
- Global.XPPumpPos = Vector(-179.380, -4.740, -66.060);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.XPPumpPos, 5, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("XP Pump (4 XP/s)"), Vector(X Component Of(Global.XPPumpPos),
- Y Component Of(Global.XPPumpPos) + 3, Z Component Of(Global.XPPumpPos)), 0.900, Clip Against Surfaces,
- Visible To Position and String, Color(Yellow), Default Visibility);
- Create Beam Effect(All Players(All Teams), Good Beam, Global.XPPumpPos, Vector(X Component Of(Global.XPPumpPos), Y Component Of(
- Global.XPPumpPos) + 3, Z Component Of(Global.XPPumpPos)), Color(White), Visible To Position and Radius);
- "Regen"
- Global.RegenBuyPos = Vector(-275.350, -5, 24.450);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.RegenBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Regen | +0.1% max health per second (currently {0}%, 3000 coins)",
- Local Player.Regen * 100), Vector(X Component Of(Global.RegenBuyPos), Y Component Of(Global.RegenBuyPos) + 1, Z Component Of(
- Global.RegenBuyPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Stun"
- Global.StunBuyPos = Vector(-273.390, -5, 26.840);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.StunBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Stun Bullets | >40 damage attacks have 15% chance to stun (3000 coins)"), Vector(X Component Of(Global.StunBuyPos),
- Y Component Of(Global.StunBuyPos) + 1, Z Component Of(Global.StunBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Yellow), Default Visibility);
- "landmark"
- Create Icon(All Players(All Teams), Vector(X Component Of(Global.ChanceWheelPos), Y Component Of(Global.ChanceWheelPos) + 2,
- Z Component Of(Global.ChanceWheelPos)), Question Mark, Visible To and Position, Color(Orange), True);
- "Double shot"
- Global.DoubleShotBuyPos = Vector(-271.790, -5, 28.930);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.DoubleShotBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Double Shot | 25% chance to deal damage twice (6000 coins)"), Vector(
- X Component Of(Global.DoubleShotBuyPos), Y Component Of(Global.DoubleShotBuyPos) + 1, Z Component Of(Global.DoubleShotBuyPos)),
- 1, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Bank interest"
- Global.InterestBuyPos = Vector(-273.520, -5, 22.960);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.InterestBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Bank Interest | +1% per 2 minutes (200 coins)"), Vector(X Component Of(
- Global.InterestBuyPos), Y Component Of(Global.InterestBuyPos) + 1, Z Component Of(Global.InterestBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Corrosive"
- Global.CorrosiveBuyPos = Vector(-271.610, -5, 25.430);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.CorrosiveBuyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Corrosive | >60 damage attacks apply poison, dealing damage over time (10000 coins)"), Vector(X Component Of(
- Global.CorrosiveBuyPos), Y Component Of(Global.CorrosiveBuyPos) + 1, Z Component Of(Global.CorrosiveBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Starting Money"
- Global.StartingMoney = Workshop Setting Integer(Custom String("Starting"), Custom String("Money"), 500, 0, 15000, 0);
- "Tenacity"
- Global.TenacityPos = Vector(-270, -5, 27.450);
- Create Effect(All Players(All Teams), Ring, Color(Blue), Global.TenacityPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Tenacity | Heal 10% max health on kill (7500 coins)"), Vector(
- X Component Of(Global.TenacityPos), Y Component Of(Global.TenacityPos) + 1, Z Component Of(Global.TenacityPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Contracts"
- Global.ContractPosition = Vector(-261.020, -5.090, 28.260);
- Create Effect(All Players(All Teams), Ring, Color(White), Global.ContractPosition, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("New kill contract (7 second cooldown)"), Vector(X Component Of(
- Global.ContractPosition), Y Component Of(Global.ContractPosition) + 1, Z Component Of(Global.ContractPosition)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Disabler"
- Disable Built-In Game Mode Music;
- Disable Built-In Game Mode Scoring;
- Disable Built-In Game Mode Completion;
- "The Dark Shop"
- Global.DarkShopPos = Vector(-278, -3.300, 39.500);
- Create In-World Text(All Players(All Teams), Custom String("The Dark Shop (resets)"), Vector(X Component Of(Global.DarkShopPos),
- Y Component Of(Global.DarkShopPos) + 1, Z Component Of(Global.DarkShopPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Violet), Default Visibility);
- Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.DarkShopPos, 1, Visible To Position and Radius);
- "The Dark Shop Teleport Out"
- Global.DarkShopOutPos = Vector(-293.450, -4.180, 49.720);
- Create In-World Text(All Players(All Teams), Custom String("Teleport Out"), Vector(X Component Of(Global.DarkShopOutPos),
- Y Component Of(Global.DarkShopOutPos) + 1, Z Component Of(Global.DarkShopOutPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Violet), Default Visibility);
- Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.DarkShopOutPos, 1, Visible To Position and Radius);
- "Reset"
- Global.ResetPos = Vector(-312.970, -3.960, 62.560);
- Create Effect(All Players(All Teams), Ring, Color(Purple), Global.ResetPos, 1, Visible To Position and Radius);
- Global.ResetPoints = Workshop Setting Integer(Custom String("Resetting"), Custom String("Points On Reset"), 100, 0, 1500, 0);
- Global.ResetLevel = Workshop Setting Integer(Custom String("Resetting"), Custom String("Minimum Level"), 0, 30, 400, 0);
- Create In-World Text(All Players(All Teams), Custom String("Reset! (Level {0})", Global.ResetLevel), Vector(X Component Of(
- Global.ResetPos), Y Component Of(Global.ResetPos) + 2, Z Component Of(Global.ResetPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Orange), Default Visibility);
- Create In-World Text(All Players(All Teams), Custom String(
- "Upon resetting, all your stats will reset and you will gain {0} Dark Points.", Global.ResetPoints), Vector(X Component Of(
- Global.ResetPos), Y Component Of(Global.ResetPos) + 1.500, Z Component Of(Global.ResetPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Orange), Default Visibility);
- "Wheel Of Chance"
- Global.ChanceWheelPos = Vector(-141.770, -1.410, -75.370);
- Create In-World Text(All Players(All Teams), Custom String("Wheel Of Chance (Level 15, 500 coins)"), Vector(X Component Of(
- Global.ChanceWheelPos), Y Component Of(Global.ChanceWheelPos) + 1, Z Component Of(Global.ChanceWheelPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- Create Effect(All Players(All Teams), Ring, Color(Purple), Global.ChanceWheelPos, 2, Visible To Position and Radius);
- "Heal Bubble"
- Global.HealBubblePos = Vector(-218.900, 0, -26.950);
- Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.HealBubblePos, 2, Visible To Position and Radius);
- Create Icon(All Players(All Teams), Vector(X Component Of(Global.HealBubblePos), Y Component Of(Global.HealBubblePos) + 2.500,
- Z Component Of(Global.HealBubblePos)), Heart, Visible To and Position, Color(Red), True);
- "Money to dark"
- Global.MoneyToDarkPos = Vector(-314.250, -3.960, 60.750);
- Create Effect(All Players(All Teams), Ring, Color(Purple), Global.MoneyToDarkPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Money To Dark Points | 100k to 20"), Vector(X Component Of(
- Global.MoneyToDarkPos), Y Component Of(Global.MoneyToDarkPos) + 1, Z Component Of(Global.MoneyToDarkPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Purple), Default Visibility);
- "Dark Points Burning"
- Global.DarkPointsBurning = Vector(-311.770, -3.960, 64.490);
- Create Effect(All Players(All Teams), Ring, Color(Purple), Global.DarkPointsBurning, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Burn dark points for coins (1:20)"), Vector(X Component Of(
- Global.DarkPointsBurning), Y Component Of(Global.DarkPointsBurning) + 1, Z Component Of(Global.DarkPointsBurning)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Green), Default Visibility);
- "Strength Training"
- Global.StrengthTrainingPos = Vector(-190, 1, -3.290);
- Create Effect(All Players(All Teams), Ring, Color(Orange), Global.StrengthTrainingPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Strength Training (Level 5)"), Vector(X Component Of(
- Global.StrengthTrainingPos), Y Component Of(Global.StrengthTrainingPos) + 1, Z Component Of(Global.StrengthTrainingPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Green), Default Visibility);
- Create Icon(All Players(All Teams), Vector(X Component Of(Global.StrengthTrainingPos), Y Component Of(Global.StrengthTrainingPos)
- + 2, Z Component Of(Global.StrengthTrainingPos)), Diamond, Visible To and Position, Color(Orange), True);
- "One Shot"
- Global.OneShotPos = Vector(-304.300, -4.300, 64.710);
- Create Effect(All Players(All Teams), Ring, Color(Rose), Global.OneShotPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("One Shot | Kill and die in 1 shot."), Vector(X Component Of(
- Global.OneShotPos), Y Component Of(Global.OneShotPos) + 1, Z Component Of(Global.OneShotPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Dark Classes"
- Global.DarkClassesPos = Vector(-303, -4.180, 60);
- Create Effect(All Players(All Teams), Ring, Color(Violet), Global.DarkClassesPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Unlock Dark Classes (1500 dark points)"), Vector(X Component Of(
- Global.DarkClassesPos), Y Component Of(Global.DarkClassesPos) + 1, Z Component Of(Global.DarkClassesPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Ghost"
- Global.GhostPos = Vector(-302.720, -4.300, 63.490);
- Create Effect(All Players(All Teams), Ring, Color(White), Global.GhostPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Ghost | Become invisible but deal 1% damage"), Vector(X Component Of(
- Global.GhostPos), Y Component Of(Global.GhostPos) + 1, Z Component Of(Global.GhostPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Troll"
- Global.TrollPos = Vector(-300.740, -4.300, 62.220);
- Create Effect(All Players(All Teams), Ring, Color(Green), Global.TrollPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Troll | Deal 1% damage but take 50% less and gain special abilities (f + r to toggle ability)"), Vector(X Component Of(
- Global.TrollPos), Y Component Of(Global.TrollPos) + 1, Z Component Of(Global.TrollPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Billionaire"
- Global.BillionairePos = Vector(-298.470, -4.300, 61);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.BillionairePos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Billionaire | Deal 2x damage but each hit costs 1000 coins"), Vector(
- X Component Of(Global.BillionairePos), Y Component Of(Global.BillionairePos) + 1, Z Component Of(Global.BillionairePos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Angel Perk"
- Global.AngelPos = Vector(-314.110, -4.300, 54.520);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.AngelPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Angel | Pacifist class gains flight (300 dark points)"), Vector(
- X Component Of(Global.AngelPos), Y Component Of(Global.AngelPos) + 1, Z Component Of(Global.AngelPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Dark XP Boost Perk"
- Global.DarkXPBoostPos = Vector(-311.950, -4.300, 53.100);
- Create Effect(All Players(All Teams), Ring, Color(Yellow), Global.DarkXPBoostPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Dark XP Boost | +1% permanent xp multiplier (25 dark points)",
- Event Player.XPMultiplier * 100), Vector(X Component Of(Global.DarkXPBoostPos), Y Component Of(Global.DarkXPBoostPos) + 1,
- Z Component Of(Global.DarkXPBoostPos)), 1, Clip Against Surfaces, Visible To Position and String, Color(White),
- Default Visibility);
- "Berserkerer"
- Global.BerserkererPos = Vector(-296.630, -4.300, 59.730);
- Create Effect(All Players(All Teams), Ring, Color(Red), Global.BerserkererPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Berserkerer | Deal 2.5x and take 3x damage"), Vector(X Component Of(
- Global.BerserkererPos), Y Component Of(Global.BerserkererPos) + 1, Z Component Of(Global.BerserkererPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- End;
- "Empty"
- Global.EmptyPos = Vector(-280.430, -3.300, 34.290);
- Create Effect(All Players(All Teams), Ring, Color(Gray), Global.EmptyPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Empty | Deal +0% damage and receive 0% less"), Vector(X Component Of(
- Global.EmptyPos), Y Component Of(Global.EmptyPos) + 1, Z Component Of(Global.EmptyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Helper"
- Global.HelperPos = Vector(-306.040, -4.300, 66.020);
- Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.HelperPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Helper | Heal and give coins and xp (to others) on attack. Take -90% damage"), Vector(X Component Of(Global.HelperPos),
- Y Component Of(Global.HelperPos) + 1, Z Component Of(Global.HelperPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Lifesteal"
- Global.LifestealPos = Vector(-305.680, -4.300, 48.710);
- Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.LifestealPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String(
- "Lifesteal | +0.1% (currently {0}%) of damage dealt (50 dark, 10 level up points)", Local Player.Lifesteal), Vector(
- X Component Of(Global.LifestealPos), Y Component Of(Global.LifestealPos) + 1, Z Component Of(Global.LifestealPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Third Person"
- Global.ThirdPersonPos = Vector(-279.140, -3.300, 42.580);
- Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.ThirdPersonPos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Toggle third person"), Vector(X Component Of(Global.ThirdPersonPos),
- Y Component Of(Global.ThirdPersonPos) + 1, Z Component Of(Global.ThirdPersonPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Spectate"
- Global.SpectatePos = Vector(-281.160, -3.300, 39.550);
- Create Effect(All Players(All Teams), Ring, Color(Sky Blue), Global.SpectatePos, 1, Visible To Position and Radius);
- Create In-World Text(All Players(All Teams), Custom String("Spectate"), Vector(X Component Of(Global.SpectatePos), Y Component Of(
- Global.SpectatePos) + 1, Z Component Of(Global.SpectatePos)), 1, Clip Against Surfaces, Visible To Position and String, Color(
- White), Default Visibility);
- }
- }
- rule("Call Spawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.HudDone != True;
- }
- actions
- {
- Call Subroutine(Spawn);
- }
- }
- rule("Spawn")
- {
- event
- {
- Subroutine;
- Spawn;
- }
- actions
- {
- disabled Create HUD Text(Event Player, Custom String("{1} Level Up Points: {0}", Event Player.LevelUpPoints, Icon String(Happy)), Null,
- Null, Right, 0, Color(Sky Blue), Color(White), Color(White), Visible To and String, Default Visibility);
- disabled Create HUD Text(Event Player, Custom String("{1} Coins: {0}", Event Player.Money, Icon String(Diamond)), Null, Null, Right, 0,
- Color(Yellow), Color(White), Color(White), Visible To and String, Default Visibility);
- disabled Disable Built-In Game Mode Respawning(Event Player);
- Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Event Player.Level, Round To Integer(
- Max Health(Event Player), To Nearest), Event Player.ClassName), Event Player, 1.200, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Event Player.ClassText = Last Text ID;
- disabled Create Progress Bar HUD Text(Event Player, Event Player.XP, Custom String("Level: {0}", Event Player.Level), Left, 100, Color(
- Aqua), Color(White), Visible To Values and Color, Default Visibility);
- disabled Create HUD Text(Event Player, Null, Null, Custom String("Killstreak: {0} \r\nFlight: {1}s \r\nContract: {2}",
- Event Player.Killstreak, Event Player.Flight, Event Player.ContractText), Top, 10, Color(White), Color(Green), Color(Green),
- Visible To and String, Default Visibility);
- Event Player.Health = 100;
- Event Player.Speed = 100;
- Event Player.DamageTaken = 100;
- Event Player.Damage = 100;
- Event Player.ClassName = Custom String("None");
- disabled Create HUD Text(Event Player, Custom String("Class: {0} \r\nMoney: {1} \r\nLevel Up Points: {2}", Event Player.ClassName,
- Event Player.Money, Event Player.LevelUpPoints), Null, Null, Right, -101, Color(Aqua), Color(White), Color(Aqua),
- Visible To and String, Default Visibility);
- "needs event player"
- disabled If(Global.Setup != True);
- disabled Create In-World Text(Event Player, Custom String("Speed ({0}) (F + R to decrease speed)", Event Player.Speed), Vector(
- X Component Of(Global.SpeedBuyPos), Y Component Of(Global.SpeedBuyPos) + 1, Z Component Of(Global.SpeedBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- disabled Create In-World Text(Event Player, Custom String("Damage ({0})", Event Player.Damage), Vector(X Component Of(Global.DamageBuyPos),
- Y Component Of(Global.DamageBuyPos) + 1, Z Component Of(Global.DamageBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- disabled Create In-World Text(Event Player, Custom String("Health ({0}%)", Event Player.Health), Vector(X Component Of(Global.HealthBuyPos),
- Y Component Of(Global.HealthBuyPos) + 1, Z Component Of(Global.HealthBuyPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- disabled Create In-World Text(Event Player, Custom String("Defence ({0}% Damage)", Event Player.DamageTaken), Vector(X Component Of(
- Global.DefenseBuyPos), Y Component Of(Global.DefenseBuyPos) + 1, Z Component Of(Global.DefenseBuyPos)), 1,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "scale up"
- Global.ScaleUpPos = Vector(-267.750, -5.070, 30.230);
- disabled Create Effect(Event Player, Ring, Color(Yellow), Global.ScaleUpPos, 1, Visible To Position and Radius);
- disabled Create In-World Text(Event Player, Custom String("Scale up | 20 coins ({0}%)", Event Player.Scale * 100), Vector(X Component Of(
- Global.ScaleUpPos), Y Component Of(Global.ScaleUpPos) + 1, Z Component Of(Global.ScaleUpPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "scale down"
- Global.ScaleDownPos = Vector(-265, -5.050, 34);
- disabled Create Effect(Event Player, Ring, Color(Yellow), Global.ScaleDownPos, 1, Visible To Position and Radius);
- disabled Create In-World Text(Event Player, Custom String("Scale down | 20 coins ({0}%)", Event Player.Scale * 100), Vector(X Component Of(
- Global.ScaleDownPos), Y Component Of(Global.ScaleDownPos) + 1, Z Component Of(Global.ScaleDownPos)), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- disabled Create In-World Text(Event Player, Custom String("Bank | ${0} ({1}% interest)", Event Player.Bank, Event Player.Interest * 100),
- Vector(-280, -1, 50), 1.150, Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- disabled Global.Setup = True;
- disabled End;
- Event Player.Money = Global.StartingMoney;
- Event Player.Scale = 1;
- Start Scaling Player(Event Player, Event Player.Scale, True);
- disabled Create HUD Text(Event Player, Null, Null, Custom String("Contract: {0}", Event Player.ContractText), Top, 9, Color(White), Color(
- Green), Color(Green), Visible To and String, Default Visibility);
- Event Player.LevelUpPoints = Workshop Setting Integer(Custom String("Starting"), Custom String("Level Up Points"), 0, 0, 200, 0);
- disabled Create In-World Text(Event Player, Custom String("Dark Points: {0} | XP Boost: {1}%", Event Player.DarkPoints,
- Event Player.XPMultiplier * 100, Custom String("Magic Regen: {1}% Max HP/s | Dark Lifesteal: {2}% Damage dealt", Null,
- Event Player.DarkRegen, Event Player.Lifesteal)), Vector(-301.700, -2, 55.080), 1, Clip Against Surfaces,
- Visible To Position and String, Color(Purple), Default Visibility);
- Event Player.ContractText = Custom String("None");
- Event Player.XPMultiplier = Workshop Setting Real(Custom String("Starting"), Custom String("XP Multiplier"), 1, 1, 100, 0);
- disabled Create HUD Text(Event Player, Custom String(""), Custom String("", Event Player.Flight), Custom String("Flight: {0}s",
- Event Player.Flight), Top, 11, Color(White), Color(White), Color(Yellow), Visible To and String, Default Visibility);
- Event Player.HudDone = True;
- }
- }
- rule("Leaving bubble")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) > 26;
- Is Dummy Bot(Event Player) != True;
- }
- actions
- {
- If(Event Player.HasClass != True);
- Teleport(Event Player, Global.GlobalSpawn);
- Small Message(Event Player, Custom String("Choose a class first! Look around before leaving."));
- Else;
- Small Message(Event Player, Custom String("Leaving safe zone."));
- Clear Status(Event Player, Phased Out);
- Allow Button(Event Player, Button(Primary Fire));
- Allow Button(Event Player, Button(Secondary Fire));
- Allow Button(Event Player, Button(Ultimate));
- Allow Button(Event Player, Button(Melee));
- Allow Button(Event Player, Button(Ability 1));
- Allow Button(Event Player, Button(Ability 2));
- Stop All Heal Over Time(Event Player);
- disabled Clear Status(Event Player, Hacked);
- End;
- }
- }
- rule("Entering bubble")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) < 26;
- Is Dummy Bot(Event Player) != True;
- }
- actions
- {
- Set Status(Event Player, Null, Phased Out, 9999);
- Disallow Button(Event Player, Button(Primary Fire));
- Disallow Button(Event Player, Button(Secondary Fire));
- Disallow Button(Event Player, Button(Ultimate));
- disabled Disallow Button(Event Player, Button(Melee));
- Disallow Button(Event Player, Button(Ability 1));
- Disallow Button(Event Player, Button(Ability 2));
- Start Heal Over Time(Event Player, Event Player, 9999, 20);
- If(Event Player.Killstreak > 0);
- Event Player.Killstreak = 0;
- Small Message(Event Player, Custom String("Killstreak reset for entering spawn."));
- }
- }
- rule("On Damage")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Victim != Event Player;
- }
- actions
- {
- Destroy In-World Text(Victim.LastTextDamage);
- If(Event Was Critical Hit == False);
- Create In-World Text(Event Player, Round To Integer(Event Damage, Up), Vector(X Component Of(Eye Position(Victim)), Y Component Of(
- Eye Position(Victim)) + 0.350, Z Component Of(Eye Position(Victim))), 1.500, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Victim.LastTextDamage = Last Text ID;
- Else If(Event Was Critical Hit == True);
- Create In-World Text(Event Player, Round To Integer(Event Damage, Up), Vector(X Component Of(Eye Position(Victim)), Y Component Of(
- Eye Position(Victim)) + 0.350, Z Component Of(Eye Position(Victim))), 1.500, Clip Against Surfaces,
- Visible To Position and String, Color(Yellow), Default Visibility);
- Victim.LastTextDamage = Last Text ID;
- End;
- Event Player.XP += Min(Random Real(Event Damage * 0.060, Event Damage * 0.100), 30) * Event Player.XPMultiplier;
- If(Event Player.Farmer == True);
- Heal(Event Player, Null, Event Damage * 0.300);
- }
- }
- rule("Remove damage text")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- actions
- {
- Wait(1, Restart When True);
- Destroy In-World Text(Event Player.LastTextDamage);
- }
- }
- rule("death")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- actions
- {
- Destroy In-World Text(Event Player.LastTextDamage);
- disabled If(Event Player.Killstreak >= 10);
- disabled Event Player.XP += 200;
- disabled Small Message(All Players(All Teams), Custom String("+200 xp for high streak"));
- disabled If(Event Player.Killstreak >= 15);
- disabled Small Message(All Players(All Teams), Custom String("+300 xp for high streak"));
- disabled Event Player.XP += 300;
- disabled If(Event Player.Killstreak >= 20);
- disabled Small Message(All Players(All Teams), Custom String("+500 xp for high streak"));
- disabled Event Player.XP += 500;
- disabled End;
- Event Player.Killstreak = 0;
- Event Player.Poison = 0;
- Clear Status(Event Player, Invincible);
- }
- }
- rule("Berserker Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.BerserkerBuyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Berserker != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Berserker class selected."));
- Event Player.Berserker = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Berserker = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Berserker class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Berserker");
- }
- }
- rule("Pacifist Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.PacifistBuyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Pacifist != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Pacifist class selected."));
- Event Player.Pacifist = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Pacifist = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Pacifist class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- If(Event Player.Angel == False);
- Event Player.ClassName = Custom String("Pacifist");
- Else;
- Event Player.ClassName = Custom String("Angel");
- }
- }
- rule("respawn")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- actions
- {
- Wait Until(Is Alive(Event Player) == True, 99999);
- Wait(0.016, Ignore Condition);
- Teleport(Event Player, Vector(0, 400, 0));
- Wait(0.016, Ignore Condition);
- Teleport(Event Player, Global.GlobalSpawn);
- }
- }
- rule("Level Up")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.XP >= 100;
- }
- actions
- {
- Event Player.LevelUpPoints += 1 * Event Player.Level + 10;
- Small Message(Event Player, Custom String("{0} Level Up", Icon String(Checkmark)));
- Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 100);
- Play Effect(Event Player, Good Explosion, Color(White), Event Player, 10);
- Event Player.XP -= 100;
- Event Player.Level += 1;
- Set Player Score(Event Player, Event Player.Level);
- Wait(1, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("On Kill")
- {
- event
- {
- Player Dealt Final Blow;
- All;
- All;
- }
- conditions
- {
- Event Player != Victim;
- }
- actions
- {
- Event Player.XPKillReward = Random Real(25, 35) * Event Player.XPMultiplier;
- Small Message(Event Player, Custom String("+{0} xp", Event Player.XPKillReward));
- Event Player.XP += Event Player.XPKillReward;
- Event Player.Killstreak += 1;
- Small Message(Victim, Custom String("-{0} coins (-20%)", Round To Integer(Victim.Money * 0.200, To Nearest) * 1));
- Small Message(Event Player, Custom String("+{0} coins", Round To Integer(Victim.Money * 0.200, To Nearest) + 50));
- Event Player.Money += Round To Integer(Victim.Money * 0.200, To Nearest) + 50;
- Victim.Money -= Round To Integer(Victim.Money * 0.200, To Nearest);
- If(Event Player.Tenacity == True);
- Heal(Event Player, Null, Max Health(Event Player) * 0.100);
- End;
- If(Global.XPKillEvent == True);
- Small Message(Event Player, Custom String("+{0} extra xp", Event Player.XPMultiplier * 70));
- Event Player.XP += 70 * Event Player.XPMultiplier;
- End;
- If(Victim.Bounty > 1);
- Small Message(Event Player, Custom String("+{0} coins for claiming bounty.", Victim.Bounty));
- Small Message(Victim, Custom String("Bounty cleared"));
- Event Player.Money += Victim.Bounty;
- Wait(0.016, Ignore Condition);
- Victim.Bounty = 0;
- }
- }
- rule("Pacifist's passive XP")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Event Player.Pacifist == True;
- Distance Between(Position Of(Event Player), Global.GlobalSpawn) >= 26;
- Has Status(Event Player, Invincible) == False;
- }
- actions
- {
- Wait(1, Ignore Condition);
- Event Player.XP += 1 * Event Player.XPMultiplier;
- Loop If Condition Is True;
- }
- }
- rule("Jump pad")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Vector(-250, -3, 40), Position Of(Event Player)) <= 1;
- }
- actions
- {
- Apply Impulse(Event Player, Up, 12, To Player, Cancel Contrary Motion);
- }
- }
- rule("Farmer Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.FarmerBuyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Farmer != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Farmer class selected."));
- Event Player.Farmer = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Farmer = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Farmer class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Farmer");
- Event Player.XPMultiplier += 0.500;
- }
- }
- rule("Gladiator Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.GladiatorBuyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Gladiator != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Gladiator class selected."));
- Event Player.Gladiator = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Gladiator = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Gladiator class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Gladiator");
- }
- }
- rule("Lightweight Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.LightBuyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Lightweight != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Lightweight class selected."));
- Event Player.Lightweight = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Lightweight = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Lightweight class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Lightweight");
- }
- }
- rule("Default values")
- {
- event
- {
- Subroutine;
- Default;
- }
- actions
- {
- If(Event Player.HasClass == False);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage);
- Set Max Health(Event Player, Event Player.Health);
- Else If(Event Player.Berserker == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken * 1.400);
- Set Damage Dealt(Event Player, Event Player.Damage * 1.400);
- Set Max Health(Event Player, Event Player.Health);
- Else If(Event Player.Pacifist == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken * 0.250);
- Set Damage Dealt(Event Player, Event Player.Damage * 0.100);
- Set Max Health(Event Player, Event Player.Health);
- Else If(Event Player.Farmer == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage * 0.750);
- Set Max Health(Event Player, Event Player.Health);
- Else If(Event Player.Gladiator == True);
- Set Move Speed(Event Player, Event Player.Speed * 0.750);
- Set Damage Received(Event Player, Event Player.DamageTaken * 0.750);
- Set Damage Dealt(Event Player, Event Player.Damage * 1.100);
- Set Max Health(Event Player, Event Player.Health);
- Else If(Event Player.Lightweight == True);
- Set Move Speed(Event Player, Event Player.Speed * 1.600);
- Set Damage Received(Event Player, Event Player.DamageTaken * 1.200);
- Set Damage Dealt(Event Player, Event Player.Damage);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Lightweight == True);
- Set Gravity(Event Player, 75);
- Set Jump Vertical Speed(Event Player, 125);
- Else;
- Set Jump Vertical Speed(Event Player, 100);
- Set Gravity(Event Player, 100);
- End;
- If(Event Player.OneShot == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Ghost == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Troll == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken * 0.500);
- Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Billionaire == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- If(Event Player.Money >= 1000);
- Set Damage Dealt(Event Player, Event Player.Damage * 2);
- Else;
- Set Damage Dealt(Event Player, Event Player.Damage);
- End;
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Berserkerer == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken * 3);
- Set Damage Dealt(Event Player, Event Player.Damage * 2.500);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.OneShot == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Empty == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken);
- Set Damage Dealt(Event Player, Event Player.Damage);
- Set Max Health(Event Player, Event Player.Health);
- End;
- If(Event Player.Helper == True);
- Set Move Speed(Event Player, Event Player.Speed);
- Set Damage Received(Event Player, Event Player.DamageTaken * 0.100);
- Set Damage Dealt(Event Player, Event Player.Damage * 0.010);
- Set Max Health(Event Player, Event Player.Health);
- End;
- }
- }
- rule("Pacifist Regen")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Pacifist == True;
- Distance Between(Position Of(Event Player), Vector(-280, -3.300, 40)) > 20;
- }
- actions
- {
- Heal(Event Player, Null, Max Health(Event Player) * 0.020);
- Wait(1, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("set values")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) != True;
- }
- actions
- {
- Call Subroutine(Default);
- Wait(1, Ignore Condition);
- Loop;
- }
- }
- rule("Class Purge")
- {
- event
- {
- Subroutine;
- ClassPurge;
- }
- actions
- {
- If(Event Player.Ghost == True);
- Create In-World Text(All Players(All Teams), Custom String("Class: {2} | Level {0}", Event Player.Level, Round To Integer(
- Max Health(Event Player), To Nearest), Event Player.ClassName), Event Player, 1.200, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- Event Player.ClassText = Last Text ID;
- Set Invisible(Event Player, None);
- End;
- If(Event Player.Farmer == True);
- Event Player.XPMultiplier -= 0.500;
- End;
- Event Player.Berserker = False;
- Event Player.Pacifist = False;
- Event Player.Farmer = False;
- Event Player.Lightweight = False;
- Event Player.Gladiator = False;
- Event Player.OneShot = False;
- Event Player.Ghost = False;
- Event Player.Troll = False;
- Event Player.Billionaire = False;
- Event Player.Berserkerer = False;
- Event Player.Empty = False;
- Event Player.Helper = False;
- Event Player.ClassName = Custom String("None (waiting to change)");
- }
- }
- rule("Event")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.EventType == 0;
- }
- actions
- {
- Wait(Random Real(120, 210), Abort When False);
- Global.EventType = Random Integer(1, 7);
- Call Subroutine(Events);
- }
- }
- rule("EventSubroutine")
- {
- event
- {
- Subroutine;
- Events;
- }
- actions
- {
- If(Global.EventType == 1);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Global.EventType = 22222222;
- Wait(5, Ignore Condition);
- Global.EventType = 1;
- Big Message(All Players(All Teams), Custom String("Next person to die earns a reward"));
- Else If(Global.EventType == 2);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("+30 Level Up Points for all"));
- All Players(All Teams).LevelUpPoints += 30;
- Global.EventType = 0;
- Else If(Global.EventType == 3);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Generators work 20x better for 30 seconds"));
- Global.Overflow = True;
- Wait(30, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Event Over"));
- Global.EventType = 0;
- Global.Overflow = False;
- Else If(Global.EventType == 4);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Standing still will deal damage for 15 seconds"));
- Global.MoveOrDie = True;
- Wait(15, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Event Over"));
- Global.EventType = 0;
- Global.MoveOrDie = False;
- Else If(Global.EventType == 5);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Gain +70 xp per kill for 40 seconds"));
- Global.XPKillEvent = True;
- Wait(40, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Event Over"));
- Global.EventType = 0;
- Global.XPKillEvent = False;
- Else If(Global.EventType == 6);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Next person to kill will earn a reward"));
- Global.NextToKill = True;
- Else If(Global.EventType == 7);
- Big Message(All Players(All Teams), Custom String("Event Starting..."));
- Wait(5, Ignore Condition);
- Big Message(All Players(All Teams), Custom String("Reward Orb Spawning, press f to collect..."));
- Call Subroutine(RewardOrb);
- }
- }
- rule("Self kill Event")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Global.EventType == 1;
- }
- actions
- {
- Big Message(All Players(All Teams), Custom String("{0} won the event!", Event Player));
- Event Player.Money += 1000;
- Event Player.XP += 200;
- Small Message(Event Player, Custom String("+1000 coins, +200 xp"));
- Global.EventType = 0;
- }
- }
- rule("Generator 1")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.Gen1Pos) <= 2;
- }
- actions
- {
- If(Global.Overflow != True);
- Wait(3, Abort When False);
- Event Player.RandomGenerator = Random Integer(8, 20);
- Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator));
- Event Player.Money += Event Player.RandomGenerator;
- Loop If Condition Is True;
- Else If(Global.Overflow == True);
- Wait(3, Abort When False);
- Event Player.RandomGenerator = Random Integer(8, 20);
- Event Player.Money += Event Player.RandomGenerator * 20;
- Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator * 20));
- Loop If Condition Is True;
- }
- }
- rule("Generator 2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.Gen2Pos) <= 2;
- }
- actions
- {
- If(Global.Overflow != True);
- Wait(3, Abort When False);
- Event Player.RandomGenerator = Random Integer(8, 20);
- Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator));
- Event Player.Money += Event Player.RandomGenerator;
- Loop If Condition Is True;
- Else If(Global.Overflow == True);
- Wait(3, Abort When False);
- Event Player.RandomGenerator = Random Integer(8, 20);
- Event Player.Money += Event Player.RandomGenerator * 20;
- Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomGenerator * 20));
- Loop If Condition Is True;
- }
- }
- rule("Health Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Distance Between(Event Player, Global.HealthBuyPos) <= 1;
- Event Player.LevelUpPoints >= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.Health < 1000);
- Event Player.LevelUpPoints -= 1;
- Event Player.Health += 1;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- Else;
- Small Message(Event Player, Custom String("Max Health!"));
- }
- }
- rule("Defence Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.DefenseBuyPos) <= 1;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.LevelUpPoints >= 1;
- }
- actions
- {
- If(Event Player.DamageTaken > 40);
- Event Player.LevelUpPoints -= 1;
- Event Player.DamageTaken -= 0.100;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- Else;
- Small Message(Event Player, Custom String("Max Defence!"));
- }
- }
- rule("Damage Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.DamageBuyPos) <= 1;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.LevelUpPoints >= 1;
- }
- actions
- {
- If(Event Player.Damage < 1000);
- Event Player.LevelUpPoints -= 1;
- Event Player.Damage += 1;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- Else;
- Small Message(Event Player, Custom String("Max Damage!"));
- }
- }
- rule("Speed Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.SpeedBuyPos) <= 1;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.LevelUpPoints >= 1;
- }
- actions
- {
- If(Event Player.Speed < 700);
- Event Player.Speed += 1;
- Event Player.LevelUpPoints -= 1;
- Else;
- Small Message(Event Player, Custom String("Max Speed!"));
- End;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Speed Reset")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.SpeedBuyPos) <= 1;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Reload)) == True;
- Event Player.Speed > 100;
- }
- actions
- {
- Event Player.LevelUpPoints += Event Player.Speed - 100;
- Event Player.Speed = 100;
- Small Message(Event Player, Custom String("Reset speed"));
- }
- }
- rule("Killstreak Announcements")
- {
- event
- {
- Player Dealt Final Blow;
- All;
- All;
- }
- actions
- {
- If(Event Player.Killstreak == 10);
- Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 10!", Event Player));
- End;
- If(Event Player.Killstreak == 15);
- Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 15!", Event Player));
- End;
- If(Event Player.Killstreak == 20);
- Big Message(All Players(All Teams), Custom String("{0} is on a killstreak of 20!", Event Player));
- End;
- }
- }
- rule("Hero Change")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.HeroChangePos) <= 1.500;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Kill(Event Player, Null);
- Small Message(Event Player, Custom String("Change heroes"));
- }
- }
- rule("Blood Crystal")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.BloodCrystalPos) <= 3;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Create Beam Effect(All Players(All Teams), Bad Beam, Vector(X Component Of(Global.BloodCrystalPos), Y Component Of(
- Global.BloodCrystalPos) + 3, Z Component Of(Global.BloodCrystalPos)), Event Player, Color(Red),
- Visible To Position and Radius);
- Event Player.BloodCrystalBeam = Last Created Entity;
- Create Effect(Event Player, Energy Sound, Color(White), Position Of(Event Player), 300, Visible To Position and Radius);
- Event Player.BloodEnergySound = Last Created Entity;
- Damage(Event Player, Null, Max Health(Event Player) * 0.200);
- Event Player.RandomBloodCrystal = Random Integer(8, 14);
- Event Player.Money += Event Player.RandomBloodCrystal;
- Small Message(Event Player, Custom String("+{0} coins", Event Player.RandomBloodCrystal));
- disabled Set Status(Event Player, Null, Burning, 0.750);
- Wait(0.750, Ignore Condition);
- Destroy Effect(Event Player.BloodCrystalBeam);
- Destroy Effect(Event Player.BloodEnergySound);
- Loop If Condition Is True;
- }
- }
- rule("LevelUpPoints To Coins")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.XPToGoldPos) <= 3;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.LevelUpPoints >= 1;
- }
- actions
- {
- Event Player.Money += 15;
- Event Player.LevelUpPoints -= 1;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- }
- }
- rule("Scale Up")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.ScaleUpPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 20;
- Event Player.Scale < 3;
- }
- actions
- {
- Event Player.Scale += 0.005;
- Event Player.Money -= 20;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Ignore Condition);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Scale Down")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.ScaleDownPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 20;
- Event Player.Scale > 0.350;
- }
- actions
- {
- Event Player.Scale -= 0.005;
- Event Player.Money -= 20;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Ignore Condition);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Bank Deposit")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.BankDepositPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.Money >= 10);
- Event Player.Bank += 10;
- Event Player.Money -= 10;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.016, Abort When False);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Bank Withdraw")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.BankWithdrawPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.Bank >= 10);
- Event Player.Money += 10;
- Event Player.Bank -= 10;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.016, Abort When False);
- Loop If Condition Is True;
- End;
- }
- }
- rule("XP Pump")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Global.XPPumpPos, Event Player) <= 5;
- }
- actions
- {
- Chase Player Variable At Rate(Event Player, XP, 10000, 4 * Event Player.XPMultiplier, Destination and Rate);
- End;
- Small Message(Event Player, Custom String("Gaining XP"));
- Create Beam Effect(All Players(All Teams), Bad Beam, Vector(X Component Of(Global.XPPumpPos), Y Component Of(Global.XPPumpPos) + 3,
- Z Component Of(Global.XPPumpPos)), Event Player, Color(Blue), Visible To Position and Radius);
- Event Player.XpPumpBeam = Last Created Entity;
- Create Effect(Event Player, Beacon Sound, Color(White), Event Player, 200, Visible To Position and Radius);
- Event Player.XpPumpSound = Last Created Entity;
- Create Effect(Event Player, Decal Sound, Color(White), Event Player, 200, Visible To Position and Radius);
- Event Player.XpPumpSound2 = Last Created Entity;
- }
- }
- rule("Stepping off XP Pump")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Global.XPPumpPos, Event Player) > 5;
- }
- actions
- {
- Stop Chasing Player Variable(Event Player, XP);
- Destroy Effect(Event Player.XpPumpBeam);
- Destroy Effect(Event Player.XpPumpSound);
- Destroy Effect(Event Player.XpPumpSound2);
- }
- }
- rule("Regen Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 3000;
- Distance Between(Event Player, Global.RegenBuyPos) <= 1;
- }
- actions
- {
- If(Event Player.Regen < 0.015);
- Event Player.Money -= 3000;
- Event Player.Regen += 0.001;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.016, Abort When False);
- Loop If Condition Is True;
- End;
- Else;
- Small Message(Event Player, Custom String("Max Regen!"));
- End;
- }
- }
- rule("Stun Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Stun == False;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 3000;
- Distance Between(Event Player, Global.StunBuyPos) <= 1;
- }
- actions
- {
- Event Player.Money -= 3000;
- Event Player.Stun = True;
- Small Message(Event Player, Custom String("Stun Bought"));
- }
- }
- rule("Regen")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Regen == True;
- }
- actions
- {
- Heal(Event Player, Null, Min(Event Player.Regen * Max Health(Event Player), 40));
- Wait(1, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("Stun")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.Stun == True;
- Victim != Event Player;
- (Event Damage >= 40) == True;
- }
- actions
- {
- If(Random Real(1, 100) <= 15);
- Set Status(Victim, Null, Stunned, 0.650);
- }
- }
- rule("Interest Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 200;
- Distance Between(Event Player, Global.InterestBuyPos) <= 1;
- Event Player.Interest < 0.400;
- }
- actions
- {
- Event Player.Money -= 200;
- Event Player.Interest += 0.010;
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Double Shot Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.DoubleShot == False;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 6000;
- Distance Between(Event Player, Global.DoubleShotBuyPos) <= 1;
- }
- actions
- {
- Event Player.Money -= 6000;
- Event Player.DoubleShot = True;
- Small Message(Event Player, Custom String("Double-Shot Bought"));
- }
- }
- rule("Corrosive Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.CorrosiveAmmunition == False;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 10000;
- Distance Between(Event Player, Global.CorrosiveBuyPos) <= 1;
- }
- actions
- {
- Event Player.Money -= 10000;
- Event Player.CorrosiveAmmunition = True;
- Small Message(Event Player, Custom String("Corrosive Bought"));
- }
- }
- rule("Interest")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Interest > 0;
- }
- actions
- {
- Wait(120, Abort When False);
- Event Player.Bank += Round To Integer(Event Player.Bank * Event Player.Interest, Up);
- Loop If Condition Is True;
- }
- }
- rule("Double Shot")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.DoubleShot == True;
- Victim != Event Player;
- }
- actions
- {
- If(Random Real(1, 100) <= 25);
- Damage(Victim, Event Player, Event Damage);
- }
- }
- rule("Inflict Poison")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.CorrosiveAmmunition == True;
- Victim != Event Player;
- Event Damage >= 60;
- Event Player.PoisonDamage != True;
- }
- actions
- {
- Victim.Poison += 3;
- Small Message(Victim, Custom String("+3 Poison"));
- Victim.Poisoner = Event Player;
- }
- }
- rule("Poison Damage")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Poison > 0;
- }
- actions
- {
- Small Message(Event Player, Custom String("Poison: {0}", Event Player.Poison));
- Event Player.PoisonDamage = True;
- Damage(Event Player, Event Player.Poisoner, Min(Event Player.Poison, 20));
- Event Player.PoisonDamage = False;
- Event Player.Poison -= 1;
- Wait(1, Abort When False);
- Loop If Condition Is True;
- }
- }
- rule("Next To Kill Event")
- {
- event
- {
- Player Dealt Final Blow;
- All;
- All;
- }
- conditions
- {
- Global.NextToKill == True;
- }
- actions
- {
- Big Message(All Players(All Teams), Custom String("{0} won the event!", Event Player));
- Event Player.Money += 1000;
- Event Player.XP += 200;
- Small Message(Event Player, Custom String("+1000 coins, +200 xp"));
- Global.EventType = 0;
- Global.NextToKill = 0;
- }
- }
- rule("Move Event")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.MoveOrDie == True;
- Is Moving(Event Player) == False;
- }
- actions
- {
- Wait(0.250, Abort When False);
- Damage(Event Player, Null, Max Health(Event Player) / 16);
- Loop If Condition Is True;
- }
- }
- rule("Tenacity Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Tenacity == False;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 7500;
- Distance Between(Event Player, Global.TenacityPos) <= 1;
- }
- actions
- {
- Event Player.Money -= 7500;
- Event Player.Tenacity = True;
- Small Message(Event Player, Custom String("Tenacity Bought"));
- }
- }
- rule("Contract")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.ContractPosition) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Number Of Players(All Teams) >= 3);
- Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 200);
- Event Player.ContractKill = Random Value In Array(Filtered Array(All Players(All Teams), Current Array Element != Event Player));
- Event Player.OnContract = True;
- Event Player.ContractXP = Random Real(70, 120);
- Event Player.ContractCoins = Random Integer(400, 700);
- Event Player.ContractText = Custom String("Kill {0} ({1} coins, {2} xp)", Event Player.ContractKill, Event Player.ContractCoins,
- Event Player.ContractXP);
- Small Message(Event Player, Custom String("Contract Started"));
- Wait(7, Ignore Condition);
- Else;
- Small Message(Event Player, Custom String("Must have at least 3 players to start a contract."));
- }
- }
- rule("Bank Deposit All")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.BankDepositPos) <= 1;
- Is Button Held(Event Player, Button(Reload)) == True;
- }
- actions
- {
- Event Player.Bank += Event Player.Money;
- Event Player.Money = 0;
- }
- }
- rule("Bank Withdraw All")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.BankWithdrawPos) <= 1;
- Is Button Held(Event Player, Button(Reload)) == True;
- }
- actions
- {
- If(Is Button Held(Event Player, Button(Reload)) == True);
- Event Player.Money += Event Player.Bank;
- Event Player.Bank = 0;
- }
- }
- rule("Dark Shop Teleport In")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.DarkShopPos) < 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.HasClass == True);
- Teleport(Event Player, Vector(-290, -2, 50));
- Set Status(Event Player, Null, Invincible, 9999);
- Else;
- Small Message(Event Player, Custom String("Choose a class first!"));
- }
- }
- rule("Dark Shop Teleport Out")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.DarkShopOutPos) < 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Teleport(Event Player, Vector(-266.330, -5.090, 31.670));
- Clear Status(Event Player, Invincible);
- }
- }
- rule("Reset")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.ResetPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.Level >= Global.ResetLevel);
- Big Message(All Players(All Teams), Custom String("{0} has reset!", Event Player));
- Small Message(Event Player, Custom String("+{0} Dark Points", Global.ResetPoints));
- Set Player Score(Event Player, 0);
- Event Player.Level = 0;
- Event Player.XP = 0;
- Event Player.LevelUpPoints = 50;
- Event Player.Health = 100;
- Event Player.Speed = 100;
- Event Player.DamageTaken = 100;
- Event Player.Damage = 100;
- Event Player.Money = Global.StartingMoney;
- Event Player.Scale = 1;
- Event Player.Bank = 0;
- Event Player.CorrosiveAmmunition = 0;
- Event Player.Tenacity = 0;
- Event Player.Regen = 0;
- Event Player.DoubleShot = 0;
- Event Player.Stun = 0;
- Event Player.Interest = 0;
- Event Player.DarkPoints += Global.ResetPoints;
- Play Effect(Event Player, Ring Explosion Sound, Color(White), Event Player, 200);
- Else;
- Small Message(Event Player, Custom String("You must be at least level {0} to reset.", Global.ResetLevel));
- }
- }
- rule("Wheel Of Chance")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.ChanceWheelPos) <= 2;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.WheelCooldown < 1);
- If(Event Player.Money >= 500);
- If(Event Player.Level >= 15);
- Event Player.Money -= 500;
- Event Player.WheelOfChance = Random Integer(1, 12);
- Call Subroutine(WheelOfChance);
- Event Player.WheelCooldown = 20;
- Else;
- Small Message(Event Player, Custom String("You must be at least level 15 to use this."));
- End;
- Else;
- Small Message(Event Player, Custom String("Not enough money."));
- End;
- Else;
- Small Message(Event Player, Custom String("Wait {0} seconds before trying again.", Event Player.WheelCooldown));
- }
- }
- rule("Wheel Of Chance Subroutine")
- {
- event
- {
- Subroutine;
- WheelOfChance;
- }
- actions
- {
- Small Message(Event Player, Custom String("Spinning..."));
- Wait(4, Ignore Condition);
- If(Event Player.WheelOfChance == 1);
- Event Player.WheelMoneyReward = Random Integer(4000, 6000);
- Event Player.Money += Event Player.WheelMoneyReward;
- Small Message(Event Player, Custom String("+{0} coins", Event Player.WheelMoneyReward));
- Else If(Event Player.WheelOfChance == 2);
- All Players(All Teams).Money += Round To Integer(1000 / Number Of Players(All Teams), Up);
- Small Message(Event Player, Custom String("Gave everyone {0} coins (including you)", Round To Integer(1000 / Number Of Players(
- All Teams), Up)));
- Small Message(Filtered Array(All Players(All Teams), Current Array Element != Event Player), Custom String("{0} gave you {1}",
- Event Player, Round To Integer(1000 / Number Of Players(All Teams), Up)));
- Else If(Event Player.WheelOfChance == 3);
- Small Message(Event Player, Custom String("Lose half of your held coins!"));
- Event Player.Money /= 2;
- Else If(Event Player.WheelOfChance == 4);
- Event Player.WheelLevelReward = Random Integer(-3, -1);
- Small Message(Event Player, Custom String("{0} Levels", Event Player.WheelLevelReward));
- Event Player.XP = 0;
- Event Player.Level += Event Player.WheelLevelReward;
- Else If(Event Player.WheelOfChance == 5);
- Event Player.WheelXPReward = Random Integer(250, 400);
- Event Player.XP += Event Player.WheelXPReward;
- Small Message(Event Player, Custom String("+{0} xp", Event Player.WheelXPReward));
- Else If(Event Player.WheelOfChance == 6);
- Set Player Health(Event Player, 1);
- Set Status(Event Player, Null, Hacked, 15);
- Set Status(Event Player, Null, Frozen, 5);
- Small Message(Event Player, Custom String("Something bad happened..."));
- Else If(Event Player.WheelOfChance == 7);
- Small Message(Event Player, Custom String("Nothing happened."));
- Else If(Event Player.WheelOfChance == 8);
- Kill(Event Player, Null);
- Small Message(Event Player, Custom String("You died?"));
- Else If(Event Player.WheelOfChance == 9);
- Event Player.Bounty += 2000;
- Big Message(Filtered Array(All Players(All Teams), Current Array Element != Event Player), Custom String(
- "{0} has a bounty of {1} coins! Kill them to receive it", Event Player, Event Player.Bounty));
- Small Message(Event Player, Custom String("+2000 bounty! (others might target you)"));
- Else If(Event Player.WheelOfChance == 10);
- Event Player.ReturnToSpawnReward = True;
- Small Message(Event Player, Custom String("Return to spawn for a reward! "));
- Else If(Event Player.WheelOfChance == 11);
- Small Message(Event Player, Custom String("Lose half of your banked coins!"));
- Event Player.Bank /= 2;
- Else If(Event Player.WheelOfChance == 12);
- Event Player.WheelMoneyReward = Random Integer(1000, 2000);
- Event Player.Money += Event Player.WheelMoneyReward;
- Small Message(Event Player, Custom String("+{0} coins", Event Player.WheelMoneyReward));
- }
- }
- rule("Wheel Cooldown Counting")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.WheelCooldown > 0;
- }
- actions
- {
- Event Player.WheelCooldown -= 1;
- Wait(1, Abort When False);
- Loop If Condition Is True;
- }
- }
- rule("Return")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.ReturnToSpawnReward == True;
- Distance Between(Position Of(Event Player), Global.GlobalSpawn) <= 26;
- }
- actions
- {
- Event Player.Money += 3000;
- Event Player.XP += 300;
- Small Message(Event Player, Custom String("+300 xp, +3000 coins"));
- Event Player.ReturnToSpawnReward = False;
- }
- }
- rule("Heal Bubble")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.HealBubblePos) <= 2;
- }
- actions
- {
- If(Health(Event Player) != Max Health(Event Player));
- Wait(1.500, Abort When False);
- Small Message(Event Player, Custom String("Healed {0} ", Max Health(Event Player) * 0.100));
- Heal(Event Player, Null, Max Health(Event Player) * 0.100);
- Loop If Condition Is True;
- Else;
- Wait(1.500, Abort When False);
- Small Message(Event Player, Custom String("Healed 0 (Max health)"));
- Loop If Condition Is True;
- }
- }
- rule("Contract Finish")
- {
- event
- {
- Player Dealt Final Blow;
- All;
- All;
- }
- conditions
- {
- Event Player.OnContract == True;
- (Victim == Event Player.ContractKill) == True;
- }
- actions
- {
- Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 200);
- Event Player.Money += Event Player.ContractCoins;
- Event Player.XP += Event Player.ContractXP;
- Event Player.ContractText = Custom String("None");
- Event Player.OnContract = False;
- Event Player.ContractKill = Null;
- Small Message(Event Player, Custom String("Contract complete!"));
- }
- }
- rule("Money to Dark")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.MoneyToDarkPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.Money >= 100000;
- }
- actions
- {
- Event Player.Money -= 100000;
- Event Player.DarkPoints += 20;
- Play Effect(Event Player, Ring Explosion, Color(White), Event Player, 15);
- If(Is Button Held(Event Player, Button(Crouch)) == True);
- Wait(0.030, Abort When False);
- Loop If Condition Is True;
- End;
- }
- }
- rule("Dark Points Burning")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.DarkPointsBurning) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.DarkPoints >= 1;
- }
- actions
- {
- Event Player.Money += 20;
- Event Player.DarkPoints -= 1;
- If(Is Crouching(Event Player) == True);
- Wait(0.020, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("Strength Training")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.StrengthTrainingPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- If(Event Player.Level >= 5);
- If(Event Player.StrengthTrainingCooldown >= 1);
- Small Message(Event Player, Custom String("You must wait {0} seconds before trying again.",
- Event Player.StrengthTrainingCooldown));
- Else;
- Small Message(Event Player, Custom String("Strength training starting in 5 seconds"));
- Event Player.StrengthTraining = True;
- Set Status(Event Player, Null, Rooted, 9999);
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Press space as many times as you can!"));
- Wait(3.500, Ignore Condition);
- Small Message(Event Player, Custom String("5"));
- Wait(1, Ignore Condition);
- Small Message(Event Player, Custom String("4"));
- Wait(1, Ignore Condition);
- Small Message(Event Player, Custom String("3"));
- Wait(1, Ignore Condition);
- Small Message(Event Player, Custom String("2"));
- Wait(1, Ignore Condition);
- Small Message(Event Player, Custom String("1"));
- Wait(1, Ignore Condition);
- Event Player.StrengthTraining = False;
- Event Player.Money += Event Player.StrengthTrainingScore * 6;
- Event Player.XP += Event Player.StrengthTrainingScore * 3;
- Small Message(Event Player, Custom String("Training ended. {2} presses, +{0} xp, +{1} coins",
- Event Player.StrengthTrainingScore * 3, Event Player.StrengthTrainingScore * 6, Event Player.StrengthTrainingScore));
- Event Player.StrengthTrainingCooldown = 120;
- Clear Status(Event Player, Rooted);
- Wait(0.016, Ignore Condition);
- Event Player.StrengthTrainingScore = 0;
- End;
- Else;
- Small Message(Event Player, Custom String("You must be at least level 5 to use this."));
- }
- }
- rule("Strength Training Scoring")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.StrengthTraining == True;
- Is Button Held(Event Player, Button(Jump)) == True;
- }
- actions
- {
- Event Player.StrengthTrainingScore += 1;
- }
- }
- rule("Strength Training Cooldown")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.StrengthTrainingCooldown > 0;
- }
- actions
- {
- Event Player.StrengthTrainingCooldown -= 1;
- Wait(1, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("One Shot Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.OneShotPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.OneShot != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("One Shot class selected."));
- Event Player.OneShot = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.OneShot = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("One Shot class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("One Shot");
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("One Shot Death")
- {
- event
- {
- Player Took Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.OneShot == True;
- Attacker != Null;
- }
- actions
- {
- Kill(Event Player, Attacker);
- }
- }
- rule("One Shot Kill")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.OneShot == True;
- }
- actions
- {
- Kill(Victim, Event Player);
- }
- }
- rule("Unlock Dark Classes")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.DarkClasses == False;
- Is Button Held(Event Player, Button(Interact)) == True;
- Distance Between(Position Of(Event Player), Global.DarkClassesPos) <= 1;
- }
- actions
- {
- If(Event Player.DarkPoints >= 1500);
- Small Message(Event Player, Custom String("Bought"));
- Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), Event Player, 1);
- Play Effect(All Players(All Teams), Ring Explosion, Color(Aqua), Event Player, 5);
- Event Player.DarkPoints -= 1500;
- Event Player.DarkClasses = True;
- Else;
- Small Message(Event Player, Custom String("You do not have 1500 dark points"));
- }
- }
- rule("Ghost Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.GhostPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Ghost != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Ghost class selected."));
- Event Player.Ghost = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Ghost = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Ghost class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Ghost");
- Destroy In-World Text(Event Player.ClassText);
- Set Invisible(Event Player, All);
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("Troll Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.TrollPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Troll != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Troll class selected."));
- Event Player.Troll = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Troll = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Troll class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Troll ");
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("Troll Effects")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.Troll == True;
- }
- actions
- {
- If(Event Player.TrollMode == 1);
- Apply Impulse(Victim, Facing Direction Of(Event Player), 25, To World, Cancel Contrary Motion);
- Apply Impulse(Victim, Vector(0, 10000, 0), 3, To World, Cancel Contrary Motion);
- Set Environment Credit Player(Victim, Event Player);
- Else If(Event Player.TrollMode == 2);
- Apply Impulse(Victim, Facing Direction Of(Event Player) - Facing Direction Of(Event Player) * 1000, 25, To World,
- Cancel Contrary Motion);
- Apply Impulse(Victim, Vector(0, 10000, 0), 3, To World, Cancel Contrary Motion);
- Set Environment Credit Player(Victim, Event Player);
- Else If(Event Player.TrollMode == 3);
- Set Facing(Victim, Vector(Random Real(-1000, 1000), Random Real(-100, 250), Random Real(-1000, 1000)), To World);
- Else If(Event Player.TrollMode == 4);
- Set Status(Victim, Null, Frozen, 2);
- Set Status(Victim, Null, Hacked, 4);
- }
- }
- rule("Troll Change")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Troll == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Is Button Held(Event Player, Button(Reload)) == True;
- }
- actions
- {
- If(Event Player.TrollMode == 0);
- Event Player.TrollMode = 1;
- Small Message(Event Player, Custom String("Knockback Mode"));
- Else If(Event Player.TrollMode == 1);
- Event Player.TrollMode = 2;
- Small Message(Event Player, Custom String("Pull Mode"));
- Else If(Event Player.TrollMode == 2);
- Event Player.TrollMode = 3;
- Small Message(Event Player, Custom String("Annoying Mode"));
- Else If(Event Player.TrollMode == 3);
- Event Player.TrollMode = 4;
- Small Message(Event Player, Custom String("Freeze Mode"));
- Else If(Event Player.TrollMode == 4);
- Event Player.TrollMode = 1;
- Small Message(Event Player, Custom String("Knockback Mode"));
- }
- }
- rule("Billionaire Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.BillionairePos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Billionaire != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Billionaire class selected."));
- Event Player.Billionaire = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Billionaire = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Billionaire class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Billionaire");
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("Billionaire Damage")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.Money >= 1000;
- Event Player.Billionaire == True;
- }
- actions
- {
- Event Player.Money -= 1000;
- }
- }
- rule("Angel Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Angel == False;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.DarkPoints >= 300;
- Distance Between(Event Player, Global.AngelPos) <= 1;
- }
- actions
- {
- Event Player.DarkPoints -= 300;
- Event Player.Angel = True;
- Small Message(Event Player, Custom String("Angel Bought. Hold space to fly."));
- If(Event Player.Pacifist == True);
- Event Player.ClassName = Custom String("Angel");
- Else;
- Log To Inspector(Custom String("This is a filler."));
- End;
- }
- }
- rule("Angel Fly")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Angel == True;
- Event Player.Pacifist == True;
- Is Button Held(Event Player, Button(Jump)) == True;
- Event Player.Flight >= 0.020;
- }
- actions
- {
- Apply Impulse(Event Player, Vector(0, 10000, 0), 5, To World, Cancel Contrary Motion);
- Event Player.Flight -= 0.020;
- Wait(0.020, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("Dark XP Boost Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.XPMultiplier < 5;
- Is Game In Progress == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.DarkPoints >= 25;
- Distance Between(Position Of(Event Player), Global.DarkXPBoostPos) <= 1;
- }
- actions
- {
- If(Event Player.XPMultiplier < 5);
- Play Effect(Event Player, Ring Explosion, Color(White), Event Player, 15);
- Event Player.DarkPoints -= 25;
- Event Player.XPMultiplier += 0.010;
- If(Is Crouching(Event Player) == True);
- Wait(0.016, Ignore Condition);
- Loop If Condition Is True;
- End;
- Else;
- Small Message(Event Player, Custom String("Max boost!"));
- }
- }
- rule("Berserkerer Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.BerserkererPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Berserkerer != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Berserkerer class selected."));
- Event Player.Berserkerer = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Berserkerer = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Berserkerer class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Berserkerer [x2]");
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("Reward Orb")
- {
- event
- {
- Subroutine;
- RewardOrb;
- }
- actions
- {
- Global.OrbPositionType = Random Integer(1, 10);
- If(Global.OrbPositionType == 1);
- Global.OrbPosition = Vector(-226.320, -0.500, -34.620);
- Else If(Global.OrbPositionType == 2);
- Global.OrbPosition = Vector(-221, 0.500, -29);
- Else If(Global.OrbPositionType == 3);
- Global.OrbPosition = Vector(-196, 1.500, -3.920);
- Else If(Global.OrbPositionType == 4);
- Global.OrbPosition = Vector(-208.340, -3, -16.720);
- Else If(Global.OrbPositionType == 5);
- Global.OrbPosition = Vector(-165.420, -4.500, -65.250);
- Else If(Global.OrbPositionType == 6);
- Global.OrbPosition = Vector(-138.100, -0.910, -75.860);
- Else If(Global.OrbPositionType == 7);
- Global.OrbPosition = Vector(-181.770, -0.470, -91.920);
- Else If(Global.OrbPositionType == 8);
- Global.OrbPosition = Vector(-259.730, -4.500, 1.890);
- Else If(Global.OrbPositionType == 9);
- Global.OrbPosition = Vector(-237.200, 5.030, 6);
- Else If(Global.OrbPositionType == 10);
- Global.OrbPosition = Vector(-244, -0.500, 1);
- End;
- Create Effect(All Players(All Teams), Orb, Color(Yellow), Global.OrbPosition, 1.500, Visible To Position and Radius);
- Global.OrbID = Last Created Entity;
- Create In-World Text(All Players(All Teams), Custom String("{1} Reward Orb (Spawning: {0}s)", Global.OrbTimer, Icon String(
- Exclamation Mark)), Vector(X Component Of(Global.OrbPosition), Y Component Of(Global.OrbPosition) + 1, Z Component Of(
- Global.OrbPosition)), 1, Do Not Clip, Visible To Position and String, Color(Yellow), Default Visibility);
- Global.OrbTextID = Last Text ID;
- Global.OrbTimer = 35;
- }
- }
- rule("Orb Timer")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.OrbTimer > 0;
- }
- actions
- {
- Global.OrbTimer -= 1;
- Wait(1, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("Orb Grab")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.OrbPosition) <= 1.500;
- Global.OrbTimer < 1;
- Global.EventType == 7;
- Global.OrbPositionType != 0;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Destroy Effect(Global.OrbID);
- Destroy In-World Text(Global.OrbTextID);
- Global.OrbPosition = 0;
- Small Message(Event Player, Custom String("+500 xp, +2000 coins"));
- Big Message(All Players(All Teams), Custom String("Orb collected by {0}", Event Player));
- Event Player.XP += 500;
- Event Player.Money += 2000;
- Global.EventType = 0;
- Global.OrbPositionType = 0;
- }
- }
- rule("Flight Tick Up")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Flight <= 9.980;
- Altitude Of(Event Player) < 1;
- }
- actions
- {
- Wait(1, Abort When False);
- Event Player.Flight += 0.100;
- Loop If Condition Is True;
- }
- }
- rule("Reaching Reset Level")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.Level == Global.ResetLevel;
- }
- actions
- {
- Big Message(Event Player, Custom String("You have enough levels to reset!"));
- }
- }
- rule("Empty Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.EmptyPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Empty != True;
- }
- actions
- {
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Empty class selected."));
- Event Player.Empty = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Empty = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Empty class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Empty");
- }
- }
- rule("Helper Select")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Position Of(Event Player), Global.HelperPos) <= 1;
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.SwitchingClass != True;
- Event Player.Helper != True;
- }
- actions
- {
- If(Event Player.DarkClasses == True);
- Call Subroutine(ClassPurge);
- If(Event Player.HasClass != True);
- Small Message(Event Player, Custom String("Helper class selected."));
- Event Player.Helper = True;
- Event Player.HasClass = True;
- Else;
- Small Message(Event Player, Custom String("Switching class in 15 seconds."));
- Event Player.SwitchingClass = True;
- Wait(5, Ignore Condition);
- Small Message(Event Player, Custom String("Respawning in 10 seconds"));
- Wait(10, Ignore Condition);
- Kill(Event Player, Null);
- Event Player.Helper = True;
- Event Player.HasClass = True;
- Event Player.SwitchingClass = False;
- Small Message(Event Player, Custom String("Helper class selected."));
- End;
- disabled Start Rule(Default, Restart Rule);
- Event Player.ClassName = Custom String("Helper");
- Else;
- Small Message(Event Player, Custom String("Unlock dark classes first."));
- }
- }
- rule("Helper")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.Helper == True;
- Attacker != Victim;
- }
- actions
- {
- Victim.XP += Min(5, Event Damage * 10);
- Victim.Money += Random Integer(12, 15);
- Heal(Victim, Null, Event Damage * 10);
- }
- }
- rule("Lifesteal Buy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.DarkPoints >= 50;
- Event Player.LevelUpPoints >= 10;
- Distance Between(Position Of(Event Player), Global.LifestealPos) <= 1;
- Event Player.Lifesteal < 15;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Event Player.Lifesteal += 0.100;
- Event Player.LevelUpPoints -= 10;
- Event Player.DarkPoints -= 50;
- If(Is Crouching(Event Player) == True);
- Wait(0.020, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- rule("Lifesteal")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Event Player.Lifesteal >= 0;
- Attacker != Victim;
- }
- actions
- {
- Heal(Event Player, Null, Event Damage * Event Player.Lifesteal * 0.010);
- }
- }
- rule("Third Person")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Interact)) == True;
- Distance Between(Position Of(Event Player), Global.ThirdPersonPos) <= 1;
- }
- actions
- {
- If(Event Player.ThirdPerson != True);
- Event Player.ThirdPerson = True;
- disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300, 0, 0.300),
- Event Player, Rotation) + Up * 1.500 + Facing Direction Of(Event Player) * -2.250, Null, Event Player, False),
- Event Player + Facing Direction Of(Event Player) * 1000, 40);
- disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300 * Event Player.Scale,
- 0, 0.300 * Event Player.Scale), Event Player, Rotation) + Up * Event Player.Scale * 1.500 + Facing Direction Of(Event Player)
- * Event Player.Scale * -2.250, Null, Event Player, False), Event Player + Facing Direction Of(Event Player) * 1000, 40);
- Start Camera(Event Player, Ray Cast Hit Position(Event Player, Event Player + World Vector Of(Vector(-0.300 * Event Player.Scale,
- Event Player.Scale * 0.100, 0.300 * Event Player.Scale), Event Player, Rotation)
- + Up * Event Player.Scale * 1.500 + Facing Direction Of(Event Player) * Event Player.Scale * -2.250, Null, Event Player,
- False), Event Player + Facing Direction Of(Event Player) * 1000, 40);
- Else;
- Event Player.ThirdPerson = False;
- Stop Camera(Event Player);
- }
- }
- rule("Spectating")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Interact)) == True;
- Distance Between(Position Of(Event Player), Global.SpectatePos) <= 1;
- Event Player.Spectating != True;
- }
- actions
- {
- Event Player.Spectating = True;
- Event Player.SpectatorPlayer = Random Value In Array(Filtered Array(All Living Players(All Teams),
- Current Array Element != Event Player));
- Teleport(Event Player, Vector(-277.370, -2.820, 45.420));
- Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
- Vector(-0.300 * Event Player.SpectatorPlayer.Scale, 0, 0.300 * Event Player.SpectatorPlayer.Scale),
- Event Player.SpectatorPlayer, Rotation) + Up * Event Player.SpectatorPlayer.Scale * 1.500 + Facing Direction Of(
- Event Player.SpectatorPlayer) * Event Player.SpectatorPlayer.Scale * -2.250, Null, Event Player.SpectatorPlayer, False),
- Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000 * Event Player.Scale, 40);
- Small Message(Event Player, Custom String("Crouch to stop spectating; reload to switch player"));
- Small Message(Event Player.SpectatorPlayer, Custom String("{0} is spectating you", Event Player));
- Small Message(Event Player, Custom String("Spectating {0}", Event Player.SpectatorPlayer));
- Set Status(Event Player, Null, Rooted, 9999);
- disabled Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
- Vector(-0.300, 0, 0.300), Event Player.SpectatorPlayer, Rotation) + Up * 1.500 + Facing Direction Of(
- Event Player.SpectatorPlayer) * -2.250, Null, Event Player.SpectatorPlayer, False),
- Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000, 40);
- }
- }
- rule("Stop Spectating")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Crouch)) == True;
- Event Player.Spectating == True;
- }
- actions
- {
- Stop Camera(Event Player);
- Event Player.ThirdPerson = False;
- Event Player.Spectating = False;
- Clear Status(Event Player, Rooted);
- }
- }
- rule("Switch player spectating")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Reload)) == True;
- Event Player.Spectating == True;
- }
- actions
- {
- Event Player.SpectatorPlayer = Random Value In Array(Filtered Array(All Living Players(All Teams),
- Current Array Element != Event Player && Current Array Element != Event Player.SpectatorPlayer));
- Start Camera(Event Player, Ray Cast Hit Position(Event Player.SpectatorPlayer, Event Player.SpectatorPlayer + World Vector Of(
- Vector(-0.300, 0, 0.300), Event Player.SpectatorPlayer, Rotation) + Up * 1.500 + Facing Direction Of(
- Event Player.SpectatorPlayer) * -2.250, Null, Event Player.SpectatorPlayer, False),
- Event Player.SpectatorPlayer + Facing Direction Of(Event Player.SpectatorPlayer) * 1000, 40);
- Small Message(Event Player, Custom String("Spectating {0}", Event Player.SpectatorPlayer));
- Small Message(Event Player.SpectatorPlayer, Custom String("{0} is spectating you", Event Player));
- }
- }
- rule("LevelUpPoints To Coins")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Distance Between(Event Player, Global.XPToGoldPos) <= 3;
- Is Button Held(Event Player, Button(Reload)) == True;
- Event Player.LevelUpPoints >= 1;
- }
- actions
- {
- Event Player.Money += 15 * Event Player.LevelUpPoints;
- Event Player.LevelUpPoints -= Event Player.LevelUpPoints;
- }
- }
- rule("Lightweight double jump")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.DoubleJump2 == True;
- Event Player.Lightweight == True;
- Is Button Held(Event Player, Button(Jump)) == True;
- Hero Of(Event Player) != Hero(Genji);
- Event Player.DoubleJump == True;
- Has Status(Event Player, Knocked Down) == False;
- Has Status(Event Player, Rooted) == False;
- Has Status(Event Player, Frozen) == False;
- Has Status(Event Player, Asleep) == False;
- Has Status(Event Player, Stunned) == False;
- }
- actions
- {
- Event Player.DoubleJump2 = False;
- Event Player.DoubleJump = False;
- Apply Impulse(Event Player, Up, 12, To World, Cancel Contrary Motion);
- }
- }
- rule("Double jump recharge")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is On Ground(Event Player) == True;
- }
- actions
- {
- Event Player.DoubleJump = True;
- Event Player.DoubleJump2 = False;
- }
- }
- rule("Double jump 2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Jump)) == False;
- Altitude Of(Event Player) > 0.800;
- }
- actions
- {
- Event Player.DoubleJump2 = True;
- }
- }
- rule("Force kill")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Reload)) == True;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- Wait(10, Abort When False);
- Small Message(Event Player, Custom String("Force Kill in 5 seconds (holding interact + reload)"));
- Wait(5, Abort When False);
- Kill(Event Player, Null);
- }
- }
- rule("The final anti crash")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Wait(9600, Ignore Condition);
- Small Message(All Players(All Teams), Custom String("Game is at a high risk of crashing. Slow motion activated."));
- Set Slow Motion(80);
- }
- }