Create
Return to post

Comparing difference between and

View raw
  • 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;
  • }
  • }
Join the Workshop.codes Discord