Return to post
- settings
- {
- main
- {
Description: "(B4G2Z)giri giri ball ギリギリボール 1.15 by @nakamoooooo. ボールのぎりぎりに近づくゲーム *リングエフェクトの精度向上 *Nepal Villageを追加"
- Description: "(B4G2Z)giri giri ball ギリギリボール 1.16 by @nakamoooooo. ボールのぎりぎりに近づくゲーム *Petraを追加 *Parisを追加 *Ecopoint: Antarcticaを追加"
- }
- lobby
- {
- Allow Players Who Are In Queue: Yes
- Map Rotation: After A Game
- Match Voice Chat: Enabled
- Max FFA Players: 11
- Max Spectators: 12
- }
- modes
- {
- Deathmatch
- {
- enabled maps
- {
- Black Forest
- Blizzard World
- Castillo
- Ecopoint: Antarctica
- Eichenwalde
- Hanamura
- Horizon Lunar Colony
- Ilios Lighthouse
- Lijiang Control Center
- Nepal Village
- Oasis City Center
- Paris
- Petra
- }
- }
- General
- {
- Game Length In Minutes: 5
- Game Mode Start: Immediately
- Limit Roles: 2 Of Each Role Per Team
- Respawn As Random Hero: On
- Score To Win: 30
- }
- }
- heroes
- {
- General
- {
- Lúcio
- {
- Damage Dealt: 10%
- Primary Fire: Off
- Soundwave Knockback Scalar: 0%
- Ultimate Ability Sound Barrier: Off
- }
- Wrecking Ball
- {
- Roll Always Active: On
- }
- enabled heroes
- {
- Lúcio
- }
- }
- }
- }
- variables
- {
- global:
- 0: current_area_center_pos
- 1: current_playarea_radius
- 2: theBall
- 3: current_pointarea_radius
- 4: current_deadlyarea_radius
- 5: min_radius_colorchange
- 6: max_radius_colorchange
- 7: a_red
- 8: b_red
- 9: a_green
- 10: b_green
- player:
- 0: score_get_percent
- 1: plusone_txt
- 2: penalty_txt
- 3: penalty_value
- }
- subroutines
- {
- 0: teleportToStage
- }
- disabled rule("debug interact teleport")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Is Button Held(Event Player, Button(Interact)) == True;
- }
- actions
- {
- disabled Teleport(Event Player, Nearest Walkable Position(Global.current_area_center_pos + 6 * Direction From Angles(Random Integer(0, 360),
- 0)));
- Teleport(Event Player, Eye Position(Event Player) + 15 * Facing Direction Of(Event Player));
- }
- }
- disabled rule("debug ult center pos")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Ultimate)) == True;
- }
- actions
- {
- Global.current_area_center_pos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
- + 10 * Facing Direction Of(Event Player), All Players(All Teams), Event Player, True);
- }
- }
- rule("init")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.current_playarea_radius = 13;
- Global.current_pointarea_radius = 6;
- Global.current_deadlyarea_radius = 1.800;
- Disable Built-In Game Mode Scoring;
- Global.min_radius_colorchange = Global.current_deadlyarea_radius;
- Global.max_radius_colorchange = 15;
- Global.a_red = 128 / (Global.max_radius_colorchange - Global.min_radius_colorchange);
- Global.b_red = -1 * Global.min_radius_colorchange * Global.a_red;
- Global.a_green = -176 / (Global.max_radius_colorchange - Global.min_radius_colorchange);
- Global.b_green = 256 - -1 * Global.min_radius_colorchange * Global.a_green;
- }
- }
- rule("effects")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Create Effect(All Players(All Teams), Sphere, Color(Sky Blue), Global.current_area_center_pos, Global.current_playarea_radius,
- Visible To Position and Radius);
- disabled Create Effect(All Players(All Teams), Sphere, Color(Green), Global.theBall, Global.current_pointarea_radius,
- Visible To Position and Radius);
- Create Effect(All Players(All Teams), Sphere, Color(Red), Update Every Frame(Vector(0, 0.800, 0) + Position Of(Global.theBall)),
- Global.current_deadlyarea_radius, Visible To Position and Radius);
- Create Icon(All Players(All Teams), Global.theBall, Circle, Visible To and Position, Color(Red), True);
- Create Icon(All Players(All Teams), Last Of(Sorted Array(All Players(All Teams), Score Of(Current Array Element))), Warning,
- Visible To and Position, Color(Yellow), True);
- Create HUD Text(All Players(All Teams), Custom String("ボールの近くにいつづけよう。でも赤い球に入らないよう注意!"), Null, Null, Right, 0, Color(White), Color(
- White), Color(White), Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), String("{0} {1} {2}", Ability Icon String(Hero(Lúcio), Button(Secondary Fire)), String(
- "Hit"), Hero Icon String(Hero(Wrecking Ball))), Null, Null, Top, 1, Color(White), Color(White), Color(White), Visible To,
- Default Visibility);
- Create HUD Text(All Players(All Teams), String("{0} {1} {2}", Ability Icon String(Hero(Lúcio), Button(Melee)), String("Hit"),
- Hero Icon String(Hero(Lúcio))), Null, Null, Top, 2, Color(White), Color(White), Color(White), Visible To, Default Visibility);
- Create Effect(All Players(All Teams), Ring, Color(Orange), Update Every Frame(Position Of(Global.theBall)), 8,
- Visible To Position and Radius);
- Create HUD Text(All Players(All Teams), Custom String("Keep close to the ball.\r\nBut be careful, do not step in the red sphere!"),
- Null, Null, Right, 1, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
- }
- }
- rule("area limit power")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Start Accelerating(Event Player, Direction Towards(Position Of(Event Player), Global.current_area_center_pos), 100 * (
- Distance Between(Position Of(Event Player), Global.current_area_center_pos) > Global.current_playarea_radius), 40, To World,
- Direction Rate and Max Speed);
- }
- }
- rule("center pos")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- If(Current Map == Map(Castillo));
- Global.current_area_center_pos = Vector(-102.381, 35.622, 58.412);
- Else If(Current Map == Map(Lijiang Control Center));
- Global.current_area_center_pos = Vector(-0.028, 273.673, 280.043);
- Else If(Current Map == Map(Black Forest));
- Global.current_area_center_pos = Vector(-15.275, 13.449, 4.502);
- Else If(Current Map == Map(Ilios Lighthouse));
- Global.current_area_center_pos = Vector(340.577, -21.276, -44.235);
- Else If(Current Map == Map(Oasis City Center));
- Global.current_area_center_pos = Vector(143.461, 3.324, 247.447);
- Else If(Current Map == Map(Horizon Lunar Colony));
- Global.current_area_center_pos = Vector(97.557, 13.892, -63.337);
- Else If(Current Map == Map(Eichenwalde));
- Global.current_area_center_pos = Vector(43.521, 8.185, -79.557);
- Else If(Current Map == Map(Hanamura));
- Global.current_area_center_pos = Vector(12.727, 2, -48.980);
- Else If(Current Map == Map(Nepal Village));
- Global.current_area_center_pos = Vector(-183.400, -94, -61.500);
- Global.current_playarea_radius = 15;
- Else If(Current Map == Map(Petra));
- Global.current_area_center_pos = Vector(0.500, -0.300, 5.600);
- Global.current_playarea_radius = 15;
- Else If(Current Map == Map(Paris));
- Global.current_area_center_pos = Vector(-85.500, 13.500, -62.800);
- Global.current_playarea_radius = 12.200;
- Else If(Current Map == Map(Ecopoint: Antarctica));
- Global.current_area_center_pos = Vector(5, 8, 0);
- Else If(Current Map == Map(Blizzard World));
- Global.current_area_center_pos = Vector(-70.843, 6.799, 72.887);
- Global.current_playarea_radius = 15;
- End;
- }
- }
- rule("ban lucio's wallride outside")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Lúcio;
- }
- conditions
- {
- Is On Wall(Event Player) == True;
- Distance Between(Position Of(Event Player), Global.current_area_center_pos) > Global.current_playarea_radius;
- }
- actions
- {
- Set Status(Event Player, Null, Stunned, 0.030);
- }
- }
- rule("game start global")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Create Dummy Bot(Hero(Wrecking Ball), All Teams, 11, Nearest Walkable Position(Global.current_area_center_pos), Vector(0, 0, 0));
- Global.theBall = Last Created Entity;
- Set Status(Global.theBall, Null, Unkillable, 9999);
- Set Match Time(180);
- }
- }
- rule("game start human")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Is Game In Progress == True;
- }
- actions
- {
- Call Subroutine(teleportToStage);
- }
- }
- rule("deadly zone out")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Dummy Bot(Event Player) == False;
- Distance Between(Position Of(Global.theBall), Position Of(Event Player)) > Global.current_deadlyarea_radius;
- }
- actions
- {
- Stop Chasing Player Variable(Event Player, score_get_percent);
- Chase Player Variable At Rate(Event Player, score_get_percent, 100, (Is In Line of Sight(Eye Position(Event Player), Eye Position(
- Global.theBall), Barriers Do Not Block LOS) ? 250 : 0) / (Distance Between(Position Of(Event Player), Position Of(
- Global.theBall)) + -0.900), Destination and Rate);
- }
- }
- rule("100 percent charge to get a score")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Dummy Bot(Event Player) == False;
- Event Player.score_get_percent == 100;
- }
- actions
- {
- Modify Player Score(Event Player, 1);
- Event Player.score_get_percent = 0;
- Play Effect(All Players(All Teams), Good Explosion, Color(White), Eye Position(Event Player) + Facing Direction Of(Event Player),
- 0.400);
- disabled Create In-World Text(All Players(All Teams), Custom String("+1"), Eye Position(Event Player) + Facing Direction Of(Event Player),
- 3.500, Do Not Clip, String, Color(White), Default Visibility);
- disabled Event Player.plusone_txt = Last Text ID;
- disabled Wait(0.250, Ignore Condition);
- disabled Destroy In-World Text(Event Player.plusone_txt);
- Small Message(Event Player, String("{0} {1}", Custom String("1"), String("Points Earned")));
- }
- }
- rule("player charge effect text")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- disabled Create Effect(All Players(All Teams), Good Aura, Color(White), Eye Position(Event Player) + Facing Direction Of(Event Player),
- 0.002 * Event Player.score_get_percent, Visible To Position and Radius);
- disabled Create HUD Text(Event Player, String("{0}%", Event Player.score_get_percent), Null, Null, Top, 0, Color(White), Color(White),
- Color(White), Visible To and String, Default Visibility);
- disabled Create In-World Text(Event Player, String("{0}%", Round To Integer(Event Player.score_get_percent, To Nearest)), Eye Position(
- Event Player) + Direction From Angles(Horizontal Facing Angle Of(Event Player), Vertical Facing Angle Of(Event Player) + 10)
- * 50, 2, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
- Create Progress Bar HUD Text(Event Player, Event Player.score_get_percent, String("{0}%", Round To Integer(
- Event Player.score_get_percent, To Nearest)), Top, 3, Custom Color(Min(128, Global.b_red + Global.a_red * Distance Between(
- Position Of(Event Player), Position Of(Global.theBall))), Max(80, Global.b_green + Global.a_green * Distance Between(
- Position Of(Event Player), Position Of(Global.theBall))), 0, Is In Line of Sight(Eye Position(Event Player), Eye Position(
- Global.theBall), Barriers Do Not Block LOS) ? 255 : 64), Color(White), Values and Color, Default Visibility);
- Create HUD Text(Event Player, Null, Custom String("\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Null, Top, 2, Color(White), Color(White), Color(
- White), None, Default Visibility);
- }
- }
- rule("deadly zone in")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Dummy Bot(Event Player) == False;
- Distance Between(Position Of(Global.theBall), Position Of(Event Player)) < Global.current_deadlyarea_radius;
- }
- actions
- {
- Stop Chasing Player Variable(Event Player, score_get_percent);
- Event Player.penalty_value = -1 * Round To Integer(Score Of(Event Player) / 2, Down);
- Big Message(Event Player, String("{0} {1}", -1 * Event Player.penalty_value, String("Points Lost")));
- Modify Player Score(Event Player, Event Player.penalty_value);
- Set Status(Event Player, Null, Knocked Down, 2);
- Play Effect(All Players(All Teams), Ring Explosion, Color(Red), Eye Position(Event Player), 5);
- disabled Create In-World Text(All Players(All Teams), Round To Integer(Event Player.penalty_value, To Nearest), Eye Position(Event Player)
- + Facing Direction Of(Event Player), 4, Do Not Clip, String, Color(Red), Default Visibility);
- disabled Event Player.penalty_txt = Last Text ID;
- disabled Wait(0.700, Ignore Condition);
- disabled Destroy In-World Text(Event Player.penalty_txt);
- }
- }
- rule("teleport")
- {
- event
- {
- Player Joined Match;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Alive(Event Player) == True;
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- Wait(2.500, Ignore Condition);
- Call Subroutine(teleportToStage);
- }
- }
- rule("boop ball")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- actions
- {
- If(Event Ability == Button(Secondary Fire) && Victim == Global.theBall);
- Apply Impulse(Victim, Direction From Angles(Horizontal Facing Angle Of(Event Player), -10 + Vertical Facing Angle Of(
- Event Player)), 14, To World, Cancel Contrary Motion);
- Else If(Event Ability == Button(Melee) && Victim != Global.theBall);
- Apply Impulse(Victim, Facing Direction Of(Event Player), 11, To World, Cancel Contrary Motion);
- Set Status(Victim, Null, Stunned, 0.500);
- End;
- }
- }
- rule("primary to melee")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Primary Fire)) == True;
- }
- actions
- {
- Press Button(Event Player, Button(Melee));
- }
- }
- rule("teleporttostage")
- {
- event
- {
- Subroutine;
- teleportToStage;
- }
- actions
- {
- Teleport(Event Player, Nearest Walkable Position(Global.current_area_center_pos + 6 * Direction From Angles(Random Integer(0, 360),
- 0)));
- }
- }
- rule("goOutDome longtime")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Dummy Bot(Event Player) == False;
- Distance Between(Position Of(Event Player), Global.current_area_center_pos) > Global.current_playarea_radius;
- }
- actions
- {
- Wait(2, Abort When False);
- Big Message(Event Player, String("{0} {1}", String("Stay"), String("Inside")));
- Wait(2, Abort When False);
- Call Subroutine(teleportToStage);
- Wait(0.200, Abort When False);
- Loop If Condition Is True;
- }
- }