/*
GPC Online Library
COD Advanced Warfare(AW) Script
=============================================================================
Device: Titan One
Arthur: Terry (aka UK_Wildcats_Fans)
Game: Call of Duty Advanced Warfare
System: Playstation 4 or Playstation 3
Controller: Dualshock 4 or Dualshock 3
Game Settings: Tactial Flipped Button Layout
Website: www.consoletuner.com
Forum Post: http://www.consoletuner.com/forum/viewtopic.php?f=6&t=1054
Credit: Kniightermaare's codaw_simply_devastating_2.gpc & deadeye quickscope; J2Kbr's IMR Quick Reload and Quick Melee; forum members for their help
=============================================================================
CHANGELOG:
Version 1.1: ADS and DPAD are needed to turn mods ON and OFF, removed Superman, Anti-Recoil can be turned ON and OFF
Version 1.2: Added in Quick Melee and IMR Quick Reload from J2Kbr. IMR quick reload ON/OFF with rapid fire and Quick Melee ON/OFF
Version 1.3: Cleaned up variables, toggle RapidFire when switching weapons (SWAP_WEAPONS)
Version 1.4: Set QuickMelee to always on with time variable for when not in game play, add quick scope and use previous QuickMelee DPAD toggle, set time parameter for IMR Quick Reload to allow getting care packages
Version 1.5: Add AutoSprint with toggle ON/OFF, set Drop Shot to always ON, swap SPRINT_EXO and MELEE, changed the TOGGLE to ADS
Version 1.6: Code clean up, fix bugs and fine tuning of adjustable parameters
Version 1.7: Added IMRQuickReloadON so I could toggle on/off when running the ARX instead of IMR; Added condition to temporarily stop Auto Sprint if RELOAD is pressed
Version 1.8: Set Auto Sprint to always ON; Replace Auto Sprint on DPAD with Jitter for TAC 19; ensure some MODS are off while others are ON. Commented out TRIANGLE swap weapon section for non-burst play
Version 1.9: Setup for PS4 (take out PS3 LED functions)
Version 2.0: Add in auto dash (left, right, back) and replace anti-recoil with autodash on D PAD. Fixed issue with dash functions (SPRINT button not working)
Version 2.1: Made adjustments to Auto Sprint to ensure proper reloading
Version 2.2: Added in long press X for double jump
Version 2.3: Fixed code error with ADS & DISABLE_WITH_SCOPE. It did not work if you wanted to drop shot with ADS.
Version 2.4: Added Akimbo Single Shot & Akimbo Rapid Fire mods
=============================================================================
TOGGLES:
Press ADS in addtion with any of the below. Using ADS helps to prevent accidental turn ON and OFF when operating killstreaks and/or other times that requires the D PAD
Press LEFT on the D PAD to activate/deactivate "RAPID FIRE" LED 4
Press UP on the D PAD to activate/deactivate "JITTER" LED 3 [GUNG HO REQUIRED]
Press RIGHT on the D PAD to activate/deactivate "AUTO-DASH" LED 2
Press DOWN on the D PAD to activate/deactivate "QUICK SCOPE" LED 1
Press CROUCH in addtion with any of the below. Using CROUCH helps to prevent accidental turn ON and OFF when operating killstreaks and/or other times that requires the D PAD
Press RIGHT on the D PAD to activate/deactivate "ANTI-RECOIL"
Press UP on the D PAD to activate/deactivate "DOUBLE JUMP"
Press LEFT on the D PAD to activate/deactivate "AKIMBO SINGLE SHOT"
Press DOWN on the D PAD to activate/deactivate "AKIMBO RAPID FIRE"
=============================================================================
GAMEPLAY COMMENTS
My Favorites: Drop Shot, Auto Sprint, Double Jump, Quick Melee
Akimbo Single Fire Mode:
Pressing SHOOT or ADS will cause both guns to fire at once.
Pressing SHOOT will also activate drop shot. Pressing ADS will NOT activate drop shot.
Auto Sprint & Reloading:
Reload times vary with weapons and auto sprint can cause problems. You sometimes have to let off the joystick, hold the RELOAD button or hold ADS to reload fully
If it does not start sprinting right away, you can press the SPRINT button to start it.
Double Jump:
You must hold the JUMP button to get the double jump.
You can play with the wait time in the combo to adjust if necessary to your liking.
Anti-Recoil:
There is no one right value. See this thread for more information. http://www.consoletuner.com/forum/viewtopic.php?f=17&t=1155
Auto Dash:
This can be very helpful, but I have found that it interferes more than helps.
It can be easily toggled on/off, so give it a try yourself to see if you like it or not.
Quick Scoping:
There are variables to play around with to meet your specific needs.
I am absolutely terrible at quick scoping, so I don't really use this and haven't tested it that much.
=============================================================================
DEFINES
*/
define ADS = PS4_L1; // R1 & L1 can be changed to R2 and L2
define EXO = PS4_L2; // R1 & L1 can be changed to R2 and L2
define SPRINT_EXO = PS4_L3;
define LX = PS4_LX;
define LY = PS4_LY;
define SHOOT = PS4_R1; // R1 & L1 can be changed to R2 AND L2
define GRENADE = PS4_R2; // R1 & L1 can be changed to R2 AND L2
define CROUCH = PS4_R3; // "Default" button layout is PS4_CIRCLE. "Tactical" button layout is PS4_R3.
define RX = PS4_RX;
define RY = PS4_RY;
define JUMP = PS4_CROSS;
define RELOAD = PS4_SQUARE;
define MELEE = PS4_CIRCLE; // "Default" button layout is PS4_R3. "Tactical button layout is PS4_CIRCLE.
define SWAP_WEAPONS = PS4_TRIANGLE;
define UP = PS4_UP;
define DOWN = PS4_DOWN;
define LEFT = PS4_LEFT;
define RIGHT = PS4_RIGHT;
define INSTA_FIRE = 95; // The % at which it boosts the SHOOT button when pressed - i.e. 95% means when pressed 5%
define INSTA_AIM = 95; // The % at which it boosts the ADS button when pressed - i.e. 95% means when pressed 5%
define INSTA_OTHER = 95; // The % at which it boosts the other button when pressed - i.e. 95% means when pressed 5%
define DROPSHOT_QUICKNESS = 95; // The % at which it boosts the CROUCH button when pressed - i.e. 95% means when pressed 5%
define ADS_SPEED = 20; // The % at which it boosts your aiming speed when using ADS
define RATE_OF_FIRE = 50; // Range: 1 to 50 RPS (rounds per second), this varies for each weapon and configuration (i.e type, variant, attachments)
define RATE_OF_FIRE2 = 50; // See above. This is for Akimbo Rapid Fire
define DISABLE_WITH_SCOPE = TRUE; // Will not drop shot if ADS is on
define ANTI_RECOIL = 20; // Change this value to compensate to the vertical recoil ASM1 with rapidfire = 40, BAL no grip = 20; Bal with grp = 0;
define ANTI_RECOIL_LEFT = 0; // Change this value to compensate to the left
define ANTI_RECOIL_RIGHT = 0; // Change this value to compensate to the right
define ONLY_WITH_SCOPE = TRUE; // Anti-recoil will only be applied with ADS
define DASH_WAIT1 = 350; // Auto-dash first wait duration. This may differ between systems (i.e. PS3, PS4, Xbox 360, XB1)
define DASH_WAIT2 = 80; // Auto-dash first wait duration. This may differ between systems (i.e. PS3, PS4, Xbox 360, XB1)
define QUICK_SCOPE_WAIT = 500; // Increase this time for a longer ADS time. Decrease this time for a shorter ADS time
define RELOAD_WAIT1 = 160; // Reload combo wait 1.
define RELOAD_WAIT2 = 2000; // Reload combo wait 2. Adjust for more or less to allow for full reload
// VARIABLES =============================================================================
int AkimboSingleON = FALSE; // Akimbo mode for regular single shot mode
int AkimboRapidON = FALSE; // Akimbo mode with rapid fire mode
int DoubleJumpON = TRUE;
int AutoSprintON = TRUE; // Always turned on now
int AutoDashON = FALSE;
int QuickMelee_ON = TRUE; // Always turned on now
int RapidFireON = FALSE;
int DropShotON = TRUE; // Always turned on now
int InversionON = TRUE; // Set this to FALSE if not using look inversion enabled in the game setting. Most people are NOT using look inversion
int JitterON = FALSE;
int AntiRecoilON = FALSE;
int QuickScopeON = FALSE;
int IMRQuickReloadON = TRUE; // RapidFireON and IMRQuickReloadON must be TRUE for IMR quick reload, FALSE when playing with ARX or other burst
int HoldTime;
int RestTime;
int HoldTime2;
int RestTime2;
int anti_recoil;
int anti_recoil_left;
int anti_recoil_right;
init {
HoldTime = 500 / RATE_OF_FIRE;
RestTime = HoldTime - 20;
if(RestTime < 0) RestTime = 0;
HoldTime2 = 500 / RATE_OF_FIRE2;
RestTime2 = HoldTime2 - 20;
if(RestTime2 < 0) RestTime2 = 0;
}
// MAIN SCRIPT =============================================================================
main {
if(get_val(CROUCH)){sensitivity(CROUCH, NOT_USE, 100 + DROPSHOT_QUICKNESS);} // Allows for quicker crouch if barely pressed
if(event_press(LEFT) && get_val(ADS)) { // Turn ON and OFF Rapid Fire and IMR Quick Reload
RapidFireON = !RapidFireON;
if(RapidFireON) {
// set_led(LED_4, 2);
JitterON = FALSE; // Turn OFF Jitter if using Rapid Fire
// set_led(LED_3, 0);
QuickScopeON = FALSE; // Turn OFF QuickScope if using Rapid Fire
// set_led(LED_1, 0);
}
// else set_led(LED_4, 0);
}
/* Commenting this out while using full auto
if(event_press(SWAP_WEAPONS)) { // Turn ON and OFF Rapid Fire and IMR Quick Reload using SWAP_WEAPONS - i.e. burst weapon as primary and full auto as secondary weapon
RapidFireON = !RapidFireON;
if(RapidFireON) {
set_led(LED_4, 2);
JitterON = FALSE; // Turn OFF Jitter if using Rapid Fire
set_led(LED_3, 0);
QuickScopeON = FALSE; // Turn OFF QuickScope if using Rapid Fire
set_led(LED_1, 0);}
else set_led(LED_4, 0);
}
*/
if(event_press(UP) && get_val(ADS)) { // Turns ON and OFF Drop shot
JitterON = !JitterON;
if(JitterON) {
// set_led(LED_3, 2);
RapidFireON = FALSE; // Turn OFF Rapid Fire if using Jitter
// set_led(LED_4, 0);
AntiRecoilON = FALSE; // Turn OFF Anti Recoil if using Jitter
// set_led(LED_2, 0);
QuickScopeON = FALSE; // Turn OFF QuickScope if using Jitter
// set_led(LED_1, 0);
}
// else set_led(LED_3, 0);
}
if(event_press(RIGHT) && get_val(ADS)) { // Turns ON and OFF Auto-Dash
AutoDashON = !AutoDashON;
// if(AutoDashON) set_led(LED_2, 2);
// else set_led(LED_2, 0);
}
if(event_press(RIGHT) && get_val(CROUCH)) { // Turns ON and OFF Anti-Recoil
AntiRecoilON = !AntiRecoilON;
// if(AntiRecoilON) set_led(LED_2, 2);
// else set_led(LED_2, 0);
}
if(event_press(UP) && get_val(CROUCH)) { // Turns ON and OFF Double Jump
DoubleJumpON = !DoubleJumpON;
}
if(event_press(DOWN) && get_val(ADS)) { // Turns ON and OFF Quick Scope
QuickScopeON = !QuickScopeON;
if(QuickScopeON) {
// set_led(LED_1, 2);
JitterON = FALSE; // Turn OFF Jitter if using Quick Scope
// set_led(LED_3, 0);
RapidFireON = FALSE; // Turn OFF Rapid Fire if using Quick Scope
// set_led(LED_4, 0);
AntiRecoilON = FALSE; // Turn OFF Anti Recoil if using Quick Scope
// set_led(LED_2, 0);
}
// else set_led(LED_1, 0);
}
// Makes the button 100% pressed even if barely pressed - aka more sensitive and quicker reaction
if(get_val(ADS)){sensitivity(ADS, 10, 100 + INSTA_AIM);}
if(get_val(SHOOT)){sensitivity(SHOOT, 10, 100 + INSTA_FIRE);}
if(get_val(SPRINT_EXO)){sensitivity(SPRINT_EXO, 10, 100 + INSTA_OTHER);}
if(get_val(GRENADE)){sensitivity(GRENADE, 10, 100 + INSTA_OTHER);}
// Drop Shot
if(event_press(SHOOT) && DropShotON){
combo_stop(AutoSprint);
combo_run(DropShot);
}
if(DISABLE_WITH_SCOPE && get_val(ADS)) {combo_stop(DropShot);}
// Akimbo Single Shot
if(event_press(LEFT) && get_val(CROUCH)) { // Turns ON and OFF Akimbo Single button mod
AkimboSingleON = !AkimboSingleON;
if (AkimboSingleON){
AkimboRapidON = FALSE; // Turn OFF Akimbo Rapid if using Akimbo
JitterON = FALSE; // Turn OFF Jitter if using Akimbo
RapidFireON = FALSE; // Turn OFF Rapid Fire if using Akimbo
QuickScopeON = FALSE; // Turn OFF QuickScope if using Akimbo
}
}
if(AkimboSingleON && get_val(SHOOT)) {set_val(ADS,100);}
if(AkimboSingleON && get_val(ADS)) {set_val(SHOOT,100);}
// Akimbo Rapid Fire
if(event_press(DOWN) && get_val(CROUCH)) { // Turns ON and OFF Akimbo Rapid Fire mod
AkimboRapidON = !AkimboRapidON;
if (AkimboRapidON){
AkimboSingleON = FALSE; // Turn OFF Akimbo Single if using Akimbo
JitterON = FALSE; // Turn OFF Jitter if using Akimbo
RapidFireON = FALSE; // Turn OFF Rapid Fire if using Akimbo
QuickScopeON = FALSE; // Turn OFF QuickScope if using Akimbo
}
}
if( AkimboRapidON && get_val(ADS) ) {combo_run(AkimboRapidFire);}
if( AkimboRapidON && get_val(SHOOT) ) {combo_run(AkimboRapidFireDropShoot);}
// QUICK MELEE using on/off for testing purposes. Added time variable to see if it helps with the normal "back" when not in actual game play
if(event_press(MELEE) && QuickMelee_ON && get_ptime(RELOAD) < 250) {combo_restart(QuickMelee);}
// FAST RELOAD IMR -- I am only using RapidFireON for IMR right now, so set ON with rapidfire
if(event_release(RELOAD) && RapidFireON && IMRQuickReloadON && get_ptime(RELOAD) < 250) {combo_run(FastReloadIMR);set_val(RELOAD,0);} // time variable needed to allow for getting care packages
// Rapid Fire
if(get_val(SHOOT) && RapidFireON) {combo_run(RapidFire);}
else if(combo_running(RapidFire)) {combo_stop(RapidFire);}
// Kniightmare's Jitter
if(get_val(SHOOT) && JitterON) {combo_run(Jitter);}
else if(combo_running(Jitter)) {combo_stop(Jitter);}
// Faster movement while aiming with ADS
if(get_val(ADS)){
sensitivity(RX, NOT_USE, 100 + ADS_SPEED);
sensitivity(RY, NOT_USE, 100 + ADS_SPEED);
}
// Anti-recoil
if(!ONLY_WITH_SCOPE || get_val(ADS)) {combo_run(AntiRecoil);}
// Quick Scope -- CANNOT ADS (aka regular scope) while using Quick Scope -- for regular ADS you must toggle off QuickScopeON -- see "Toggles" section at the top of this script
if(QuickScopeON && event_press(ADS) ) {combo_run(QuickScope);}
// AutoSprint -- Try different values (i.e. -90, -95); toggle ON/OFF
if(get_val(LY) < -99 && AutoSprintON) { combo_run(AutoSprint); }
else if((get_val(LY) > -99 && AutoSprintON)) {combo_stop(AutoSprint); } // Reload will also stop
if(event_press(RELOAD)|| event_press(SHOOT)) {combo_stop(AutoSprint); combo_run(AllowReloading);}
// AutoDash
if(get_val(LY) > 99 && AutoDashON) { combo_run(DashBack); }
if(get_val(LX) < -99 && AutoDashON) { combo_run(DashLeft); }
if(get_val(LX) > 99 && AutoDashON) { combo_run(DashRight); }
// Double Jump
if(event_press(JUMP) && DoubleJumpON) {
combo_run(DoubleJump);
} else if(!get_val(JUMP)) { // Holding JUMP will let the combo run, and a quick press will work like a normal JUMP or select
combo_stop(DoubleJump);
}
} // End of MAIN
// COMBOS =============================================================================
combo DoubleJump {
set_val(JUMP, 100); // 1st jump
wait(40);
set_val(JUMP, 0);
wait(150); // timing can be adjusted here
set_val(JUMP, 100); // 2nd jump
wait(40);
}
combo AllowReloading {
set_val(SPRINT_EXO, 0);
wait(160); // can adjust to ensure enough time to reload
}
// not currently using as it creates problems
combo Reloading {
set_val(SPRINT_EXO, 0);
wait(30);
set_val(RELOAD, 100);
wait(RELOAD_WAIT1);
set_val(RELOAD, 0);
wait(RELOAD_WAIT2); // can adjust to ensure enough time to reload
}
combo RapidFire {
set_val(SHOOT, 100);
wait(HoldTime);
set_val(SHOOT, 0);
wait(RestTime);
set_val(SHOOT, 0);
}
combo AkimboRapidFire {
set_val(SHOOT, 100);
set_val(ADS,100);
wait(HoldTime2);
set_val(SHOOT, 0);
set_val(ADS,0);
wait(RestTime2);
set_val(SHOOT, 0);
set_val(ADS,0);
}
combo AkimboRapidFireDropShoot {
set_val(SPRINT_EXO,0);
set_val(SHOOT, 100);
set_val(ADS,100);
wait(HoldTime2);
set_val(SHOOT, 0);
set_val(ADS,0);
set_val(CROUCH, 100);
wait(RestTime2);
set_val(SHOOT, 0);
set_val(ADS,0);
set_val(CROUCH, 100);
}
combo DropShot {
set_val(SPRINT_EXO,0);
wait(15)
set_val(CROUCH, 100);
wait(15)
set_val(CROUCH, 100);
wait(1000); // Changed from 1200 to 1000 for testing
}
combo Jitter {
set_val(LY, -100);
set_val(RELOAD, 100);
wait(30);
set_val(LY, -100);
set_val(SPRINT_EXO, 100);
wait(30);
set_val(LY, -100);
wait(20);
set_val(LY, -100);
}
combo FastReloadIMR {
set_val(RELOAD, 100);
wait(40);
set_val(RELOAD, 0);
wait(1250); // << Adjustable timing; good values test are: 1250. Lower than this, the quick reload will not work
set_val(RELOAD, 0);
set_val(LX, 0);
set_val(LY, -100);
set_val(SPRINT_EXO, 100);
wait(40);
}
combo QuickMelee {
set_val(MELEE, 100);
wait(40);
set_val(MELEE, 0);
wait(250); // << Adjustable timing -- If too low the melee is stopped too quickly and does not fully hit -- If too long it becomes a normal melee. 300 seems good. Trying at 250
set_val(MELEE, 0);
set_val(LX, 100);
set_val(LY, 0);
set_val(SPRINT_EXO, 100);
wait(40);
}
combo QuickScope {
set_val(ADS, 100);
wait(QUICK_SCOPE_WAIT) //Increase this time for a longer ADS time. Decrease this time for a shorter ADS time.
set_val(ADS, 0);
wait(10)
set_val(SHOOT, 100);
wait(20)
set_val(SHOOT, 0);
wait(60)
set_val(SHOOT, 0);
}
combo AutoSprint {
set_val(SPRINT_EXO, 100);
wait(10);
set_val(SPRINT_EXO, 100)
}
combo AntiRecoil {
// Look Inversion Enabled
if(get_val(SHOOT) && AntiRecoilON && InversionON) { // Using AntiRecoilON toggle for testing and when using multiple weapons
anti_recoil = get_val(10) - ANTI_RECOIL; // SUBTRACT anti_recoil when LOOK INVERSION is ENABLED
if(anti_recoil > 100) anti_recoil = 100;
set_val(10, anti_recoil);
anti_recoil_left = get_val(9) - ANTI_RECOIL_LEFT;
if(anti_recoil_left > 100) anti_recoil_left = 100;
set_val(9, anti_recoil_left);
anti_recoil_right = get_val(9) + ANTI_RECOIL_RIGHT;
if(anti_recoil_right > 100) anti_recoil_right = 100;
set_val(9, anti_recoil_right);
}
// Normal Look Inversion - look inversion disabled
if(get_val(SHOOT) && AntiRecoilON && !InversionON) { // Using AntiRecoilON toggle for testing and when using multiple weapons
anti_recoil = get_val(10) + ANTI_RECOIL; // ADD anti_recoil for normal
if(anti_recoil > 100) anti_recoil = 100;
set_val(10, anti_recoil);
anti_recoil_left = get_val(9) - ANTI_RECOIL_LEFT;
if(anti_recoil_left > 100) anti_recoil_left = 100;
set_val(9, anti_recoil_left);
anti_recoil_right = get_val(9) + ANTI_RECOIL_RIGHT;
if(anti_recoil_right > 100) anti_recoil_right = 100;
set_val(9, anti_recoil_right);
}
}
combo DashRight {
set_val(LX, 100);
set_val(SPRINT_EXO, 100);
wait(DASH_WAIT1);
set_val(LX, 100);
set_val(SPRINT_EXO, 0);
wait(DASH_WAIT2);
set_val(LX, 100);
set_val(SPRINT_EXO, 0);
}
combo DashLeft {
set_val(LX, -100);
set_val(SPRINT_EXO, 100);
wait(DASH_WAIT1);
set_val(LX, -100);
set_val(SPRINT_EXO, 0);
wait(DASH_WAIT2);
set_val(LX, -100);
set_val(SPRINT_EXO, 0);
}
combo DashBack {
set_val(LY, 100);
set_val(SPRINT_EXO, 100);
wait(DASH_WAIT1);
set_val(LY, 100);
set_val(SPRINT_EXO, 0);
wait(DASH_WAIT2);
set_val(LY, 100);
set_val(SPRINT_EXO, 0);
}
combo DodgeNotifier {
set_rumble(RUMBLE_B, 100);
wait(200);
set_rumble(RUMBLE_B, 0);
wait(4000);
}