//================================================================================
/* OVERWATCH: Soldier 76
//--------------------------------------------------------------------------------
// FEATURES
- AutoBurst shoots 4-bullet bursts for optimal hit registration and minimal reticle bloom at mid-long range
- RapidFire shoots 1-bullet at a time for pinpoint accuracy at long range
- Activating 76's Ultimate auto-drops a Biotic and pauses AutoBurst and RapidFire
- Rocket Jump
- Rocket and Biotic regeneration timers
- Rumble fire mode and recharge notifiers
- LED fire mode and recharge indicators
- Hair triggers
- Non-disruptive toggle buttons
- Multiple or Single Fire Mode toggle buttons
//--------------------------------------------------------------------------------
// CONTROLS
AutoBurst - Tap D-PAD UP to enable. Green LED and double-rumble when enabled
RapidFire - Tap D-PAD RIGHT enable. Pink LED and triple-rumble when enabled
FullAuto - Tap D-PAD LEFT to return to default automatic fire. Blue LED and single-rumble when enabled
FireMode Cycle - Alternately, tap D-PAD DOWN to cycle between AutoBurst, RapidFire and FullAuto
Rocket Jump - Hold L3 / LS while shooting a rocket at your feet to Rocket Jump. Quad-rumble when Rocket is recharged
Ultimate - Tap Y / Triangle to trigger Ult, auto-drop a Biotic and pause AutoBurst & RapidFire. Red LED when activated. Quad-rumble when Biotic is recharged
//--------------------------------------------------------------------------------
// CUSTOMISATION
- LED colours are editable, refer to the table at the bottom of the script
- Toggle buttons are customisable. Refer to lines 90-96
- Choose between three separate Fire Mode buttons, or cycle between Fire Modes with a single button on line 82
//==============================================================================
// COPYRIGHT
2017 antithesis from http://www.consoletuner.com. This Script was made and intended for http://www.Consoletuner.com & Titan 0ne ONLY,
UNLESS written permission is given by the creator and/or copywritee.
All rights reserved. This material may not be reproduced, displayed, modified or distributed without the express prior written permission
of the copyright holder. For permission, contact antithesis via http://www.consoletuner.com/forum
*/
//==============================================================================
// DECLARATIONS
//------------------------------------------------------------------------------
// CONTROLLER LAYOUT
// Do NOT rename any of the define aliases (e.g HOME, SHARE etc) or the script will break. All aliases work for all supported platforms
// Do NOT edit the red index numbers, unless you know what you're doing, e.g remapping ADS and SHOOT from L2 / R2 to L1 / R1
define HOME = 0; // XB1_XBOX XB360_XBOX PS4_PS PS3_PS
define SHARE = 1; // XB1_VIEW XB360_BACK PS4_SHARE PS3_SELECT
define OPTIONS = 2; // XB1_MENU XB360_START PS4_OPTIONS PS3_START
define R1 = 3; // XB1_RB XB360_RB PS4_R1 PS3_R1
define SHOOT = 4; // XB1_RT XB360_RT PS4_R2 PS3_R2
define R3 = 5; // XB1_RS XB360_RS PS4_R3 PS3_R3
define L1 = 6; // XB1_LB XB360_LB PS4_L1 PS3_L1
define L2 = 7; // XB1_LT XB360_LT PS4_L2 PS3_L2
define L3 = 8; // XB1_LS XB360_LS PS4_L3 PS3_L3
define RX = 9; // XB1_RX XB360_RX PS4_RX PS3_RX
define RY = 10; // XB1_RY XB360_RY PS4_RY PS3_RY
define LX = 11; // XB1_LX XB360_LX PS4_LX PS3_LX
define LY = 12; // XB1_LY XB360_LY PS4_LY PS3_LY
define UP = 13; // XB1_UP XB360_UP PS4_UP PS3_UP
define DOWN = 14; // XB1_DOWN XB360_DOWN PS4_DOWN PS3_DOWN
define LEFT = 15; // XB1_LEFT XB360_LEFT PS4_LEFT PS3_LEFT
define RIGHT = 16; // XB1_RIGHT XB360_RIGHT PS4_RIGHT PS3_RIGHT
define TRIANGLE = 17; // XB1_Y XB360_Y PS4_TRIANGLE PS3_TRIANGLE
define CIRCLE = 18; // XB1_B XB360_B PS4_CIRCLE PS3_CIRCLE
define CROSS = 19; // XB1_A XB360_A PS4_CROSS PS3_CROSS
define SQUARE = 20; // XB1_X XB360_X PS4_SQUARE PS3_SQUARE
//------------------------------------------------------------------------------
// CONTROL SCHEME
// Set to 1 for three separate buttons for AutoBurst, RapidFire and FullAuto
// Set to 0 to cycle through AutoBurst, RapidFire and FullAuto with one button
define TripleToggles = 0; // Set to 1 or 0
//------------------------------------------------------------------------------
// TOGGLE BUTTONS
// Choose your toggle buttons to enable/disable fire modes
// Refer to CONTROLLER LAYOUT above for button aliases
define AutoBurstToggle = UP; // all three buttons are used with TripleToggle controls enabled
define RapidFireToggle = RIGHT;
define FullAutoToggle = LEFT;
define FireModeToggle = DOWN; // only used when TripleToggle controls are disabled
define FireModeOverride = L3; // Hold while shooting or firing rockets to block AutoBurst and RapidFire
//------------------------------------------------------------------------------
// AUTO-BURST
// Fine-tune the time between bursts
define BurstHold = 400; // time in ms. Overwatch shoots 1 bullet / 100 ms
define BurstRest = 300;
//------------------------------------------------------------------------------
// RAPID-FIRE
// Fine-tune the time between single shots
define RapidHold = 100; // time in ms. Overwatch shoots 1 bullet / 100 ms
define RapidRest = 50;
//------------------------------------------------------------------------------
// RUMBLE
define RumbleStrength = 60; // Set to 0 to disable rumble
define RumbleLength = 250; // Tweak to increase / decrease rumble length
//------------------------------------------------------------------------------
// ROCKET JUMP
// Hold this button while shooting a rocket at your feet to RocketJump
// Required to avoid interference with regular Rocket usage
define RocketJumpHold = L3;
define JumpHeight = 100; //tweak for added RocketJump height
define JumpLength = 1500; // tweak for RocketJump length
//==============================================================================
// SCRIPT VARIABLES
int FireMode;
int HoldTime, RestTime;
//==============================================================================
// INITIALISATION
init
{
FireMode = 1;
}
//==============================================================================
// MAIN
main
{
//------------------------------------------------------------------------------
// HAIR TRIGGERS
// Shoot
if (get_val(SHOOT)) { set_val(SHOOT, 100); }
// ADS
if (get_val(L2)) { set_val(L2, 100); }
//------------------------------------------------------------------------------
// FIRE-MODE
if (TripleToggles)
{
if (event_press (AutoBurstToggle)) { FireMode = 2; combo_run (DoubleRumble); LED (0, 0, 1, 0); } // Green LED
else if (event_press (RapidFireToggle)) { FireMode = 3; combo_run (TripleRumble); LED (0, 0, 0, 1); } // Pink LED
else if (event_press (FullAutoToggle)) { FireMode = 1; combo_run (Rumble); LED (1, 0, 0, 0); } // Blue LED
block (AutoBurstToggle, 100); block (RapidFireToggle, 100); block (FullAutoToggle, 100);
}
else if (!TripleToggles)
{
if (event_press (FireModeToggle) && FireMode == 1) { FireMode = 2; LED (0, 0, 1, 0); combo_run (DoubleRumble); }
else if (event_press (FireModeToggle) && FireMode == 2) { FireMode = 3; LED (0, 0, 0, 1); combo_run (TripleRumble); }
else if (event_press (FireModeToggle) && FireMode == 3) { FireMode = 1; LED (1, 0, 0, 0); combo_run (Rumble); }
block (FireModeToggle, 100);
}
//------------------------------------------------------------------------------
// RAPID-FIRE
if (get_val (SHOOT) && FireMode == 2) { combo_run (AutoBurst); }
else if (get_val (SHOOT) && FireMode == 3) { combo_run (RapidFire); }
if (get_val (SHOOT))
{
if (get_val (FireModeOverride))
{ combo_stop (AutoBurst); combo_stop (RapidFire); LED (0,1,0,0); }
else if (!get_val (FireModeOverride))
{
if (FireMode == 1) { LED (1,0,0,0); }
else if (FireMode == 2) { LED (0,0,1,0); }
else if (FireMode == 3) { LED (0,0,0,1): }
}
}
//------------------------------------------------------------------------------
// ULTIMATE
if (event_press (TRIANGLE) && FireMode == 2) { combo_run (VisorUpBurst); }
else if (event_press (TRIANGLE) && FireMode == 3) { combo_run (VisorUpRapid); }
else if (event_press (TRIANGLE) && FireMode == 1) {combo_run (DropBiotic); }
//------------------------------------------------------------------------------
// ROCKET JUMP
if (event_press (L2)) { combo_run (RocketRecharge); }
if (get_val (RocketJumpHold)) { if (event_press (L2)) { combo_run (RocketJump); } }
//------------------------------------------------------------------------------
// BIOTIC RECHARGE
if (event_press (R1)) { combo_run (BioticRecharge); }
//------------------------------------------------------------------------------
} // end main
//==============================================================================
// COMBOS
combo AutoBurst
{
set_val(SHOOT, 100);
wait(BurstHold);
set_val(SHOOT, 0);
wait(BurstRest);
set_val(SHOOT, 0);
}
combo RapidFire
{
set_val(SHOOT, 100);
wait(RapidHold);
set_val(SHOOT, 0);
wait(RapidRest);
set_val(SHOOT, 0);
}
combo VisorUpBurst
{
FireMode = 1;
LED (0, 1, 0, 0); // Red LED
combo_run (DropBiotic);
wait (4000);
LED (0, 1, 0, 0);
wait (2600);
FireMode = 2;
LED (0, 0, 1, 0);
}
combo VisorUpRapid
{
FireMode = 1;
LED (0, 1, 0, 0); // Red LED
combo_run (DropBiotic);
wait (4000);
LED (0, 1, 0, 0);
wait (2600);
FireMode = 3;
LED (0, 0, 0, 1);
}
combo DropBiotic
{
set_val (TRIANGLE, 0);
set_val (R1, 100);
wait (50);
set_val (R1, 0);
set_val (TRIANGLE, 100);
wait (50);
set_val (TRIANGLE, 0);
}
combo RocketJump
{
set_val (CROSS, 100);
wait (JumpHeight);
set_val (L2, 100);
set_val (L1, 100);
set_val (LY, -100);
wait (JumpLength);
set_val (LY, 0);
set_val (CROSS, 0);
}
combo RocketRecharge
{
wait (200);
combo_run (RechargeRumble);
}
combo BioticRecharge
{
wait (200);
wait (3000);
wait (4000);
combo_run (RechargeRumble);
}
combo RechargeRumble
{
wait (4000);
wait (4000);
combo_run (QuadRumble);
LED (0, 1, 0, 0); // Red
wait (RumbleLength);
LED (0, 1, 1, 0); // Yellow
wait (RumbleLength);
LED (0, 1, 0, 0); // Red
wait (RumbleLength);
LED (0, 1, 1, 0); // Yellow
wait (RumbleLength);
LED (0, 1, 0, 0); // Red
wait (RumbleLength);
LED (0, 1, 1, 0); // Yellow
wait (RumbleLength);
LED (0, 1, 0, 0); // Red
wait (RumbleLength);
LED (0, 1, 1, 0); // Yellow
wait (RumbleLength);
LED (0, 1, 0, 0); // Red
wait (RumbleLength);
LED (0, 1, 1, 0); // Yellow
wait (RumbleLength);
if (FireMode == 1) { LED (1,0,0,0); }
else if (FireMode == 2) { LED (0,0,1,0); }
else if (FireMode == 3) { LED (0,0,0,1): }
}
combo Rumble
{
set_rumble (RUMBLE_A, RumbleStrength);
wait(300);
reset_rumble();
}
combo DoubleRumble
{
set_rumble (RUMBLE_A, RumbleStrength);
wait (300);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
reset_rumble();
}
combo TripleRumble
{
set_rumble (RUMBLE_A, RumbleStrength);
wait (300);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
reset_rumble();
}
combo QuadRumble
{
set_rumble (RUMBLE_A, RumbleStrength);
wait (300);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
set_rumble (RUMBLE_A, 0);
wait (RumbleLength);
set_rumble (RUMBLE_A, RumbleStrength);
wait (RumbleLength);
reset_rumble();
}
//==============================================================================
// FUNCTIONS
//------------------------------------------------------------------------------
// LED LIGHTS
function LED(a, b, c, d) // Make the lights pretty
{
set_led(0, a);
set_led(1, b);
set_led(2, c);
set_led(3, d);
}
//------------------------------------------------------------------------------
// LED DEFINITIONS FOR PS4 LIGHT BAR
// LED(0,0,0,0); // Off
// LED(1,0,0,0); // Blue
// LED(0,1,0,0); // Red
// LED(0,0,1,0); // Green
// LED(0,0,0,1); // Pink
// LED(1,0,1,0); // SkyBlue
// LED(0,1,1,0); // Yellow
// LED(1,1,1,1); // White