Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "(VW8VS)エイムプチプチ bubble picking 006 by @nakamoooooo *インタラクトでプロモードになり,プライマリのボタンを押すタイミングでプチれるようになる *プチプチをつぶす音を追加"
  • Description: "(VW8VS)エイムプチプチ bubble picking 007 by @nakamoooooo *プチプチに着色,色の再評価や算出が加わったので少し重くなった *エフェクト作成処理にwaitを追加 *ワークショップ設定にプチプチを着色するかどうかの設定を追加"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Match Voice Chat: Enabled
  • Max Spectators: 12
  • }
  • modes
  • {
  • Deathmatch
  • {
  • enabled maps
  • {
  • Workshop Island Night
  • }
  • }
  • General
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • Respawn As Random Hero: On
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Doomfist
  • {
  • No Ammunition Requirement: On
  • Projectile Speed: 500%
  • Quick Melee: Off
  • Rising Uppercut: Off
  • Rocket Punch Cooldown Time: 30%
  • Seismic Slam: Off
  • Ultimate Ability Meteor Strike: Off
  • }
  • Mei
  • {
  • Cryo-Freeze: Off
  • Ice Wall: Off
  • No Ammunition Requirement: On
  • Projectile Speed: 500%
  • Quick Melee: Off
  • Secondary Fire: Off
  • Ultimate Ability Blizzard: Off
  • }
  • Symmetra
  • {
  • No Ammunition Requirement: On
  • Quick Melee: Off
  • Secondary Fire: Off
  • Sentry Turret: Off
  • Teleporter Cooldown Time: 30%
  • Ultimate Ability Photon Barrier: Off
  • }
  • enabled heroes
  • {
  • Doomfist
  • }
  • }
  • }
  • workshop
  • {
  • coloring_着色: On
  • Number_of_bubble_プチプチの数: 1000
  • radius_of_bubble_cm_プチプチの半径: 3.000
  • width_m_横幅: 20.000
  • }
  • extensions
  • {
  • Beam Effects
  • Explosion Sounds
  • Play More Effects
  • }
  • }
  • variables
  • {
  • global:
  • 0: array_pos_bubble
  • 1: i_create_array_pos
  • 2: radius_of_sight
  • 3: i_create_effect
  • 4: null_pos
  • 5: radius_bubble_meter
  • 6: number_of_bubble
  • 7: width_bubble_spawn_area_m
  • 8: half_width_area_m
  • 9: beam_center_vector
  • 10: the_bot
  • 11: array_color_bubble
  • 12: all_colors
  • 13: bool_do_coloring
  • player:
  • 0: array_of_bubble_pos
  • 1: rayhitpos
  • 2: rayhit_bubble_pos
  • 3: index_of_crushing_bubble_in_glo
  • 4: score_count
  • 5: array_pos_bubble_in_angle
  • 6: array_pos_bubble_in_radius
  • 7: is_pro_mode_on
  • 8: array_of_bubble_color
  • }
  • subroutines
  • {
  • 0: fire
  • 1: playCrushSound
  • 2: create_bubble_effects
  • }
  • rule("glo init")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.bool_do_coloring = Workshop Setting Toggle(Custom String("bubble_プチプチ"), Custom String("coloring_着色"), False, 2);
  • Global.all_colors = Array(Color(Yellow), Color(Green), Color(Purple), Color(Red), Color(Blue), Color(Aqua), Color(Orange), Color(
  • Sky Blue), Color(Turquoise), Color(Lime Green), Color(Rose), Color(Violet));
  • Global.width_bubble_spawn_area_m = Workshop Setting Real(Custom String("area_領域"), Custom String("width_(m)_横幅"), 40, 4, 40, 0);
  • Global.half_width_area_m = Global.width_bubble_spawn_area_m / 2;
  • Disable Inspector Recording;
  • Global.number_of_bubble = Workshop Setting Integer(Custom String("bubble_プチプチ"), Custom String("Number_of_bubble_プチプチの数"), 500, 20,
  • 1000, 0);
  • Disable Built-In Game Mode Announcer;
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Music;
  • Global.radius_bubble_meter = Workshop Setting Real(Custom String("bubble_プチプチ"), Custom String("radius_of_bubble_(cm)_プチプチの半径"), 8,
  • 1, 30, 0) / 100;
  • Global.array_color_bubble = Empty Array;
  • Global.array_pos_bubble = Empty Array;
  • Global.radius_of_sight = 8;
  • Create HUD Text(Host Player, Custom String("{0}{1}", String("Server Load Peak"), Server Load Peak), Null, Null, Left, 0, Color(
  • White), Color(White), Color(White), Visible To and String, Default Visibility);
  • For Global Variable(i_create_array_pos, 0, Global.number_of_bubble, 1);
  • Modify Global Variable(array_pos_bubble, Append To Array, Vector(Random Real(-1 * Global.half_width_area_m,
  • Global.half_width_area_m), Random Real(0, 3), Random Real(-1 * Global.half_width_area_m, Global.half_width_area_m)));
  • Modify Global Variable(array_color_bubble, Append To Array, Random Value In Array(Global.all_colors));
  • If(Global.i_create_array_pos % 4 == 0);
  • Wait(0.016, Ignore Condition);
  • End;
  • End;
  • For Global Variable(i_create_effect, 0, 126, 1);
  • Create Effect(Local Player, Sphere, Color(White), Local Player.array_of_bubble_pos[Evaluate Once(Global.i_create_effect)],
  • Global.radius_bubble_meter, Visible To Position and Radius);
  • End;
  • Call Subroutine(create_bubble_effects);
  • Global.null_pos = Vector(0, 500, 0);
  • Create Effect(Local Player, Ring, Color(Blue), Update Every Frame(Position Of(Local Player)), Global.radius_of_sight,
  • Visible To Position and Radius);
  • Create HUD Text(All Players(All Teams), String("{0}: {1}", String("Remaining"), Count Of(Global.array_pos_bubble)), Null, Null,
  • Top, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Global.beam_center_vector = Vector(0, 1, 0);
  • Create Beam Effect(Local Player, Torbjörn Turret Sight Beam, Global.beam_center_vector + Vector(1, 0, 1)
  • * Global.half_width_area_m, Global.beam_center_vector + Vector(-1, 0, 1) * Global.half_width_area_m, Color(Team 1),
  • Visible To);
  • Create Beam Effect(Local Player, Torbjörn Turret Sight Beam, Global.beam_center_vector + Vector(-1, 0, 1)
  • * Global.half_width_area_m, Global.beam_center_vector + Vector(-1, 0, -1) * Global.half_width_area_m, Color(Team 1),
  • Visible To);
  • Create Beam Effect(Local Player, Torbjörn Turret Sight Beam, Global.beam_center_vector + Vector(-1, 0, -1)
  • * Global.half_width_area_m, Global.beam_center_vector + Vector(1, 0, -1) * Global.half_width_area_m, Color(Team 1),
  • Visible To);
  • Create Beam Effect(Local Player, Torbjörn Turret Sight Beam, Global.beam_center_vector + Vector(1, 0, -1)
  • * Global.half_width_area_m, Global.beam_center_vector + Vector(1, 0, 1) * Global.half_width_area_m, Color(Team 1), Visible To);
  • Create Dummy Bot(Hero(Roadhog), All Teams, 12, Vector(0, -10, 0), Vector(0, 0, 0));
  • Global.the_bot = Last Created Entity;
  • Start Forcing Player Position(Global.the_bot, Vector(0, -10, 0), False);
  • Set Max Health(Global.the_bot, 100 * (Global.number_of_bubble / 600));
  • Create HUD Text(Local Player, Custom String("{0}でプロモード({1}を押すタイミングでプチ)のon/off", Input Binding String(Button(Interact)),
  • Input Binding String(Button(Primary Fire))), Null, Null, Left, 1, Color(White), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • }
  • }
  • rule("player loop")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • Wait Until(Round To Integer(12 * Total Time Elapsed / 0.400 % 12, Down) == Slot Of(Event Player), 99999);
  • While(True);
  • Event Player.array_of_bubble_pos = Filtered Array(Global.array_pos_bubble, Distance Between(Eye Position(Event Player),
  • Current Array Element) < Global.radius_of_sight);
  • Event Player.array_of_bubble_pos = Sorted Array(Event Player.array_of_bubble_pos, Distance Between(Eye Position(Event Player),
  • Current Array Element));
  • Event Player.array_of_bubble_pos = Array Slice(Event Player.array_of_bubble_pos, 0, 126);
  • Event Player.array_of_bubble_color = Mapped Array(Event Player.array_of_bubble_pos, Global.array_color_bubble[Index Of Array Value(
  • Global.array_pos_bubble, Current Array Element)]);
  • Wait(0.400, Ignore Condition);
  • End;
  • }
  • }
  • rule("player primary")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Firing Primary(Event Player) == True;
  • }
  • actions
  • {
  • If(Event Player.is_pro_mode_on == False);
  • Call Subroutine(fire);
  • End;
  • }
  • }
  • rule("player init")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Custom String("{0} {1}", Event Player.score_count, Event Player), Null, Null, Right,
  • -1 * Event Player.score_count, Color(White), Color(White), Color(White), Visible To Sort Order and String, Default Visibility);
  • Event Player.score_count = 0;
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("game set")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • (Count Of(Global.array_pos_bubble) == 0 || Match Time == 0) == True;
  • }
  • actions
  • {
  • Declare Player Victory(Last Of(Sorted Array(All Players(All Teams), Current Array Element.score_count)));
  • }
  • }
  • rule("game start glo")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Set Match Time(60 * 60);
  • }
  • }
  • rule("fire")
  • {
  • event
  • {
  • Subroutine;
  • fire;
  • }
  • actions
  • {
  • Event Player.array_pos_bubble_in_angle = Filtered Array(Global.array_pos_bubble, Angle Between Vectors(Facing Direction Of(
  • Event Player), Vector Towards(Eye Position(Event Player), Current Array Element)) < 20);
  • Event Player.array_pos_bubble_in_radius = Filtered Array(Event Player.array_pos_bubble_in_angle, Distance Between(Eye Position(
  • Event Player), Current Array Element) < Global.radius_of_sight);
  • disabled Event Player.rayhitpos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Global.radius_of_sight * Facing Direction Of(Event Player), Null, Null, False);
  • "ごちゃっとしてるのは点と直線の距離"
  • Event Player.rayhit_bubble_pos = First Of(Filtered Array(Event Player.array_pos_bubble_in_radius, Distance Between(Vector(0, 0, 0),
  • Cross Product(Vector Towards(Eye Position(Event Player), Current Array Element), Facing Direction Of(Event Player)))
  • / Distance Between(Vector(0, 0, 0), Facing Direction Of(Event Player)) < Global.radius_bubble_meter));
  • Event Player.index_of_crushing_bubble_in_glo = Index Of Array Value(Global.array_pos_bubble, Event Player.rayhit_bubble_pos);
  • disabled Event Player.rayhit_bubble_pos = First Of(Filtered Array(Global.array_pos_bubble, Distance Between(Event Player.rayhitpos,
  • Current Array Element) < Global.radius_bubble_meter));
  • If(Event Player.rayhit_bubble_pos == Null);
  • disabled Small Message(Event Player, Custom String("miss"));
  • Else;
  • Play Effect(All Players(All Teams), Ring Explosion, Global.array_color_bubble[Event Player.index_of_crushing_bubble_in_glo],
  • Event Player.rayhit_bubble_pos, Max(0.500, 3 * Global.radius_bubble_meter));
  • Modify Global Variable(array_color_bubble, Remove From Array By Index, Event Player.index_of_crushing_bubble_in_glo);
  • Modify Global Variable(array_pos_bubble, Remove From Array By Value, Event Player.rayhit_bubble_pos);
  • Event Player.array_of_bubble_pos[Index Of Array Value(Event Player.array_of_bubble_pos, Event Player.rayhit_bubble_pos)
  • ] = Global.null_pos;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Aqua), Event Player.rayhit_bubble_pos, Max(0.500,
  • 3 * Global.radius_bubble_meter));
  • Call Subroutine(playCrushSound);
  • Event Player.score_count += 1;
  • Damage(Global.the_bot, Event Player, 1);
  • End;
  • disabled Wait(0.125, Ignore Condition);
  • disabled Loop If Condition Is True;
  • }
  • }
  • rule("player pro mode on off")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Event Player.is_pro_mode_on = !Event Player.is_pro_mode_on;
  • If(Event Player.is_pro_mode_on);
  • Set Primary Fire Enabled(Event Player, False);
  • Small Message(Event Player, Custom String("pro mode on"));
  • Else;
  • Set Primary Fire Enabled(Event Player, True);
  • Small Message(Event Player, Custom String("pro mode off"));
  • End;
  • }
  • }
  • rule("player primary button")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Update Every Frame(Is Button Held(Event Player, Button(Primary Fire))) == True;
  • }
  • actions
  • {
  • If(Event Player.is_pro_mode_on == True);
  • Call Subroutine(fire);
  • End;
  • }
  • }
  • rule("playCrushSound")
  • {
  • event
  • {
  • Subroutine;
  • playCrushSound;
  • }
  • actions
  • {
  • If(Random Real(0, 1) < 0.700);
  • If(Random Real(0, 1) < 0.700);
  • Play Effect(All Players(All Teams), Baptiste Biotic Launcher Explosion Sound, Color(Team 1), Event Player.rayhit_bubble_pos, 60);
  • Else;
  • Play Effect(All Players(All Teams), Baptiste Biotic Launcher Explosion Sound, Color(Team 2), Event Player.rayhit_bubble_pos, 60);
  • End;
  • Else;
  • If(Random Real(0, 1) < 0.700);
  • Play Effect(All Players(All Teams), Doomfist Rising Uppercut Impact Sound, Color(Team 1), Event Player.rayhit_bubble_pos, 60);
  • Else;
  • Play Effect(All Players(All Teams), Doomfist Rising Uppercut Impact Sound, Color(Team 2), Event Player.rayhit_bubble_pos, 60);
  • End;
  • End;
  • }
  • }
  • rule("createbubbleeffects")
  • {
  • event
  • {
  • Subroutine;
  • create_bubble_effects;
  • }
  • actions
  • {
  • If(Global.bool_do_coloring == True);
  • For Global Variable(i_create_effect, 0, 126, 1);
  • Create Effect(Local Player, Sphere, Local Player.array_of_bubble_color[Evaluate Once(Global.i_create_effect)],
  • Local Player.array_of_bubble_pos[Evaluate Once(Global.i_create_effect)], Global.radius_bubble_meter,
  • Visible To Position Radius and Color);
  • If(Global.i_create_effect % 16 == 0);
  • Wait(0.016, Ignore Condition);
  • End;
  • End;
  • Else;
  • For Global Variable(i_create_effect, 0, 126, 1);
  • Create Effect(Local Player, Sphere, Color(White), Local Player.array_of_bubble_pos[Evaluate Once(Global.i_create_effect)],
  • Global.radius_bubble_meter, Visible To Position and Radius);
  • If(Global.i_create_effect % 16 == 0);
  • Wait(0.016, Ignore Condition);
  • End;
  • End;
  • End;
  • }
  • }
Join the Workshop.codes Discord