Return to post
- 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;
- }
- }