Return to post
- settings
- {
- main
- {
Description: "(WDVTF)Wavy Aim Trainer PTR 0.11 by @nakamoooooo *以下を禁止:バスティオンの変形、シグマ・ラインハルトのバリア *ゲームモードで、得点発表中も右側のスコアが表示されるよう変更"
- Description: "(WDVTF)Wavy Aim Trainer 0.14 by @nakamoooooo *新プリセット\"for Hanzo\"を追加 *workshop設定 solopractice hanzoを追加"
- }
- lobby
- {
- Allow Players Who Are In Queue: Yes
- Max FFA Players: 11
- Max Spectators: 12
- }
- modes
- {
- Deathmatch
- {
- enabled maps
- {
- Workshop Chamber
- }
- }
- General
- {
- Game Mode Start: Manual
- Hero Limit: Off
- Respawn Time Scalar: 60%
- }
- }
- heroes
- {
- General
- {
- Bastion
- {
- Reconfigure: Off
- }
- Brigitte
- {
- Whip Shot Cooldown Time: 0%
- }
- Doomfist
- {
- No Ammunition Requirement: On
- }
- Reinhardt
- {
- Barrier Field: Off
- Fire Strike Cooldown Time: 0%
- }
- Sigma
- {
- Experimental Barrier: Off
- }
- disabled heroes
- {
- Winston
- }
- }
- }
- }
- variables
- {
- global:
- 0: theBot
- 1: isSettingMode
- 2: toString_WaveForms
- 3: pos_presets
- 4: name_presets
- 5: radius_preset_sphere
- 6: i_create_sphere_txt
- 7: isHz
- 8: current_distance_of_bot
- 9: center_of_chamber
- 10: outside_center
- 11: current_center
- 12: soloPractice_Hanzo
- 26: current_round
- 27: time_per_round
- 28: last_round_winner
- player:
- 0: forcePos
- 1: Pos_horizontalAngle
- 2: Pos_verticalAngle
- 3: delta_hori
- 4: delta_verti
- 5: Amplitudes
- 6: Frequencies
- 7: Phase_differences
- 8: HorizontalCenter
- 9: VerticalCenter
- 10: totaltime_elapsed
- 11: modifying_wave_number
- 12: bot_EachWaves
- 13: bot_i_wave_number
- 14: OnOffs
- 15: WaveForms
- 16: setting_rayhitpos
- 17: sub_phase
- 18: Hanzo_headshot_count
- 26: damage_dealts
- }
- subroutines
- {
- 0: player_pos_init
- 1: generate_a_wave
- 2: preset_effect_play
- }
- rule("player_pos_init")
- {
- event
- {
- Subroutine;
- player_pos_init;
- }
- actions
- {
- Set Status(Event Player, Null, Phased Out, 9999);
- Set Invisible(Event Player, All);
- Teleport(Event Player, Vector(0, 0, 0));
- Set Status(Event Player, Null, Rooted, 9999);
- Wait(0.120, Ignore Condition);
- Set Gravity(Event Player, 0);
- Wait(0.120, Ignore Condition);
Teleport(Event Player, Vector(0, 18, 0));
- Teleport(Event Player, Global.current_center);
- Set Facing(Event Player, Vector(0, 0, 1), To World);
- }
- }
- rule("Rule 2")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.soloPractice_Hanzo = Workshop Setting Toggle(Custom String("Solo Practice"), Custom String("Hanzo"), False);
- Create Dummy Bot(Hero(Lúcio), All Teams, 11, Vector(0, 0, 0), Vector(0, 0, 0));
- Create HUD Text(All Players(All Teams), String("{0} {1}", String("Server Load"), Server Load), String("{0} {1}", String(
- "Server Load Average"), Server Load Average), String("{0} {1}", String("Server Load Peak"), Server Load Peak), Left, 0, White,
- White, White, Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), Custom String("Host Crouch → start/stop settings"), Null, Null, Left, 0, White, White,
- White, Visible To, Default Visibility);
- Create HUD Text(All Players(All Teams), Custom String("Hold Interact long → self kill"), Null, Null, Left, 0, White, White, White,
- Visible To, Default Visibility);
- Global.toString_WaveForms = Array(Custom String("Sine"), Custom String("Triangle"), Custom String("Random"));
- Disable Inspector Recording;
Global.pos_presets = Array(Vector(18, 32, 20), Vector(15, 32, 20), Vector(12, 32, 20));
Global.name_presets = Array(Custom String("simple flick"), Custom String("DVD logo"), Custom String("heptagram"));
- Global.pos_presets = Array(Vector(18, 32, 20), Vector(15, 32, 20), Vector(12, 32, 20), Vector(9, 32, 20));
- Global.name_presets = Array(Custom String("simple flick"), Custom String("DVD logo"), Custom String("heptagram"), Custom String(
- "for Hanzo"));
- Global.radius_preset_sphere = 1;
- For Global Variable(i_create_sphere_txt, 0, Count Of(Global.pos_presets), 1);
- Create Effect(Global.isSettingMode ? All Players(All Teams) : Null, Sphere, Yellow, Global.pos_presets[Global.i_create_sphere_txt],
- Global.radius_preset_sphere, Visible To);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.name_presets[Global.i_create_sphere_txt],
- Global.pos_presets[Global.i_create_sphere_txt], 1.500, Do Not Clip, Visible To, White, Default Visibility);
- End;
- Global.isHz = True;
- Global.current_distance_of_bot = 18;
- Global.center_of_chamber = Vector(0, 18, 0);
- Global.outside_center = Vector(100, 200, 0);
- Global.current_center = Global.center_of_chamber;
- }
- }
- disabled rule("bot setting(old)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Set Respawn Max Time(Event Player, 0.500);
- Start Forcing Player Position(Event Player, Event Player.forcePos, True);
- Event Player.forcePos = Vector(0, 0, 0);
- Event Player.Pos_horizontalAngle = 180;
- Event Player.Pos_verticalAngle = 0;
- Event Player.delta_hori = 0;
- Event Player.delta_verti = 0.500;
- While(True);
- Event Player.delta_hori = 1.300 * Sine From Degrees(65 * Total Time Elapsed);
- Event Player.delta_verti = 1 * Sine From Degrees(30 * Total Time Elapsed);
Event Player.Pos_horizontalAngle = Event Player.delta_hori;
Event Player.Pos_verticalAngle = Event Player.delta_verti;
Event Player.forcePos = Vector(0, 18, 0) 18 * Direction From Angles(Event Player.Pos_horizontalAngle,
- Event Player.Pos_horizontalAngle += Event Player.delta_hori;
- Event Player.Pos_verticalAngle += Event Player.delta_verti;
- Event Player.forcePos = Vector(0, 18, 0) + 18 * Direction From Angles(Event Player.Pos_horizontalAngle,
- Event Player.Pos_verticalAngle);
- Wait(0.016, Ignore Condition);
- End;
- }
- }
- rule("bot setting(new)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Eye Position(Event Player), Global.current_center), 1000, To World,
- Direction and Turn Rate);
- Set Max Health(Event Player, 1000);
- Global.theBot = Event Player;
- Set Respawn Max Time(Event Player, 0.500);
- Start Forcing Player Position(Event Player, Event Player.forcePos, True);
- Event Player.Amplitudes = Array(15, 0, 15, 0);
- Event Player.Frequencies = Array(1, 1, 1, 1);
- Event Player.Phase_differences = Array(0, 0, 25, 0);
- Event Player.OnOffs = Array(True, True, True, True);
- Event Player.WaveForms = Array(0, 0, 0, 0);
- Event Player.HorizontalCenter = 0;
- Event Player.VerticalCenter = 0;
- Event Player.forcePos = Vector(0, 0, 0);
- While(True);
- Event Player.totaltime_elapsed = Total Time Elapsed;
- For Player Variable(Event Player, bot_i_wave_number, 0, 4, 1);
- Call Subroutine(generate_a_wave);
- End;
Event Player.Pos_horizontalAngle = Event Player.HorizontalCenter Event Player.bot_EachWaves[0] Event Player.bot_EachWaves[1];
Event Player.Pos_verticalAngle = Event Player.VerticalCenter Event Player.bot_EachWaves[2] Event Player.bot_EachWaves[3];
Event Player.forcePos = Vector(0, 18, 0) 18 * Direction From Angles(Event Player.Pos_horizontalAngle,
Event Player.Pos_verticalAngle);
- Event Player.Pos_horizontalAngle = Event Player.HorizontalCenter + Event Player.bot_EachWaves[0] + Event Player.bot_EachWaves[1];
- Event Player.Pos_verticalAngle = Event Player.VerticalCenter + Event Player.bot_EachWaves[2] + Event Player.bot_EachWaves[3];
- Event Player.forcePos = (Global.isSettingMode ? Global.center_of_chamber : Global.outside_center)
- + Global.current_distance_of_bot * Direction From Angles(Event Player.Pos_horizontalAngle, Event Player.Pos_verticalAngle);
- Wait(0.016, Ignore Condition);
- End;
- }
- }
- rule("effects")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(16, 30, 20), Vector(16, 10, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(8, 30, 20), Vector(8, 10, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(0, 30, 20), Vector(0, 10, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(-8, 30, 20), Vector(-8, 10, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 30, 20), Vector(-20, 30, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 26, 20), Vector(-20, 26, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 22, 20), Vector(-20, 22, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 18, 20), Vector(-20, 18, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 14, 20), Vector(-20, 14, 20), White,
- Visible To);
- Create Beam Effect(Global.isSettingMode ? All Players(All Teams) : Null, Good Beam, Vector(20, 10, 20), Vector(-20, 10, 20), White,
- Visible To);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.isHz ? String("{0} {1}",
- Global.theBot.Frequencies[0], Custom String(" Hz")) : String("{0} {1}", 1 / Global.theBot.Frequencies[0], Custom String(
- " sec")), Vector(12, 24, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.isHz ? String("{0} {1}",
- Global.theBot.Frequencies[1], Custom String(" Hz")) : String("{0} {1}", 1 / Global.theBot.Frequencies[1], Custom String(
- " sec")), Vector(12, 20, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.isHz ? String("{0} {1}",
- Global.theBot.Frequencies[2], Custom String(" Hz")) : String("{0} {1}", 1 / Global.theBot.Frequencies[2], Custom String(
- " sec")), Vector(12, 16, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.isHz ? String("{0} {1}",
- Global.theBot.Frequencies[3], Custom String(" Hz")) : String("{0} {1}", 1 / Global.theBot.Frequencies[3], Custom String(
- " sec")), Vector(12, 12, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
disabled Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Array(Custom String("horizontal 1\r\n"),
- disabled Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Array(Custom String("horizontal 1\\r\\n"),
- Global.theBot.OnOffs[0] ? Custom String("On") : Custom String("Off")), Vector(18, 24, 20), 2, Do Not Clip,
- Visible To and String, White, Default Visibility);
- disabled Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("horizontal 2"), Vector(18, 20, 20), 2,
- Do Not Clip, Visible To, White, Default Visibility);
- disabled Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("vertical 1"), Vector(18, 16, 20), 2,
- Do Not Clip, Visible To, White, Default Visibility);
- disabled Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("vertical 2"), Vector(18, 12, 20), 2,
- Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.isHz ? Custom String("Frequency")
- : Custom String("Wave Period"), Vector(12, 28, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("Amplitude"), Vector(4, 28, 20), 2,
- Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("Phase difference"), Vector(-4, 28, 20),
- 2, Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Amplitudes[0],
- Custom String("°")), Vector(4, 24, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Amplitudes[1],
- Custom String("°")), Vector(4, 20, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Amplitudes[2],
- Custom String("°")), Vector(4, 16, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Amplitudes[3],
- Custom String("°")), Vector(4, 12, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Phase_differences[0],
- Custom String("%")), Vector(-4, 24, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Phase_differences[1],
- Custom String("%")), Vector(-4, 20, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Phase_differences[2],
- Custom String("%")), Vector(-4, 16, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Global.theBot.Phase_differences[3],
- Custom String("%")), Vector(-4, 12, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("horizontal 1rn"),
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("horizontal 1\r\n"),
- Global.theBot.OnOffs[0] ? Custom String("On") : Custom String("off")), Vector(18, 22, 20), 2, Do Not Clip,
- Visible To and String, White, Default Visibility);
Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("horizontal 2rn"),
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("horizontal 2\r\n"),
- Global.theBot.OnOffs[1] ? Custom String("On") : Custom String("off")), Vector(18, 18, 20), 2, Do Not Clip,
- Visible To and String, White, Default Visibility);
Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("vertical 1rn"),
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("vertical 1\r\n"),
- Global.theBot.OnOffs[2] ? Custom String("On") : Custom String("off")), Vector(18, 14, 20), 2, Do Not Clip,
- Visible To and String, White, Default Visibility);
Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("vertical 2rn"),
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("vertical 2\r\n"),
- Global.theBot.OnOffs[3] ? Custom String("On") : Custom String("off")), Vector(18, 10, 20), 2, Do Not Clip,
- Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.toString_WaveForms[Global.theBot.WaveForms[0]],
- Vector(-12, 24, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.toString_WaveForms[Global.theBot.WaveForms[1]],
- Vector(-12, 20, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.toString_WaveForms[Global.theBot.WaveForms[2]],
- Vector(-12, 16, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Global.toString_WaveForms[Global.theBot.WaveForms[3]],
- Vector(-12, 12, 20), 2, Do Not Clip, Visible To and String, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, Custom String("Wave form"), Vector(-12, 28, 20), 2,
- Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} -> {1}", Custom String("ability 2"),
- Custom String("bot range up")), Vector(16, 0, 20), 1, Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} -> {1}", Custom String("ultimate"),
- Custom String("bot range down")), Vector(16, -2, 20), 1, Do Not Clip, Visible To, White, Default Visibility);
- Create In-World Text(Global.isSettingMode ? All Players(All Teams) : Null, String("{0} {1}", Custom String("bot range"), String(
- "{0} m", Global.current_distance_of_bot)), Vector(12, 1, 20), 3, Do Not Clip, Visible To and String, White,
- Default Visibility);
- Create Effect(All Players(All Teams), Sphere, White, Global.outside_center + Vector(0, 0, 100), 10, Visible To);
- Create Effect(All Players(All Teams), Sphere, Yellow, Global.outside_center + Vector(0, 100, 0), 10, Visible To);
- }
- }
- rule("owner crouch toggle setting")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == False;
- Event Player == Host Player;
- Is Button Held(Event Player, Crouch) == True;
- }
- actions
- {
- Global.isSettingMode = Global.isSettingMode ? False : True;
- Set Primary Fire Enabled(Event Player, Global.isSettingMode ? False : True);
- Set Ultimate Ability Enabled(Event Player, Global.isSettingMode ? False : True);
- Set Ability 2 Enabled(Event Player, Global.isSettingMode ? False : True);
- Global.current_center = Global.isSettingMode ? Global.center_of_chamber : Global.outside_center;
- Teleport(Remove From Array(All Players(All Teams), Global.theBot), Global.current_center);
- }
- }
- rule("owner setting primary")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == False;
- Event Player == Host Player;
- Global.isSettingMode == True;
- Is Button Held(Event Player, Primary Fire) == True;
- }
- actions
- {
- Event Player.setting_rayhitpos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- + 100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- If(Y Component Of(Event Player.setting_rayhitpos) >= 26);
- If(Distance Between(Event Player.setting_rayhitpos, Global.pos_presets[0]) < Global.radius_preset_sphere);
- Call Subroutine(preset_effect_play);
- Global.theBot.Amplitudes = Array(35, 0, 25, 0);
- Global.theBot.Frequencies = Array(1, 1, 1, 1);
- Global.theBot.Phase_differences = Array(0, 0, 0, 0);
- Global.theBot.WaveForms = Array(2, 0, 2, 0);
- Global.theBot.OnOffs = Array(True, True, True, True);
- Else If(Distance Between(Event Player.setting_rayhitpos, Global.pos_presets[1]) < Global.radius_preset_sphere);
- Call Subroutine(preset_effect_play);
- Global.theBot.Amplitudes = Array(60, 0, 45, 0);
- Global.theBot.Frequencies = Array(0.090, 1, 0.080, 1);
- Global.theBot.Phase_differences = Array(25, 0, 25, 0);
- Global.theBot.WaveForms = Array(1, 0, 1, 0);
- Global.theBot.OnOffs = Array(True, True, True, True);
- Else If(Distance Between(Event Player.setting_rayhitpos, Global.pos_presets[2]) < Global.radius_preset_sphere);
- Call Subroutine(preset_effect_play);
- Global.theBot.Amplitudes = Array(30, 12, 30, 12);
- Global.theBot.Frequencies = Array(0.240, 0.320, 0.240, 0.320);
- Global.theBot.Phase_differences = Array(0, 0, 25, 75);
- Global.theBot.WaveForms = Array(0, 0, 0, 0);
- Global.theBot.OnOffs = Array(True, True, True, True);
- Else If(Distance Between(Event Player.setting_rayhitpos, Global.pos_presets[3]) < Global.radius_preset_sphere);
- Call Subroutine(preset_effect_play);
- Global.theBot.Amplitudes = Array(35, 12, 25, 0);
- Global.theBot.Frequencies = Array(0.500, 0.440, 0.500, 1);
- Global.theBot.Phase_differences = Array(0, 0, 0, 0);
- Global.theBot.WaveForms = Array(2, 1, 2, 0);
- Global.theBot.OnOffs = Array(True, True, True, True);
- Else If(Y Component Of(Event Player.setting_rayhitpos) < 30 && X Component Of(Event Player.setting_rayhitpos)
- > 8 && X Component Of(Event Player.setting_rayhitpos) < 16);
- Play Effect(All Players(All Teams), Ring Explosion, White, Event Player.setting_rayhitpos, 12);
- Global.isHz = Global.isHz ? False : True;
- End;
- Abort;
- End;
- If(Y Component Of(Event Player.setting_rayhitpos) < 26);
- Event Player.modifying_wave_number = 0;
- End;
- If(Y Component Of(Event Player.setting_rayhitpos) < 22);
- Event Player.modifying_wave_number = 1;
- End;
- If(Y Component Of(Event Player.setting_rayhitpos) < 18);
- Event Player.modifying_wave_number = 2;
- End;
- If(Y Component Of(Event Player.setting_rayhitpos) < 14);
- Event Player.modifying_wave_number = 3;
- End;
- If(Y Component Of(Event Player.setting_rayhitpos) < 10);
- Abort;
- End;
- If(X Component Of(Event Player.setting_rayhitpos) > 16 && Z Component Of(Event Player.setting_rayhitpos) > 19);
- Play Effect(All Players(All Teams), Good Explosion, White, Event Player.setting_rayhitpos, 1);
- Global.theBot.OnOffs[Event Player.modifying_wave_number] = !Global.theBot.OnOffs[Event Player.modifying_wave_number];
- Abort;
- End;
- If(X Component Of(Event Player.setting_rayhitpos) > 8 && X Component Of(Event Player.setting_rayhitpos) <= 16);
- While(True);
- Play Effect(All Players(All Teams), Good Explosion, Red, Event Player.setting_rayhitpos, 1);
- Global.theBot.Frequencies[Event Player.modifying_wave_number] = Round To Integer(100 * 2 ^ ((16 - X Component Of(
- Event Player.setting_rayhitpos)) * 0.750 - 3), Down) / 100;
- Wait(0.124, Abort When False);
- Event Player.setting_rayhitpos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- + 100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- End;
- End;
- If(X Component Of(Event Player.setting_rayhitpos) > 0 && X Component Of(Event Player.setting_rayhitpos) <= 8);
- While(True);
- Play Effect(All Players(All Teams), Good Explosion, Aqua, Event Player.setting_rayhitpos, 1);
- Global.theBot.Amplitudes[Event Player.modifying_wave_number] = Round To Integer((8 - X Component Of(
- Event Player.setting_rayhitpos)) * (90 / 8), To Nearest);
- Wait(0.124, Abort When False);
- Event Player.setting_rayhitpos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- + 100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- End;
- End;
- If(X Component Of(Event Player.setting_rayhitpos) > -8 && X Component Of(Event Player.setting_rayhitpos) <= 0);
- While(True);
- Play Effect(All Players(All Teams), Good Explosion, Purple, Event Player.setting_rayhitpos, 1);
- Global.theBot.Phase_differences[Event Player.modifying_wave_number] = Round To Integer(100 / -8 * X Component Of(
- Event Player.setting_rayhitpos), To Nearest);
- Wait(0.124, Abort When False);
- Event Player.setting_rayhitpos = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- + 100 * Facing Direction Of(Event Player), Empty Array, Null, False);
- End;
- End;
- If(X Component Of(Event Player.setting_rayhitpos) <= -8 && Z Component Of(Event Player.setting_rayhitpos) > 19);
- Play Effect(All Players(All Teams), Good Explosion, Green, Event Player.setting_rayhitpos, 1);
Global.theBot.WaveForms[Event Player.modifying_wave_number] = (1 Global.theBot.WaveForms[Event Player.modifying_wave_number])
- Global.theBot.WaveForms[Event Player.modifying_wave_number] = (1 + Global.theBot.WaveForms[Event Player.modifying_wave_number])
- % Count Of(Global.toString_WaveForms);
- Abort;
- End;
- }
- }
- rule("self kill")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Interact) == True;
- }
- actions
- {
- Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
- Wait(1, Abort When False);
- Kill(Event Player, Null);
- }
- }
- rule("on spawn")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Has Spawned(Event Player) == True;
- }
- actions
- {
- Call Subroutine(player_pos_init);
- }
- }
- rule("on alive")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Call Subroutine(player_pos_init);
- }
- }
- rule("generate_a_wave")
- {
- event
- {
- Subroutine;
- generate_a_wave;
- }
- actions
- {
- If(Event Player.OnOffs[Event Player.bot_i_wave_number] == True);
- Event Player.sub_phase = 360 * (
Event Player.Frequencies[Event Player.bot_i_wave_number] * Event Player.totaltime_elapsed Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100)
- Event Player.Frequencies[Event Player.bot_i_wave_number] * Event Player.totaltime_elapsed + Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100)
- % 360;
- If(Event Player.WaveForms[Event Player.bot_i_wave_number] == 0);
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = Event Player.Amplitudes[Event Player.bot_i_wave_number] * Sine From Degrees(
- Event Player.sub_phase);
- Else If(Event Player.WaveForms[Event Player.bot_i_wave_number] == 1);
- If(Event Player.sub_phase <= 90);
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = Event Player.Amplitudes[Event Player.bot_i_wave_number] * (
- Event Player.sub_phase / 90);
- Else If(Event Player.sub_phase > 270);
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = Event Player.Amplitudes[Event Player.bot_i_wave_number] * (
- Event Player.sub_phase / 90 - 4);
- Else;
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = Event Player.Amplitudes[Event Player.bot_i_wave_number] * (
Event Player.sub_phase / -90 2);
- Event Player.sub_phase / -90 + 2);
- End;
- Else If(Event Player.WaveForms[Event Player.bot_i_wave_number] == 2);
- If(Round To Integer(
Event Player.Frequencies[Event Player.bot_i_wave_number] * Event Player.totaltime_elapsed Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100,
- Event Player.Frequencies[Event Player.bot_i_wave_number] * Event Player.totaltime_elapsed + Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100,
- Down) != Round To Integer(Event Player.Frequencies[Event Player.bot_i_wave_number] * (Event Player.totaltime_elapsed - 0.016)
Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100, Down));
- + Event Player.Phase_differences[Event Player.bot_i_wave_number] / 100, Down));
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = Event Player.Amplitudes[Event Player.bot_i_wave_number] * Random Real(
- -1, 1);
- End;
- End;
- Else;
- Event Player.bot_EachWaves[Event Player.bot_i_wave_number] = 0;
- End;
- }
- }
- rule("presetEffectPlay")
- {
- event
- {
- Subroutine;
- preset_effect_play;
- }
- actions
- {
- Play Effect(All Players(All Teams), Bad Explosion, Orange, Event Player.setting_rayhitpos, 3);
- }
- }
- rule("game start player")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- Event Player.damage_dealts = Empty Array;
- Create HUD Text(All Players(All Teams), String("{0} {1} {2}", Hero Icon String(Hero Of(Event Player)), Event Player,
- Event Player.damage_dealts[Global.current_round]), Null, Null, Right, Last Of(Event Player.damage_dealts), White, White, White,
- Visible To Sort Order and String, Default Visibility);
- Set Ultimate Ability Enabled(Event Player, False);
- }
- }
- rule("player deal damage")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Match Time != 0;
- }
- actions
- {
Event Player.damage_dealts[Global.current_round] = Event Damage;
- Event Player.damage_dealts[Global.current_round] += Event Damage;
- }
- }
- rule("game start global")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Global.isSettingMode = False;
- Set Primary Fire Enabled(Host Player, True);
- Set Ability 2 Enabled(Host Player, True);
- Global.time_per_round = 15;
- Global.current_round = 0;
- Disable Built-In Game Mode Completion;
- Disable Built-In Game Mode Announcer;
- Disable Built-In Game Mode Music;
- Disable Built-In Game Mode Scoring;
- Set Match Time(Global.time_per_round);
- }
- }
- rule("match time zero global")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Match Time == 0;
- }
- actions
- {
- Global.last_round_winner = Last Of(Sorted Array(All Players(All Teams),
- Current Array Element.damage_dealts[Global.current_round]));
- Big Message(All Players(All Teams), String("{0} {1} {2}", String("{0} {1}", String("Round {0}", Global.current_round), String(
- "Winner")), String("{0} {1}", Hero Icon String(Hero Of(Global.last_round_winner)), Global.last_round_winner), String("{0} {1}",
- Global.last_round_winner.damage_dealts[Global.current_round], String("Damage"))));
- Modify Player Score(Global.last_round_winner, 1);
- Wait(2, Ignore Condition);
- If(Score Of(Global.last_round_winner) == 10);
- Declare Player Victory(Global.last_round_winner);
- Else;
- Set Match Time(Global.time_per_round);
Global.current_round = 1;
- Global.current_round += 1;
- End;
- }
- }
- rule("match time zero player")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Match Time == 0;
- }
- actions
- {
- Modify Player Variable(Event Player, damage_dealts, Append To Array, 0);
- If(Is Dummy Bot(Event Player));
- Set Status(Event Player, Null, Frozen, 2);
- End;
- }
- }
- rule("assemble heroes match time shorten")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Assembling Heroes == True;
- }
- actions
- {
- Set Match Time(10);
- }
- }
- rule("bot auto heal")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Health(Event Player) <= 0.300 * Max Health(Event Player);
- }
- actions
- {
- Heal(Event Player, Null, 100000);
- }
- }
- rule("owner setting ab2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == False;
- Event Player == Host Player;
- Global.isSettingMode == True;
- Is Button Held(Event Player, Ability 2) == True;
- }
- actions
- {
- Global.current_distance_of_bot += Max(1, Round To Integer(Global.current_distance_of_bot / 20, To Nearest));
- Wait(0.120, Abort When False);
- Loop;
- }
- }
- rule("owner setting ult")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == False;
- Event Player == Host Player;
- Global.isSettingMode == True;
- Is Button Held(Event Player, Ultimate) == True;
- }
- actions
- {
- Global.current_distance_of_bot -= Max(1, Round To Integer(Global.current_distance_of_bot / 20, To Nearest));
- Wait(0.120, Abort When False);
- Loop;
- }
- }
- rule("soloPractice_Hanzo_global")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.isSettingMode == False;
- Global.soloPractice_Hanzo == True;
- Entity Exists(Host Player) == True;
- }
- actions
- {
- Wait(20, Abort When False);
- If(Host Player.Hanzo_headshot_count >= 6);
- Global.current_distance_of_bot *= 1.050;
- Play Effect(Host Player, Buff Impact Sound, White, Host Player, 40);
- Small Message(All Players(All Teams), Custom String("level up"));
- Else If(Host Player.Hanzo_headshot_count <= 4);
- Global.current_distance_of_bot /= 1.050;
- Play Effect(Host Player, Debuff Impact Sound, White, Host Player, 40);
- Small Message(All Players(All Teams), Custom String("level down"));
- Else;
- Small Message(All Players(All Teams), Custom String("level no change"));
- End;
- Host Player.Hanzo_headshot_count = 0;
- Big Message(Host Player, String("{0} {1}", Custom String("current distance: "), String("{0} m", Global.current_distance_of_bot)));
- Loop If Condition Is True;
- }
- }
- rule("soloPractice_hanzo_host headshot")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Global.soloPractice_Hanzo == True;
- Global.isSettingMode == False;
- Event Player == Host Player;
- Event Was Critical Hit == True;
- }
- actions
- {
- Event Player.Hanzo_headshot_count += 1;
- If(Random Real(0, 1) < 0.400);
- Small Message(Event Player, Random Value In Array(Array(Custom String("nice!"), Custom String("good!"), Custom String("great!"),
- Custom String("super!"), Custom String("awesome!"))));
- End;
- }
- }
- rule("solopractice hanzo host player")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.soloPractice_Hanzo == True;
- Host Player == Event Player;
- }
- actions
- {
- Create HUD Text(Event Player, String("{0} {1}", Custom String("critical: "), Event Player.Hanzo_headshot_count), Null, Null, Top,
- 1, White, White, White, Visible To and String, Default Visibility);
- }
- }