//NAME: Helldivers (Stratagem,Autorun,Ressurect,Melee)
//VER: 1.2
/* =============================================================================
* Author: Shaag7
*
* Functions: Stratagem macros(4 profiles), Autorun, TurboRessurect, TurboMelee
*
* Notes:
* You can manually change your preferred stratagems for each profile (1-4)
* You can switch between profiles using R3 + DPAD
* Each profile lights different led colors
* Special Stratagems are in common for all profiles
*
* TurboMelee & TurboRess will press Circle/Cross button fast when you hold them
*
* AutoRun can be switched On/Off by pressing L3 and R3 together
*
* Stratagem combos are taken from http://helldivers.gamepedia.com/Stratagem
* Script was done for PS4 and Titan1 (http://www.consoletuner.com)
*
* Changes:
* 26-Feb-2016: 1.2 - Workaround for R1 and Cross[4] collision - No-Array variables
* 26-Feb-2016: 1.1 - Workaround for R1 and Cross[4] collision - deleted 1 profile
* 19-Feb-2016: 1.0 - Release
* 16-Feb-2016: 0.9 - Beta Release
* =============================================================================*/
/*
-----------------------------------------------------------------------------
DEFINES
-----------------------------------------------------------------------------
*/
// Supply Stratagems
define AC22 = 1; //AC-22 Dum-Dum *
define AD289 = 2; //AD-289 Angel *
define AD334 = 3; //AD-334 Guard Dog *
define EAT17 = 4; //EAT-17
define EXO44 = 5; //EXO-44 Walker Exosuit
define EXO48 = 6; //EXO-48 Obsidian Exosuit *
define EXO51 = 7; //EXO-51 Lumberer Exosuit *
define FLAM40 = 8; //FLAM-40 Incinerator
define LAS98 = 9; //LAS-98 Laser Cannon
define LIFT850 = 10; //LIFT-850 Jump Pack
define M25 = 11; //M-25 Rumbler *
define M5 = 12; //M5 APC
define M5HAV = 13; //M5-32 HAV
define MC109 = 14; //MC-109 Hammer Motorcycle *
define M94 = 15; //MG-94 Machine Gun
define MLS4X = 16; //MLS-4X Commando *
define OBLITERATOR = 17; //Obliterator Grenade Launcher
define REC6 = 18; //REC-6 Demolisher *
define REP80 = 19; //REP-80
define RESSUPLY = 20; //Resupply
define RESPACK = 21; //Resupply Pack
define RL112 = 22; //RL-112 Recoilless Rifle
define SH20 = 23; //SH-20 Shield Generator Pack
define SH32 = 24; //SH-32 Directional Kinetic Shield *
define TD110 = 25; //TD-110 Bastion *
define TOX13 = 26; //TOX-13 Avenger *
// Defensive Stratagems
define AAC6 = 31; //A/AC-6 Tesla Tower
define AAMG = 32; //A/MG-II Minigun Turret
define ARX = 33; //A/RX-34 Railcannon Turret
define APMINE = 34; //Airdropped Anti-Personnel Mines
define STUNMINE = 35; //Airdropped Stun Mines
define APBAR = 36; //Anti-Personnel Barrier *
define AT47 = 37; //AT-47 Anti-Tank Emplacement *
define DISTRACT = 38; //Distractor Beacon
define UAV = 39; //Humblebee UAV drone *
// Offensive Stratagems
define AIRSTRIKE = 41; //Airstrike
define CLOSEAIR = 42; //Close Air Support *
define INCENDIARY = 43; //Incendiary Bombs
define BARRAGE = 44; //Missile Barrage *
define ORBITAL = 45; //Orbital Laser Strike
define RAILCAN = 46; //Railcannon Strike
define SHREDDER = 47; //Shredder Missile Strike
define SLEDGE = 48; //Sledge Precision Artillery *
define STATIC = 49; //Static Field Conductors
define STRAFING = 50; //Strafing Run
define THUNDER = 51; //Thunderer Barrage
define VINDICATOR = 52; //Vindicator Dive Bomb
// Special Stratagems
define Reinforce = 61; //Reinforce
define NUX = 62; //NUX-223 Hellbomb
define Sniffer = 63; //ME-1 Sniffer Metal Detector
define SOS = 64; //Emergency Beacon
define L = 201; //DPAD LEFT
define R = 202; //DPAD RIGHT
define U = 203; //DPAD UP
define D = 204; //DPAD DOWN
define EOC = 254; //END OF COMBO
define EOD = 255; //END OF DATA
/*
-----------------------------------------------------------------------------
DATA SEGMENT
-----------------------------------------------------------------------------
*/
data (
// Supply Stratagems
AC22 ,D,L,U,U,R,EOC, //AC-22 Dum-Dum *
AD289 ,D,U,L,L,R,D,EOC, //AD-289 Angel *
AD334 ,D,U,L,U,R,D,EOC, //AD-334 Guard Dog *
EAT17 ,D,L,R,U,D,EOC, //EAT-17
EXO44 ,D,R,U,L,D,D,EOC, //EXO-44 Walker Exosuit
EXO48 ,D,R,U,L,D,L,EOC, //EXO-48 Obsidian Exosuit *
EXO51 ,D,R,U,L,D,R,EOC, //EXO-51 Lumberer Exosuit *
FLAM40 ,D,L,D,R,L,EOC, //FLAM-40 Incinerator
LAS98 ,D,L,D,U,L,EOC, //LAS-98 Laser Cannon
LIFT850 ,D,U,U,D,U,EOC, //LIFT-850 Jump Pack
M25 ,D,L,U,L,L,EOC, //M-25 Rumbler *
M5 ,D,R,D,L,L,R,EOC, //M5 APC
M5HAV ,D,R,U,L,U,D,EOC, //M5-32 HAV
MC109 ,D,R,D,L,L,U,EOC, //MC-109 Hammer Motorcycle *
M94 ,D,L,D,U,R,EOC, //MG-94 Machine Gun
MLS4X ,D,L,U,D,R,EOC, //MLS-4X Commando *
OBLITERATOR ,D,L,U,L,D,EOC, //Obliterator Grenade Launcher
REC6 ,D,L,R,U,U,EOC, //REC-6 Demolisher *
REP80 ,D,D,L,R,D,EOC, //REP-80
RESSUPLY ,D,D,U,R,EOC, //Resupply
RESPACK ,D,U,D,D,R,EOC, //Resupply Pack
RL112 ,D,L,R,R,L,EOC, //RL-112 Recoilless Rifle
SH20 ,D,U,L,R,L,R,EOC, //SH-20 Shield Generator Pack
SH32 ,D,U,L,R,L,D,EOC, //SH-32 Directional Kinetic Shield *
TD110 ,D,R,D,L,U,R,EOC, //TD-110 Bastion *
TOX13 ,D,L,D,R,R,EOC, //TOX-13 Avenger *
// Defensive Stratagems
AAC6 ,L,D,D,U,R,L,EOC, //A/AC-6 Tesla Tower
AAMG ,L,D,U,R,L,EOC, //A/MG-II Minigun Turret
ARX ,L,D,U,L,R,EOC, //A/RX-34 Railcannon Turret
APMINE ,L,R,D,U,EOC, //Airdropped Anti-Personnel Mines
STUNMINE ,L,R,U,D,EOC, //Airdropped Stun Mines
APBAR ,L,R,D,D,R,EOC, //Anti-Personnel Barrier *
AT47 ,L,L,U,U,R,L,EOC, //AT-47 Anti-Tank Emplacement *
DISTRACT ,L,D,R,EOC, //Distractor Beacon
UAV ,L,U,R,EOC, //Humblebee UAV drone *
// Offensive Stratagems
AIRSTRIKE ,R,U,D,R,L,EOC, //Airstrike
CLOSEAIR ,R,R,D,L,EOC, //Close Air Support *
INCENDIARY ,R,U,L,R,EOC, //Incendiary Bombs
BARRAGE ,R,D,D,D,L,D,EOC, //Missile Barrage *
ORBITAL ,R,U,L,U,R,L,EOC, //Orbital Laser Strike
RAILCAN ,R,D,U,D,L,EOC, //Railcannon Strike
SHREDDER ,R,L,R,L,D,D,R,EOC, //Shredder Missile Strike
SLEDGE ,R,U,L,U,D,R,EOC, //Sledge Precision Artillery *
STATIC ,R,U,L,D,EOC, //Static Field Conductors
STRAFING ,R,R,U,EOC, //Strafing Run
THUNDER ,R,D,U,U,L,D,EOC, //Thunderer Barrage
VINDICATOR ,R,R,R,EOC, //Vindicator Dive Bomb
// Special Stratagems
Reinforce ,U,D,R,L,U,EOC, //Reinforce
NUX ,U,L,R,D,U,D,EOC, //NUX-223 Hellbomb
Sniffer ,D,D,R,U,EOC, //ME-1 Sniffer Metal Detector
SOS ,U,D,R,U,EOC, //Emergency Beacon
EOD
);
/*
-----------------------------------------------------------------------------
VARIABLES
-----------------------------------------------------------------------------
*/
int step, press;
int N;
int Triangle1;
int Square1;
int Circle1;
int Cross1;
int Triangle2;
int Square2;
int Circle2;
int Cross2;
int Triangle3;
int Square3;
int Circle3;
int Cross3;
int Triangle4;
int Square4;
int Circle4;
int Cross4;
int R1;
int L3;
int R2;
int L2;
int ms = 40; // Button press time
int rt = 20; // Rest time
int RunON = TRUE; // Default value for AutoRunSwitch
int RunSens = 55; // Sensitivity to trigger AutoRun
/*
-----------------------------------------------------------------------------
INITIALIZATION
-----------------------------------------------------------------------------
*/
init {
N=1; // Default Stratagem Profile (1-4)
// Pressing L1 and button bellow will trigger combo based on current Profile [1-4] -- (change combos by your needs)
// To activate press R3 + PS4_UP ---- Blue LED
Triangle1 = THUNDER;
Square1 = RESSUPLY;
Circle1 = LIFT850;
Cross1 = EXO44;
// To activate press R3 + PS4_LEFT ---- Red LED
Triangle2 = AAMG;
Square2 = DISTRACT;
Circle2 = SH20;
Cross2 = UAV;
// To activate press R3 + PS4_RIGHT ---- Green LED
Triangle3 = THUNDER;
Square3 = RESSUPLY;
Circle3 = SH20;
Cross3 = RAILCAN;
// To activate press R3 + PS4_DOWN ---- Pink LED
Triangle4 = OBLITERATOR;
Square4 = RESSUPLY;
Circle4 = SH20;
Cross4 = UAV;
// Supply Stratagems
// AC22 AD289 AD334 EAT17 EXO44 EXO48 EXO51 FLAM40 LAS98 LIFT850 M25 M5 M5HAV MC109 M94 MLS4X OBLITERATOR REC6 REP80 RESSUPLY RESPACK RL112 SH20 SH32 TOX13
// Defensive Stratagems
// AAC6 AAMG ARX APMINE STUNMINE APBAR AT47 DISTRACT UAV
// Offensive Stratagems
// AIRSTRIKE CLOSEAIR INCENDIARY BARRAGE ORBITAL RAILCAN SHREDDER SLEDGE STATIC STRAFING THUNDER VINDICATOR
// Pressing L1 and button below will trigger special combo
R1 = Reinforce; //Special
L3 = NUX; //Special
R2 = Sniffer; //Special
L2 = SOS; //Special
}
/*
-----------------------------------------------------------------------------
MAIN SCRIPT
-----------------------------------------------------------------------------
*/
main {
// AutoRun Switch - any change will rumble strongly
if(get_val(PS4_L3)&& event_release(PS4_R3)) {RunON = !RunON; combo_run(ARumble)}
// Changing current Stratagem profile will rumble twice
if (get_val(PS4_R3) && (!get_val(PS4_L1) || !get_val(PS4_L3))) {
if (event_press(PS4_UP)) {N=1;combo_run(BRumble);}
if (event_press(PS4_LEFT)) {N=2;combo_run(BRumble);}
if (event_press(PS4_RIGHT)) {N=3;combo_run(BRumble);}
if (event_press(PS4_DOWN)) {N=4;combo_run(BRumble);}
}
// LED colors based on current profile
if (N==1) {colorled(1,0,0,0);} //Blue LED
if (N==2) {colorled(0,1,0,0);} //Red LED
if (N==3) {colorled(0,0,1,0);} //Green LED
if (N==4) {colorled(0,0,0,1);} //Pink LED
// Auto-Run
if((abs(get_val(PS4_LX)) > RunSens || abs(get_val(PS4_LY)) > RunSens) && RunON) {set_val(PS4_L3,100);}
// Turbo Ressurection
if (get_val(PS4_CROSS) && get_ptime(PS4_CROSS) >= 200 && !get_val(PS4_L1)) {combo_run(Ressurect);}
// Turbo Melee
if (get_val(PS4_CIRCLE) && get_ptime(PS4_CIRCLE) >= 200 && !get_val(PS4_L1)) {combo_run(Melee);}
// Press L1 and trigger combos
if (get_val(PS4_L1)) {
if (event_press(PS4_R1)) {RunCombo(R1);} //Special
if (event_press(PS4_L3)) {RunCombo(L3);} //Special
if (event_press(PS4_R2)) {RunCombo(R2);} //Special
if (event_press(PS4_L2)) {RunCombo(L2);} //Special
if (N==1){
if (event_press(PS4_TRIANGLE)) {RunCombo(Triangle1);}
if (event_press(PS4_SQUARE)) {RunCombo(Square1);}
if (event_press(PS4_CIRCLE)) {RunCombo(Circle1);}
if (event_press(PS4_CROSS)) {RunCombo(Cross1);}
}
else if (N==2) {
if (event_press(PS4_TRIANGLE)) {RunCombo(Triangle2);}
if (event_press(PS4_SQUARE)) {RunCombo(Square2);}
if (event_press(PS4_CIRCLE)) {RunCombo(Circle2);}
if (event_press(PS4_CROSS)) {RunCombo(Cross2);}
}
else if (N==3) {
if (event_press(PS4_TRIANGLE)) {RunCombo(Triangle3);}
if (event_press(PS4_SQUARE)) {RunCombo(Square3);}
if (event_press(PS4_CIRCLE)) {RunCombo(Circle3);}
if (event_press(PS4_CROSS)) {RunCombo(Cross3);}
}
else if (N==4) {
if (event_press(PS4_TRIANGLE)) {RunCombo(Triangle4);}
if (event_press(PS4_SQUARE)) {RunCombo(Square4);}
if (event_press(PS4_CIRCLE)) {RunCombo(Circle4);}
if (event_press(PS4_CROSS)) {RunCombo(Cross4);}
}
}
/*
// This will stop Stratagem combo from execution if you release L1
if(event_release(PS4_L1)) {
step = 0;
combo_stop(Step);
}
*/
if(step > 0) {
ReleaseAll();
combo_run(Step);
}
}
/*
-----------------------------------------------------------------------------
COMBOS
-----------------------------------------------------------------------------
*/
combo Step {
DoPress();
wait(ms);
ReleaseAll();
wait(rt);
GetStep();
}
combo Ressurect {set_val(PS4_CROSS,100);wait(ms);set_val(PS4_CROSS,0);wait(rt);set_val(PS4_CROSS,0);}
combo Melee {set_val(PS4_CIRCLE,100);wait(ms);set_val(PS4_CIRCLE,0);wait(rt);set_val(PS4_CIRCLE,0);}
combo BRumble{set_rumble(RUMBLE_B, 100);wait(200);set_rumble(RUMBLE_B, 0);wait(100);set_rumble(RUMBLE_B, 100);wait(200);set_rumble(RUMBLE_B, 0);}
combo ARumble{set_rumble(RUMBLE_A, 100);wait(400);set_rumble(RUMBLE_A, 0);}
/*
-----------------------------------------------------------------------------
FUNCTIONS
-----------------------------------------------------------------------------
*/
function RunCombo(CM) {
step = 0;
press = 0;
while(TRUE) {
if(dbyte(step) == EOD) {
step = -1; return;
}
else if(dbyte(step) == CM) {
step = step + 1;
GetStep();
return;
}
step = step + 1;
}
}
function GetStep() {
if(dbyte(step) == EOC) {
step = 0;
return;
}
press = dbyte(step);
step = step + 1;
}
function DoPress() {
if(press == L) set_val(PS4_LEFT, 100);
if(press == R) set_val(PS4_RIGHT, 100);
if(press == U) set_val(PS4_UP, 100);
if(press == D) set_val(PS4_DOWN, 100);
}
function ReleaseAll() {
set_val(PS4_LEFT, 0);
set_val(PS4_RIGHT, 0);
set_val(PS4_UP, 0);
set_val(PS4_DOWN, 0);
set_val(PS4_L1, 100);
}
function colorled(a,b,c,d) {
set_led(LED_1,a);
set_led(LED_2,b);
set_led(LED_3,c);
set_led(LED_4,d);
}