Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "(3V4W6)thebasketball 073 by @nakamoooooo *ボールを持っているときのボールの動きが安定した動きになった *コートの外に出れないよう変更 *ボールのショットの初速はチャージなしで8m/s出るようになった(最大チャージは変わらず) *グラスプでつかめる半径を1.5mから1.1mに *リング下に入ったボールが外に出るように変更 *ボール保持者の途中抜けでゴールは中央に戻る *ULTでダッシュ"
  • Description: "(3V4W6)thebasketball 074 by @nakamoooooo *ショットはプライマリで撃つようになった(前はアビリティ2だった)"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Match Voice Chat: Enabled
  • Max Spectators: 12
  • Max Team 1 Players: 5
  • Max Team 2 Players: 5
  • }
  • modes
  • {
  • disabled Deathmatch
  • {
  • Score To Win: 30
  • }
  • Escort
  • {
  • enabled maps
  • {
  • Havana
  • }
  • }
  • General
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • Respawn As Random Hero: On
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Genji
  • {
  • Primary Fire: Off
  • Quick Melee: Off
  • Secondary Fire: Off
  • Swift Strike: Off
  • Ultimate Ability Dragonblade: Off
  • }
  • Sigma
  • {
  • Accretion: Off
  • Experimental Barrier: Off
  • Health: 20%
  • Kinetic Grasp Cooldown Time: 25%
  • Movement Speed: 125%
  • Primary Fire: Off
  • Quick Melee: Off
  • Ultimate Ability Gravitic Flux: Off
  • }
  • Wrecking Ball
  • {
  • Roll Always Active: On
  • }
  • enabled heroes
  • {
  • Sigma
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: theHammond
  • 1: hammondRadiusKeisuu
  • 2: SpeedThresholdOfHammondBounce
  • 3: owner_ball
  • 4: vec_hammond_centerGap
  • 5: radius_hammond
  • 6: ring_positions
  • 7: ring_largeRadius
  • 8: ring_wall_distanceZ
  • 9: ring_floor_distanceY
  • 10: ring_smallRadius
  • 11: currentGameState
  • 12: stateZero
  • 13: stateSet
  • 14: stateGame
  • 15: statePoint
  • 16: team_scores
  • 17: length_yoyuu_goalIn
  • 18: radius_underGoal
  • 19: altitudeThresholdDribblable
  • 20: matchTimeSeconds
  • 21: lowestMatchTime
  • 22: threePointsRadius
  • 24: stageAltitude
  • 25: Znanka
  • 26: isThreePtsShot
  • 27: sigmaGraspDuration
  • 28: sigmaShotToGraspDuration
  • 29: dribbleperiod
  • player:
  • 0: ham_last_attacked
  • 1: ham_verticalSpeed
  • 2: charge_shot_percent
  • 3: charge_jump_percent
  • 4: ownerball_handHorDegree
  • 5: ham_timePenaltyFromBelow
  • 6: isLastStepOutOfTPSLine
  • }
  • rule("Display server performance characteristics")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Server Load"), String("{0}%", Server Load)), Null, Null, Left,
  • 0, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Server Load Average"), String("{0}%", Server Load Average)),
  • Null, Null, Left, 1, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Server Load Peak"), String("{0}%", Server Load Peak)), Null,
  • Null, Left, 2, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("set up time shorten")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Set Match Time(7);
  • }
  • }
  • rule("init")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • disabled Create In-World Text(All Players(All Teams), Custom String("操作\nLShift: キャッチ\nE: ためてシュート\nクリック: ドリブル\nしゃがみ: ハイジャンプを溜める"), Vector(
  • Global.X[1], Global.stageAltitude, Global.Znanka[4]), 1.500, Do Not Clip, Visible To Position and String, White,
  • Default Visibility);
  • disabled Create In-World Text(All Players(All Teams), Custom String(
  • "How to play\r\n-Grasp: catch\r\n-Ability 2: shoot\r\n-Primary,Secondary: dribble\r\n-Crouch: charge high jump\r\n"), Vector(
  • Global.X[0], Global.stageAltitude, Global.Znanka[4]), 1.500, Do Not Clip, Visible To Position and String, White,
  • Default Visibility);
  • Global.hammondRadiusKeisuu = 0.180;
  • Global.SpeedThresholdOfHammondBounce = -0.650;
  • Global.vec_hammond_centerGap = Vector(0, 0.775, 0);
  • Global.ring_largeRadius = 2.300;
  • Global.ring_wall_distanceZ = 1.500;
  • Global.ring_floor_distanceY = 5.500;
  • Global.radius_hammond = 0.800;
  • Global.ring_smallRadius = 0.400;
  • Global.team_scores = Empty Array;
  • Global.team_scores[1] = 0;
  • Global.team_scores[2] = 0;
  • Global.length_yoyuu_goalIn = 0.350;
  • Global.radius_underGoal = 3.800;
  • Global.altitudeThresholdDribblable = 0.500;
  • Global.matchTimeSeconds = 240;
  • Global.lowestMatchTime = 0.050;
  • Global.threePointsRadius = 18;
  • Global.sigmaGraspDuration = 1;
  • Global.sigmaShotToGraspDuration = 2;
  • Global.dribbleperiod = 0.500;
  • }
  • }
  • rule("init state")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.stateZero = 0;
  • Global.stateSet = 1;
  • Global.stateGame = 2;
  • Global.statePoint = 3;
  • Global.currentGameState = Global.stateZero;
  • }
  • }
  • rule("State zero : summon hammond")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.currentGameState == Global.stateZero;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Wrecking Ball), Team 2, 5, Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]), Vector(0, 0, 0));
  • Global.theHammond = Last Created Entity;
  • Create Icon(All Players(All Teams), Global.theHammond, Circle, Visible To and Position, Purple, True);
  • Teleport(Global.theHammond, Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]));
  • Wait(0.250, Ignore Condition);
  • Global.currentGameState = Global.stateSet;
  • Create Effect(Filtered Array(All Players(All Teams), Global.theHammond.ham_timePenaltyFromBelow), Sphere, Purple, Position Of(
  • Global.theHammond) + Global.vec_hammond_centerGap, 1.300, Visible To Position and Radius);
  • Create In-World Text(Filtered Array(All Players(All Teams), Global.theHammond.ham_timePenaltyFromBelow > 0), String("{0} sec",
  • Global.theHammond.ham_timePenaltyFromBelow), Global.theHammond, 3, Clip Against Surfaces, Visible To Position and String,
  • White, Default Visibility);
  • Create Icon(All Players(All Teams), Global.owner_ball, Asterisk, Visible To and Position, White, True);
  • Set Match Time(Global.matchTimeSeconds);
  • }
  • }
  • rule("State set global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.currentGameState == Global.stateSet;
  • }
  • actions
  • {
  • Global.owner_ball = Null;
  • Teleport(Global.theHammond, Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]));
  • Apply Impulse(Global.theHammond, Up, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Down, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Left, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Right, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Forward, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Backward, 0.001, To World, Cancel Contrary Motion);
  • Wait(1, Ignore Condition);
  • Global.currentGameState = Global.stateGame;
  • Apply Impulse(Global.theHammond, Up, 16, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Vector(Random Real(-1, 1), 0, 0), Random Real(0, 4), To World, Cancel Contrary Motion);
  • }
  • }
  • rule("state set human team 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateSet;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Rooted, 9999);
  • Teleport(Event Player, Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]) + -1 * Vector(0, 0, 10));
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Global.ring_positions[1]), To World);
  • }
  • }
  • rule("state set human team 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateSet;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Rooted, 9999);
  • Teleport(Event Player, Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]) + 1 * Vector(0, 0, 10));
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Global.ring_positions[0]), To World);
  • }
  • }
  • rule("state game human")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • }
  • actions
  • {
  • Clear Status(Event Player, Rooted);
  • }
  • }
  • rule("state point global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.currentGameState == Global.statePoint;
  • }
  • actions
  • {
  • Set Slow Motion(50);
  • Wait(1, Ignore Condition);
  • Set Slow Motion(100);
  • Global.currentGameState = Global.stateSet;
  • }
  • }
  • rule("hammond setting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Unkillable, 9999);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Event Player.ham_timePenaltyFromBelow = 0;
  • Create Effect(All Players(All Teams), Good Aura, Yellow, Event Player, Global.isThreePtsShot * 1, Visible To Position and Radius);
  • Start Scaling Player(Event Player, 0.400, False);
  • }
  • }
  • rule("ham accel to the owner's hand")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.owner_ball != Null;
  • }
  • actions
  • {
  • disabled Start Accelerating(Global.theHammond, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Position Of(
  • Global.theHammond), Position Of(Global.owner_ball) + Direction From Angles(Horizontal Facing Angle Of(Global.owner_ball)
  • + Global.owner_ball.ownerball_handHorDegree, 0))), 0), 20 * Distance Between(Position Of(Global.theHammond), Position Of(
  • Global.owner_ball)), 15, To World, Direction Rate and Max Speed);
  • Start Accelerating(Global.theHammond, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Position Of(
  • Global.theHammond), Position Of(Global.owner_ball) + Direction From Angles(Horizontal Facing Angle Of(Global.owner_ball)
  • + Global.owner_ball.ownerball_handHorDegree, 0))), 0), 50, 50, To World, Direction Rate and Max Speed);
  • }
  • }
  • rule("ham stop accelerating")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.owner_ball == Null;
  • }
  • actions
  • {
  • Stop Accelerating(Global.theHammond);
  • Start Accelerating(Global.theHammond, Vector(-1, 0, 0), 100 * (X Component Of(Position Of(Global.theHammond)) >= Global.X[1]), 3,
  • To World, Direction Rate and Max Speed);
  • Start Accelerating(Global.theHammond, Vector(1, 0, 0), 100 * (X Component Of(Position Of(Global.theHammond)) <= Global.X[0]), 3,
  • To World, Direction Rate and Max Speed);
  • Start Accelerating(Global.theHammond, Vector(0, 0, -1), 100 * (Z Component Of(Position Of(Global.theHammond)) >= Global.Znanka[1]),
  • 3, To World, Direction Rate and Max Speed);
  • Start Accelerating(Global.theHammond, Vector(0, 0, 1), 100 * (Z Component Of(Position Of(Global.theHammond)) <= Global.Znanka[0]),
  • 3, To World, Direction Rate and Max Speed);
  • }
  • }
  • disabled rule("hammond last attacker")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.ham_last_attacked = Attacker;
  • }
  • }
  • rule("human settings,effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • disabled Set Damage Received(Event Player, 1);
  • Create Effect(All Players(All Teams), Energy Sound, White, Position Of(Event Player), Event Player.charge_shot_percent,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Purple, Position Of(Event Player), 0.015 * Event Player.charge_jump_percent,
  • Visible To Position and Radius);
  • Create Effect(Filtered Array(All Players(All Teams), Global.owner_ball == Event Player), Good Aura, White, Eye Position(
  • Event Player) + Facing Direction Of(Event Player), 0.013 * Event Player.charge_shot_percent, Visible To Position and Radius);
  • Create HUD Text(Event Player, String("{0} - {1}", String("{0} {1}", Input Binding String(Button(Primary Fire)),
  • Input Binding String(Button(Secondary Fire))), Custom String("dribble")), Null, Null, Right, 1, White, White, White, String,
  • Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Ability 2)), Custom String("shoot")), Null, Null,
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Primary Fire)), Custom String("shoot")), Null, Null,
  • Right, 1, White, White, White, String, Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Ability 1)), Custom String("catch")), Null, Null,
  • Right, 1, White, White, White, String, Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Crouch)), Ability Icon String(Hero(Baptiste), Button(
  • Crouch))), Null, Null, Right, 1, White, White, White, String, Default Visibility);
  • Right, 2, White, White, White, String, Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Secondary Fire)), Custom String(
  • "dribble hand change")), Null, Null, Right, 3, White, White, White, String, Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Ultimate)), Ability Icon String(Hero(McCree), Button(
  • Ability 1))), Null, Null, Right, 1, White, White, White, String, Default Visibility);
  • Ability 1))), Null, Null, Right, 4, White, White, White, String, Default Visibility);
  • Create HUD Text(Event Player, String("{0} - {1}", Input Binding String(Button(Crouch)), Ability Icon String(Hero(Baptiste), Button(
  • Crouch))), Null, Null, Right, 5, White, White, White, String, Default Visibility);
  • }
  • }
  • disabled rule("human touch the ball")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.theHammond.ham_last_attacked != Event Player;
  • Distance Between(Position Of(Global.theHammond) + Vector(0, 0.400, 0), Position Of(Event Player)) <= Speed Of(Global.theHammond)
  • * Global.hammondRadiusKeisuu;
  • }
  • actions
  • {
  • Kill(Event Player, Global.theHammond.ham_last_attacked);
  • }
  • }
  • rule("X0~1,Z0~1,x,z area limit Y,altitude")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.X[0] = 203;
  • Global.X[1] = 225;
  • Global.Znanka[0] = -63.600;
  • Global.Znanka[1] = -17.480;
  • Global.stageAltitude = 27.500;
  • }
  • }
  • rule("X4,Z4, center X Z component")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.X[4] = (Global.X[0] + Global.X[1]) / 2;
  • Global.Znanka[4] = (Global.Znanka[0] + Global.Znanka[1]) / 2;
  • }
  • }
  • rule("goal positions")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.ring_positions[0] = Vector(Global.X[4], Global.stageAltitude + Global.ring_floor_distanceY,
  • Global.Znanka[0] + Global.ring_wall_distanceZ);
  • Global.ring_positions[1] = Vector(Global.X[4], Global.stageAltitude + Global.ring_floor_distanceY,
  • Global.Znanka[1] + -1 * Global.ring_wall_distanceZ);
  • }
  • }
  • rule("out-of-area accel")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Start Accelerating(Event Player, Vector(-1, 0.050, 0), 100 * (X Component Of(Position Of(Event Player)) >= Global.X[1]), 3,
  • To World, Direction Rate and Max Speed);
  • Start Accelerating(Event Player, Vector(1, 0.050, 0), 100 * (X Component Of(Position Of(Event Player)) <= Global.X[0]), 3,
  • To World, Direction Rate and Max Speed);
  • Start Accelerating(Event Player, Vector(0, 0.050, -1), 100 * (Z Component Of(Position Of(Event Player)) >= Global.Znanka[1]), 3,
  • To World, Direction Rate and Max Speed);
  • Start Accelerating(Event Player, Vector(0, 0.050, 1), 100 * (Z Component Of(Position Of(Event Player)) <= Global.Znanka[0]), 3,
  • To World, Direction Rate and Max Speed);
  • }
  • }
  • rule("area limit line,center line")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(Global.X[0], Global.stageAltitude + 1, Global.Znanka[0]), Vector(
  • Global.X[0], Global.stageAltitude + 1, Global.Znanka[1]), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(Global.X[1], Global.stageAltitude + 1, Global.Znanka[0]), Vector(
  • Global.X[1], Global.stageAltitude + 1, Global.Znanka[1]), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(Global.X[0], Global.stageAltitude + 1, Global.Znanka[1]), Vector(
  • Global.X[1], Global.stageAltitude + 1, Global.Znanka[1]), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(Global.X[1], Global.stageAltitude + 1, Global.Znanka[0]), Vector(
  • Global.X[0], Global.stageAltitude + 1, Global.Znanka[0]), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(Global.X[0], Global.stageAltitude + 0.200, Global.Znanka[4]),
  • Vector(Global.X[1], Global.stageAltitude + 0.200, Global.Znanka[4]), White, Visible To Position and Radius);
  • }
  • }
  • rule("human teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Distance Between(Position Of(Event Player), Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4])) > 100;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(Random Real(Global.X[0], Global.X[1]), Global.stageAltitude, Random Real(Global.Znanka[0],
  • Global.Znanka[1])));
  • Wait(0.600, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("hana song")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • D.Va;
  • }
  • conditions
  • {
  • Max Health(Event Player) == 150;
  • Is Communicating Any Emote(Event Player) == True;
  • }
  • actions
  • {
  • Damage(Global.theHammond, Event Player, 1);
  • Apply Impulse(Global.theHammond, Direction Towards(Position Of(Global.theHammond), Position Of(Event Player)), 12, To World,
  • Cancel Contrary Motion);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("ham vertical speed loop")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == True;
  • Vertical Speed Of(Event Player) < 0;
  • }
  • actions
  • {
  • Play Effect(All Players(All Teams), Good Explosion, White, Event Player, 0.020);
  • Event Player.ham_verticalSpeed = Vertical Speed Of(Event Player);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("ham ground bounce")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Global.currentGameState != Global.stateSet;
  • Is On Ground(Event Player) == True;
  • Event Player.ham_verticalSpeed < Global.SpeedThresholdOfHammondBounce;
  • }
  • actions
  • {
  • Global.isThreePtsShot = False;
  • If(Global.owner_ball == Null);
  • Apply Impulse(Event Player, Up, Absolute Value(Event Player.ham_verticalSpeed) * 0.850, To World, Cancel Contrary Motion);
  • End;
  • }
  • }
  • rule("owner player start charge shoot hammond")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.owner_ball == Event Player;
  • Has Status(Event Player, Stunned) == False;
  • Is Button Held(Event Player, Ability 2) == True;
  • "ショットボタン"
  • Is Button Held(Event Player, Primary Fire) == True;
  • disabled Is In View Angle(Event Player, Position Of(Global.theHammond), 100) == True;
  • }
  • actions
  • {
  • Event Player.charge_shot_percent = 20;
  • Chase Player Variable Over Time(Event Player, charge_shot_percent, 100, 0.900, None);
  • Stop Camera(Event Player);
  • disabled Set Gravity(Global.theHammond, 0);
  • disabled Apply Impulse(Global.theHammond, Up, 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Down, 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Left, 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Right, 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Forward, 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Backward, 0.001, To World, Cancel Contrary Motion);
  • disabled Teleport(Global.theHammond, Eye Position(Event Player) + Facing Direction Of(Event Player));
  • }
  • }
  • rule("owner player shoot hammond")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.owner_ball == Event Player;
  • Is Button Held(Event Player, Ability 2) == False;
  • "ショットボタン"
  • Is Button Held(Event Player, Primary Fire) == False;
  • Event Player.charge_shot_percent > 0;
  • }
  • actions
  • {
  • Stop Forcing Player Position(Global.theHammond);
  • Apply Impulse(Global.theHammond, Up, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Down, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Left, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Right, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Forward, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Backward, 0.001, To World, Cancel Contrary Motion);
  • Teleport(Global.theHammond, Eye Position(Event Player) + Facing Direction Of(Event Player));
  • Apply Impulse(Global.theHammond, Facing Direction Of(Event Player), 8 + 0.075 * Event Player.charge_shot_percent, To World,
  • Cancel Contrary Motion);
  • Play Effect(All Players(All Teams), Debuff Impact Sound, White, Position Of(Event Player), Event Player.charge_shot_percent);
  • Global.owner_ball = Null;
  • Set Gravity(Global.theHammond, 100);
  • Global.isThreePtsShot = Event Player.isLastStepOutOfTPSLine;
  • }
  • }
  • rule("grasp to be owner")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is Using Ability 1(Event Player) == True;
  • Distance Between(Eye Position(Event Player) + Facing Direction Of(Event Player), Position Of(Global.theHammond)
  • + Global.vec_hammond_centerGap) < 1.100;
  • }
  • actions
  • {
  • Stop Forcing Player Position(Global.theHammond);
  • Set Status(Global.owner_ball, Null, Stunned, 0.150);
  • Global.owner_ball = Event Player;
  • disabled Apply Impulse(Global.theHammond, Up, 8, To World, Cancel Contrary Motion);
  • Set Gravity(Global.theHammond, 100);
  • Global.isThreePtsShot = Event Player.isLastStepOutOfTPSLine;
  • Start Forcing Player Position(Global.theHammond, Entity Exists(Global.owner_ball) ? Position Of(Event Player)
  • + 1.300 * Direction From Angles(Event Player.ownerball_handHorDegree + Horizontal Facing Angle Of(Event Player), 0) + Vector(0,
  • 1.200 * (-1 * Absolute Value(Total Time Elapsed % (2 * Global.dribbleperiod) / (1 * Global.dribbleperiod) - 1) ^ 2 + 1), 0)
  • : Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]), True);
  • }
  • }
  • rule("owner")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.owner_ball == Event Player;
  • }
  • actions
  • {
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player), -1 * Facing Direction Of(Event Player)
  • * 2.500 + Direction From Angles(-90 + Horizontal Facing Angle Of(Event Player), 0) * 0 + Eye Position(Event Player),
  • All Players(All Teams), Event Player, True), Eye Position(Event Player) + Facing Direction Of(Event Player) * 300, 40);
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("not owner")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.owner_ball != Event Player;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • Event Player.charge_shot_percent = 0;
  • Stop Chasing Player Variable(Event Player, charge_shot_percent);
  • Wait(Global.sigmaShotToGraspDuration, Ignore Condition);
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("owner primary to dribble left hand")
  • disabled rule("owner primary to dribble left hand")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.owner_ball == Event Player;
  • Is On Ground(Event Player) == True;
  • disabled Altitude Of(Global.theHammond) > Global.altitudeThresholdDribblable;
  • Is Button Held(Event Player, Primary Fire) == True;
  • Is Button Held(Event Player, Ability 2) == False;
  • Is Button Held(Event Player, Secondary Fire) == False;
  • }
  • actions
  • {
  • Event Player.ownerball_handHorDegree = 90;
  • disabled Apply Impulse(Global.theHammond, Direction From Angles(90 + Horizontal Angle From Direction(Direction Towards(Position Of(
  • Event Player) + Direction From Angles(Horizontal Facing Angle Of(Event Player) + Event Player.ownerball_handHorDegree, 0),
  • Position Of(Global.theHammond))), 0), 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Direction From Angles(-90 + Horizontal Angle From Direction(Direction Towards(Position Of(
  • Event Player) + Direction From Angles(Horizontal Facing Angle Of(Event Player) + Event Player.ownerball_handHorDegree, 0),
  • Position Of(Global.theHammond))), 0), 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Position Of(
  • Global.theHammond), Position Of(Event Player) + Direction From Angles(
  • Event Player.ownerball_handHorDegree + Horizontal Facing Angle Of(Event Player), 0))), 90), 8, To World,
  • Cancel Contrary Motion);
  • }
  • }
  • rule("owner secondary to dribble right hand")
  • rule("owner secondary to change dribble hand")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.owner_ball == Event Player;
  • Is On Ground(Event Player) == True;
  • disabled Altitude Of(Global.theHammond) > Global.altitudeThresholdDribblable;
  • Is Button Held(Event Player, Secondary Fire) == True;
  • Is Button Held(Event Player, Ability 2) == False;
  • "ショットボタン"
  • Is Button Held(Event Player, Primary Fire) == False;
  • disabled Is Button Held(Event Player, Primary Fire) == False;
  • }
  • actions
  • {
  • Event Player.ownerball_handHorDegree = -90;
  • Event Player.ownerball_handHorDegree = Event Player.ownerball_handHorDegree == 90 ? -90 : 90;
  • disabled Apply Impulse(Global.theHammond, Direction From Angles(90 + Horizontal Angle From Direction(Direction Towards(Position Of(
  • Event Player) + Direction From Angles(Horizontal Facing Angle Of(Event Player) + Event Player.ownerball_handHorDegree, 0),
  • Position Of(Global.theHammond))), 0), 0.001, To World, Cancel Contrary Motion);
  • disabled Apply Impulse(Global.theHammond, Direction From Angles(-90 + Horizontal Angle From Direction(Direction Towards(Position Of(
  • Event Player) + Direction From Angles(Horizontal Facing Angle Of(Event Player) + Event Player.ownerball_handHorDegree, 0),
  • Position Of(Global.theHammond))), 0), 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Global.theHammond, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Position Of(
  • Global.theHammond), Position Of(Event Player) + Direction From Angles(
  • Event Player.ownerball_handHorDegree + Horizontal Facing Angle Of(Event Player), 0))), 90), 8, To World,
  • Cancel Contrary Motion);
  • }
  • }
  • disabled rule("owner press ability 2 to stop camera")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.owner_ball == Event Player;
  • Has Status(Event Player, Stunned) == False;
  • Is Button Held(Event Player, Ability 2) == True;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • }
  • }
  • rule("crouch to start charge jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Crouching(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.charge_jump_percent = 0;
  • Chase Player Variable Over Time(Event Player, charge_jump_percent, 100, 0.850, Destination and Duration);
  • }
  • }
  • rule("stand for seconds to reset charge jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Is Crouching(Event Player) == False;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, charge_jump_percent);
  • Wait(2, Abort When False);
  • Event Player.charge_jump_percent = 0;
  • Stop Chasing Player Variable(Event Player, charge_jump_percent);
  • }
  • }
  • rule("human jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is In Air(Event Player) == True;
  • }
  • actions
  • {
  • Skip If(Global.owner_ball != Event Player, 1);
  • Apply Impulse(Global.theHammond, Up, Event Player.charge_jump_percent * 0.120, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Up, Event Player.charge_jump_percent * 0.110, To World, Cancel Contrary Motion);
  • Stop Chasing Player Variable(Event Player, charge_jump_percent);
  • Event Player.charge_jump_percent = 0;
  • }
  • }
  • rule("hammond touch ring 0")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Altitude Of(Event Player) > 3.500;
  • Distance Between(Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(Horizontal Angle From Direction(
  • Direction Towards(Global.ring_positions[0], Position Of(Event Player))), 0), Position Of(Event Player)
  • + Global.vec_hammond_centerGap) < Global.ring_smallRadius + Global.radius_hammond;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Direction Towards(Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(
  • Horizontal Angle From Direction(Direction Towards(Global.ring_positions[0], Position Of(Event Player))), 0), Position Of(
  • Event Player) + Global.vec_hammond_centerGap), 0.400 * Speed Of(Event Player), To World, Cancel Contrary Motion);
  • Play Effect(All Players(All Teams), Explosion Sound, White, Event Player, Speed Of(Event Player) * 4);
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("hammond goals ring 0")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Global.currentGameState == Global.stateGame;
  • Event Player.ham_timePenaltyFromBelow == 0;
  • Vertical Speed Of(Event Player) < 0;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • > Global.ring_floor_distanceY + Global.stageAltitude + -0.400;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.ring_floor_distanceY + Global.stageAltitude + 0.600;
  • Distance Between(Global.ring_positions[0], Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.length_yoyuu_goalIn + (Global.ring_largeRadius - Global.ring_smallRadius - Global.radius_hammond);
  • }
  • actions
  • {
  • Global.team_scores[2] += 2 + Global.isThreePtsShot * 1;
  • Play Effect(All Players(All Teams), Ring Explosion, White, Event Player, 15 + Global.isThreePtsShot * 15);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, White, Global.theHammond, 100);
  • Play Effect(All Players(Team 1), Bad Explosion, Team 2, Event Player, 15);
  • Small Message(All Players(Team 1), String("{0} {1}", String("Goal"), Icon String(Sad)));
  • Play Effect(All Players(Team 2), Good Explosion, Team 2, Event Player, 15);
  • Small Message(All Players(Team 2), String("{0} {1}", String("Goal"), Icon String(Happy)));
  • Global.currentGameState = Global.statePoint;
  • Abort If(Global.isThreePtsShot == False);
  • Big Message(All Players(All Teams), Custom String("Three points shot!!"));
  • }
  • }
  • rule("hammond go through ring 0 upward")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Global.currentGameState == Global.stateGame;
  • Vertical Speed Of(Event Player) > 0;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • > Global.ring_floor_distanceY + Global.stageAltitude + -0.800;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.ring_floor_distanceY + Global.stageAltitude + 0.150;
  • Distance Between(Global.ring_positions[0], Position Of(Event Player) + Global.vec_hammond_centerGap) < 0.300 + (
  • Global.ring_largeRadius - Global.ring_smallRadius - Global.radius_hammond);
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ham_timePenaltyFromBelow);
  • Event Player.ham_timePenaltyFromBelow = 3;
  • Small Message(All Players(All Teams), Custom String("No upward!"));
  • Chase Player Variable At Rate(Event Player, ham_timePenaltyFromBelow, 0, 1, None);
  • }
  • }
  • rule("ring 0 effect,text")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(0, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(60, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(60, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(120, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(120, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(180, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(180, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(240, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(240, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(300, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(300, 0),
  • Global.ring_positions[0] + Global.ring_largeRadius * Direction From Angles(360, 0), White, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", Global.team_scores[2], Custom String("pts")),
  • Global.ring_positions[0], 4, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Light Shaft, Team 1, Global.ring_positions[0], Global.ring_largeRadius,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Ring, Orange, Vector(X Component Of(Global.ring_positions[0]), Global.stageAltitude,
  • Z Component Of(Global.ring_positions[0])), Global.radius_underGoal, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Ring, Purple, Vector(X Component Of(Global.ring_positions[0]), Global.stageAltitude,
  • Z Component Of(Global.ring_positions[0])), 1 + Global.threePointsRadius, Visible To Position and Radius);
  • }
  • }
  • rule("step under the ring 0")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is On Ground(Event Player) == True;
  • Distance Between(Vector(X Component Of(Global.ring_positions[0]), Global.stageAltitude, Z Component Of(Global.ring_positions[0])),
  • Position Of(Event Player)) < Global.radius_underGoal;
  • }
  • actions
  • {
  • disabled Teleport(Event Player, Position Of(Event Player) + 4 * Direction From Angles(Horizontal Angle From Direction(Direction Towards(
  • Global.ring_positions[0], Position Of(Event Player))), 0));
  • Apply Impulse(Event Player, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Global.ring_positions[0],
  • Position Of(Event Player))), -45), 7, To World, Cancel Contrary Motion);
  • Set Status(Event Player, Null, Stunned, 0.800);
  • }
  • }
  • rule("hammond touch ring 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Altitude Of(Event Player) > 3.500;
  • Distance Between(Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(Horizontal Angle From Direction(
  • Direction Towards(Global.ring_positions[1], Position Of(Event Player))), 0), Position Of(Event Player)
  • + Global.vec_hammond_centerGap) < Global.ring_smallRadius + Global.radius_hammond;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Direction Towards(Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(
  • Horizontal Angle From Direction(Direction Towards(Global.ring_positions[1], Position Of(Event Player))), 0), Position Of(
  • Event Player) + Global.vec_hammond_centerGap), 0.400 * Speed Of(Event Player), To World, Cancel Contrary Motion);
  • Play Effect(All Players(All Teams), Explosion Sound, White, Event Player, Speed Of(Event Player) * 4);
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("hammond goals ring 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Global.currentGameState == Global.stateGame;
  • Event Player.ham_timePenaltyFromBelow == 0;
  • Vertical Speed Of(Event Player) < 0;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • > Global.ring_floor_distanceY + Global.stageAltitude + -0.400;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.ring_floor_distanceY + Global.stageAltitude + 0.600;
  • Distance Between(Global.ring_positions[1], Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.length_yoyuu_goalIn + (Global.ring_largeRadius - Global.ring_smallRadius - Global.radius_hammond);
  • }
  • actions
  • {
  • Global.team_scores[1] += 2 + Global.isThreePtsShot * 1;
  • Play Effect(All Players(All Teams), Ring Explosion, White, Event Player, 15 + Global.isThreePtsShot * 15);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, White, Global.theHammond, 100);
  • Play Effect(All Players(Team 1), Good Explosion, Team 1, Event Player, 15);
  • Small Message(All Players(Team 1), String("{0} {1}", String("Goal"), Icon String(Happy)));
  • Play Effect(All Players(Team 2), Bad Explosion, Team 1, Event Player, 15);
  • Small Message(All Players(Team 2), String("{0} {1}", String("Goal"), Icon String(Sad)));
  • Global.currentGameState = Global.statePoint;
  • Abort If(Global.isThreePtsShot == False);
  • Big Message(All Players(All Teams), Custom String("Three points shot!!"));
  • }
  • }
  • rule("hammond go through ring 1 upward")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Global.currentGameState == Global.stateGame;
  • Vertical Speed Of(Event Player) > 0;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • > Global.ring_floor_distanceY + Global.stageAltitude + -0.800;
  • Y Component Of(Position Of(Event Player) + Global.vec_hammond_centerGap)
  • < Global.ring_floor_distanceY + Global.stageAltitude + 0.150;
  • Distance Between(Global.ring_positions[1], Position Of(Event Player) + Global.vec_hammond_centerGap) < 0.300 + (
  • Global.ring_largeRadius - Global.ring_smallRadius - Global.radius_hammond);
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ham_timePenaltyFromBelow);
  • Event Player.ham_timePenaltyFromBelow = 3;
  • Small Message(All Players(All Teams), Custom String("No upward!"));
  • Chase Player Variable At Rate(Event Player, ham_timePenaltyFromBelow, 0, 1, None);
  • }
  • }
  • rule("step under the ring 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is On Ground(Event Player) == True;
  • Distance Between(Vector(X Component Of(Global.ring_positions[1]), Global.stageAltitude, Z Component Of(Global.ring_positions[1])),
  • Position Of(Event Player)) < Global.radius_underGoal;
  • }
  • actions
  • {
  • disabled Teleport(Event Player, Position Of(Event Player) + 4 * Direction From Angles(Horizontal Angle From Direction(Direction Towards(
  • Global.ring_positions[0], Position Of(Event Player))), 0));
  • Apply Impulse(Event Player, Direction From Angles(Horizontal Angle From Direction(Direction Towards(Global.ring_positions[1],
  • Position Of(Event Player))), -45), 7, To World, Cancel Contrary Motion);
  • Set Status(Event Player, Null, Stunned, 0.800);
  • }
  • }
  • rule("ring 1 effect,text")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(0, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(60, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(60, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(120, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(120, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(180, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(180, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(240, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(240, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(300, 0), White, Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam,
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(300, 0),
  • Global.ring_positions[1] + Global.ring_largeRadius * Direction From Angles(360, 0), White, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), String("{0} {1}", Global.team_scores[1], Custom String("pts")),
  • Global.ring_positions[1], 4, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Light Shaft, Team 2, Global.ring_positions[1], Global.ring_largeRadius,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Ring, Orange, Vector(X Component Of(Global.ring_positions[1]), Global.stageAltitude,
  • Z Component Of(Global.ring_positions[1])), Global.radius_underGoal, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Ring, Purple, Vector(X Component Of(Global.ring_positions[1]), Global.stageAltitude,
  • Z Component Of(Global.ring_positions[1])), 1 + Global.threePointsRadius, Visible To Position and Radius);
  • }
  • }
  • rule("make match time not be zero")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Match Time <= Global.lowestMatchTime;
  • }
  • actions
  • {
  • Pause Match Time;
  • }
  • }
  • rule("team 1 win")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Match Time <= Global.lowestMatchTime;
  • Global.team_scores[1] > Global.team_scores[2];
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("team 2 win")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Match Time <= Global.lowestMatchTime;
  • Global.team_scores[1] < Global.team_scores[2];
  • }
  • actions
  • {
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("human three point line out")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is On Ground(Event Player) == True;
  • Is True For All(Global.ring_positions, Distance Between(Position Of(Event Player), Vector(X Component Of(Current Array Element),
  • Global.stageAltitude, Z Component Of(Current Array Element))) > Global.threePointsRadius) == True;
  • }
  • actions
  • {
  • Event Player.isLastStepOutOfTPSLine = True;
  • }
  • }
  • rule("human three point line in")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Global.currentGameState == Global.stateGame;
  • Is On Ground(Event Player) == True;
  • Is True For Any(Global.ring_positions, Distance Between(Position Of(Event Player), Vector(X Component Of(Current Array Element),
  • Global.stageAltitude, Z Component Of(Current Array Element))) < Global.threePointsRadius) == True;
  • }
  • actions
  • {
  • Event Player.isLastStepOutOfTPSLine = False;
  • }
  • }
  • rule("grasp cancel")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Sigma;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait(Global.sigmaGraspDuration, Abort When False);
  • Set Status(Event Player, Null, Hacked, 0.016);
  • }
  • }
  • disabled rule("debug camera")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • Start Camera(Event Player, Eye Position(Global.theHammond) + Vector(2, 0, 0), Eye Position(Global.theHammond), 0);
  • }
  • }
  • disabled rule("debug camera stop")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == False;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • }
  • }
  • disabled rule("owner left")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.owner_ball != Null;
  • Entity Exists(Global.owner_ball) == False;
  • }
  • actions
  • {
  • Stop Forcing Player Position(Global.theHammond);
  • Teleport(Global.theHammond, Vector((Global.X[0] + Global.X[1]) / 2, Global.stageAltitude + 1, (Global.Znanka[0] + Global.Znanka[1])
  • / 2));
  • }
  • }
  • rule("ult dash")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Ultimate) == True;
  • Normalized Health(Event Player) == 1;
  • }
  • actions
  • {
  • Damage(Event Player, Null, 20);
  • Set Status(Event Player, Null, Burning, 4);
  • Set Move Speed(Event Player, 320);
  • Wait(0.150, Ignore Condition);
  • Set Move Speed(Event Player, 270);
  • Wait(0.150, Ignore Condition);
  • Set Move Speed(Event Player, 220);
  • Wait(0.150, Ignore Condition);
  • Set Move Speed(Event Player, 65);
  • Wait(3.540, Ignore Condition);
  • Set Move Speed(Event Player, 100);
  • }
  • }
Join the Workshop.codes Discord