Return to post
- settings
- {
- main
- {
Description: "(3V4W6)thebasketball 079 by @nakamoooooo *エグゾブーツ(ためジャンプ)の最大ためにかかる時間を0.35秒から0.2秒に変更 *しゃがみ終えて、同ための持続する時間を2.0秒から0.45秒に変更 *ショットのため中は胸元にボールが保持されるよう変更"
- Description: "(3V4W6)thebasketball 078 by @nakamoooooo *ドリブルの高さがプレイヤーの高さを反映するよう変更 *ボールをキャッチした瞬間には胸元(最高高度)にボールがくるよう変更 *ショットの強さを表す白いエフェクトの最小サイズを0に変更 *ショットをチャージなしで撃つときの初速は8.0m/sのつもりでしたが実はずっと9.5m/sでした"
- }
- 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
- 7: dash_direction_world
- 8: grasp_entered_time
- }
- 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, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- 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, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- 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, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- 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, Color(White),
- 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, Color(White),
- 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.100;
- Global.ring_wall_distanceZ = 1.500;
- Global.ring_floor_distanceY = 5;
- 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 = 2.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, Color(Purple), True);
- 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, Color(Purple),
Position Of(Global.theHammond) + Global.vec_hammond_centerGap, 1.300, Visible To Position and Radius);
- 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,
Color(White), Default Visibility);
Create Icon(All Players(All Teams), Global.owner_ball, Asterisk, Visible To and Position, Color(White), True);
- 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)
- + 3 * Direction From Angles(0 + 72 * Slot Of(Event Player), 0));
- 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)
- + 3 * Direction From Angles(180 + -72 * Slot Of(Event Player), 0));
- 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, Color(Yellow), Event Player, Global.isThreePtsShot * 1,
Visible To Position and Radius);
- 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, Color(White), Position Of(Event Player), Event Player.charge_shot_percent,
- 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, Color(Orange), Position Of(Event Player), 0.015 * Event Player.charge_jump_percent,
- Create Effect(All Players(All Teams), Sphere, Orange, 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, Color(White), Eye Position(
- 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}", Input Binding String(Button(Primary Fire)), Custom String("shoot")), Null, Null,
Right, 1, Color(White), Color(White), Color(White), String, Default Visibility);
- 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, 2, Color(White), Color(White), Color(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, Color(White), Color(White), Color(White), String, Default Visibility);
- "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, 4, Color(White), Color(White), Color(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, Color(White), Color(White), Color(White), String, Default Visibility);
- Crouch))), Null, Null, Right, 5, White, White, White, String, Default Visibility);
- Create HUD Text(Event Player, Null, Custom String(
- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), String("{0} {1} {2}", Array(
- Custom String("....."), Custom String("|...."), Custom String("||..."), Custom String("|||.."), Custom String("||||."),
- Custom String("|||||"))[Round To Integer(Event Player.charge_jump_percent / 20, Down)], Custom String("\r\n"),
Ability Icon String(Hero(Baptiste), Button(Crouch))), Top, 1, Color(White), Color(White), Color(Orange), Visible To and String,
Default Visibility);
- Ability Icon String(Hero(Baptiste), Button(Crouch))), Top, 1, White, White, Orange, Visible To and 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]), Color(White), Visible To Position and Radius);
- 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]), Color(White), Visible To Position and Radius);
- 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]), Color(White), Visible To Position and Radius);
- 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]), Color(White), Visible To Position and Radius);
- 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]), Color(White), Visible To Position and Radius);
- 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
- {
disabled Play Effect(All Players(All Teams), Good Explosion, Color(White), Event Player, 0.020);
- disabled 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, Button(Primary Fire)) == True;
- Is Button Held(Event Player, Primary Fire) == True;
- disabled Is In View Angle(Event Player, Position Of(Global.theHammond), 100) == True;
- }
- actions
- {
- "old"
- disabled Event Player.charge_shot_percent = 20;
- "new"
- Event Player.charge_shot_percent = 0;
- 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));
Stop Forcing Player Position(Global.theHammond);
Start Forcing Player Position(Global.theHammond, Entity Exists(Global.owner_ball) ? Eye Position(Event Player) + Vector(0, -0.200,
0) + 1.150 * Direction From Angles(Horizontal Facing Angle Of(Event Player), Min(90, 44 + Vertical Facing Angle Of(
Event Player))) : Vector(Global.X[4], Global.stageAltitude, Global.Znanka[4]), True);
disabled Start Forcing Player Position(Global.theHammond, Entity Exists(Global.owner_ball) ? Eye Position(Event Player) + Vector(0, -0.700,
0) + 0.200 * Direction From Angles(Horizontal Facing Angle Of(Event Player), 0) : Vector(Global.X[4], Global.stageAltitude,
Global.Znanka[4]), True);
- }
- }
- 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, Button(Primary Fire)) == 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));
- "old"
- disabled Apply Impulse(Global.theHammond, Facing Direction Of(Event Player), 8 + 0.075 * Event Player.charge_shot_percent, To World,
- Cancel Contrary Motion);
- "new"
- Apply Impulse(Global.theHammond, Facing Direction Of(Event Player), 9.500 + 0.060 * Event Player.charge_shot_percent, To World,
- Cancel Contrary Motion);
Play Effect(All Players(All Teams), Debuff Impact Sound, Color(White), Position Of(Event Player),
Event Player.charge_shot_percent);
- 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) + 1 * Facing Direction Of(Event Player), Position Of(Global.theHammond)
- 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;
- Event Player.grasp_entered_time = Total Time Elapsed;
- 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) ? Vector(X Component Of(Position Of(
- Event Player)), Global.stageAltitude, Z Component Of(Position Of(Event Player))) + 1.300 * Direction From Angles(
- Event Player.ownerball_handHorDegree + Horizontal Facing Angle Of(Event Player), 0) + Vector(0, (1.200 + Altitude Of(
- Event Player)) * (-1 * Absolute Value((Global.dribbleperiod + (Total Time Elapsed - Event Player.grasp_entered_time)) % (
- 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.ownerball_handHorDegree = 0;
- 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);
- }
- }
- 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, Button(Primary Fire)) == True;
Is Button Held(Event Player, Button(Ability 2)) == False;
Is Button Held(Event Player, Button(Secondary Fire)) == False;
- 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 change dribble hand")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Global.owner_ball == Event Player;
Is Button Held(Event Player, Button(Secondary Fire)) == True;
- Is Button Held(Event Player, Secondary Fire) == True;
- "ショットボタン"
Is Button Held(Event Player, Button(Primary Fire)) == False;
- Is Button Held(Event Player, Primary Fire) == False;
- }
- actions
- {
- disabled Event Player.ownerball_handHorDegree = Event Player.ownerball_handHorDegree == 90 ? -90 : 90;
- disabled 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);
- Event Player.ownerball_handHorDegree = Throttle Of(Event Player) == Vector(0, 0, 0)
- ? Event Player.ownerball_handHorDegree : Horizontal Angle From Direction(Throttle Of(Event Player));
- Wait(0.110, Ignore Condition);
- Loop If Condition Is True;
- }
- }
- disabled rule("")
- {
- 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, Button(Ability 2)) == True;
- 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.200, Destination and Duration);
- Chase Player Variable Over Time(Event Player, charge_jump_percent, 100, 0.350, 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(0.450, Abort When False);
- 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 Jumping(Event Player) == True;
- }
- actions
- {
- Apply Impulse(Event Player, Up, Event Player.charge_jump_percent * 0.070, 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, Color(White), Event Player, Speed Of(Event Player) * 4);
- 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, Color(White), Event Player, 15 + Global.isThreePtsShot * 15);
Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), Global.theHammond, 100);
Play Effect(All Players(Team 1), Bad Explosion, Color(Team 2), Event Player, 15);
- 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, Color(Team 2), Event Player, 15);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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, Color(White), Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Color(Team 1), Global.ring_positions[0], Global.ring_largeRadius,
- 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, Color(Orange), Vector(X Component Of(Global.ring_positions[0]), Global.stageAltitude,
- 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, Color(Purple), Vector(X Component Of(Global.ring_positions[0]), Global.stageAltitude,
- 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("be under the ring 0 human")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Sigma;
- }
- conditions
- {
- disabled Is Dummy Bot(Event Player) == False;
- Global.currentGameState == Global.stateGame;
- Distance Between(Vector(X Component Of(Global.ring_positions[0]), 0, Z Component Of(Global.ring_positions[0])), Vector(
- X Component Of(Position Of(Event Player)), 0, Z Component Of(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("be under the ring 1 human")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Sigma;
- }
- conditions
- {
- disabled Is Dummy Bot(Event Player) == False;
- Global.currentGameState == Global.stateGame;
- Distance Between(Vector(X Component Of(Global.ring_positions[1]), 0, Z Component Of(Global.ring_positions[1])), Vector(
- X Component Of(Position Of(Event Player)), 0, Z Component Of(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("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, Color(White), Event Player, Speed Of(Event Player) * 4);
- 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, Color(White), Event Player, 15 + Global.isThreePtsShot * 15);
Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), Global.theHammond, 100);
Play Effect(All Players(Team 1), Good Explosion, Color(Team 1), Event Player, 15);
- 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, Color(Team 1), Event Player, 15);
- 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("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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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), Color(White),
Visible To Position and Radius);
- 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, Color(White), Default Visibility);
Create Effect(All Players(All Teams), Light Shaft, Color(Team 2), Global.ring_positions[1], Global.ring_largeRadius,
- 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, Color(Orange), Vector(X Component Of(Global.ring_positions[1]), Global.stageAltitude,
- 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, Color(Purple), Vector(X Component Of(Global.ring_positions[1]), Global.stageAltitude,
- 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, Button(Interact)) == True;
- 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, Button(Interact)) == False;
- 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));
- }
- }
- disabled rule("ult dash old")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Is Button Held(Event Player, Button(Ultimate)) == True;
- Is Button Held(Event Player, Ultimate) == True;
- Normalized Health(Event Player) == 1;
- }
- actions
- {
- Damage(Event Player, Null, 20);
- Disable Movement Collision With Players(Event Player);
- 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);
- Enable Movement Collision With Players(Event Player);
- Set Move Speed(Event Player, 65);
- Wait(3.540, Ignore Condition);
- Set Move Speed(Event Player, 100);
- }
- }
- rule("step under the ring 0 ball")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Wrecking Ball;
- }
- 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("step under the ring 1 ball")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Wrecking Ball;
- }
- 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("ult dash new")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Is Button Held(Event Player, Button(Ultimate)) == True;
- Is Button Held(Event Player, Ultimate) == True;
- Normalized Health(Event Player) == 1;
- }
- actions
- {
- Event Player.dash_direction_world = Direction From Angles(Horizontal Angle From Direction(Throttle Of(Event Player))
- + Horizontal Facing Angle Of(Event Player), 0);
- Damage(Event Player, Null, 20);
- Disable Movement Collision With Players(Event Player);
- Set Status(Event Player, Null, Burning, 4);
- Apply Impulse(Event Player, Down, 0.001, To World, Cancel Contrary Motion);
- Apply Impulse(Event Player, Direction From Angles(Horizontal Angle From Direction(Event Player.dash_direction_world), -10),
- 20 - 0.800 * Speed Of In Direction(Event Player, Event Player.dash_direction_world), To World, Incorporate Contrary Motion);
- Wait(0.450, Ignore Condition);
- Apply Impulse(Event Player, -1 * Event Player.dash_direction_world, 0.500 * Max(0, Speed Of In Direction(Event Player,
- Event Player.dash_direction_world)), To World, Incorporate Contrary Motion);
- Enable Movement Collision With Players(Event Player);
- Set Move Speed(Event Player, 65);
- Wait(3.540, Ignore Condition);
- Set Move Speed(Event Player, 100);
- }
- }