/*
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 3
Controller: Dualshock 3
Game Settings: Tactial Button Layout
Website: www.consoletuner.com
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
=============================================================================
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 "AUTO SPRINT" LED 3
Press RIGHT on the D PAD to activate/deactivate "ANTI-RECOIL" LED 2
Press DOWN on the D PAD to activate/deactivate "QUICK SCOPE" LED 1
=============================================================================
DEFINES
These are based upon the TACTICAL button layout. There is a SWAP in the main part of the script that I am using for my experimentation
*/
define ADS = PS3_L1; // R1 & L1 can be changed to R2 AND L2
define EXO = PS3_L2; // R1 & L1 can be changed to R2 AND L2
define SPRINT_EXO = PS3_L3;
define LX = PS3_LX;
define LY = PS3_LY;
define SHOOT = PS3_R1; // R1 & L1 can be changed to R2 AND L2
define GRENADE = PS3_R2; // R1 & L1 can be changed to R2 AND L2
define CROUCH = PS3_R3; // "Default" button layout is PS3_CIRCLE
define RX = PS3_RX;
define RY = PS3_RY;
define JUMP = PS3_CROSS;
define RELOAD = PS3_SQUARE;
define MELEE = PS3_CIRCLE; // "Default" button layout is PS3_R3
define SWAP_WEAPONS = PS3_TRIANGLE;
define UP = PS3_UP;
define DOWN = PS3_DOWN;
define LEFT = PS3_LEFT;
define RIGHT = PS3_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 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 = 25; // Range: 1 to 25 RPS (rounds per second), this varies for each weapon and configuration (i.e type, variant, attachments)
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
// VARIABLES =============================================================================
int AutoSprintON = 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
int KniightMareJitterON = FALSE;
int AntiRecoilON = FALSE;
int QuickScopeON = FALSE;
int HoldTime, RestTime;
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;
}
// MAIN SCRIPT =============================================================================
main {
swap(SPRINT_EXO, MELEE); // Swapping L3 and CIRCLE for personal game play -- with Tactical button layout, a quicker melee was needed
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);
QuickScopeON = FALSE; // Turn OFF QuickScope if using Rapid Fire
set_led(LED_1, 0);}
else set_led(LED_4, 0);
}
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);
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
AutoSprintON = !AutoSprintON;
if(AutoSprintON) set_led(LED_3, 2);
else set_led(LED_3, 0);
}
if(event_press(RIGHT) && get_val(ADS)) { // Turns ON and OFF Recoil
AntiRecoilON = !AntiRecoilON;
if(AntiRecoilON) set_led(LED_2, 2);
else set_led(LED_2, 0);
}
if(event_press(DOWN) && get_val(ADS)) { // Turns ON and OFF Quick Scope
QuickScopeON = !QuickScopeON;
if(QuickScopeON) {
set_led(LED_1, 2);
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);
}
// 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 && get_ptime(RELOAD) < 250) {combo_run(FastReloadIMR);set_val(RELOAD,0);} // time variable needed to allow for getting care packages
// Drop Shot
if(event_press(SHOOT) && DropShotON){combo_run(DropShot);}
if(!DISABLE_WITH_SCOPE || get_val(ADS)) {combo_stop(DropShot);}
// Rapid Fire
if(get_val(SHOOT) && RapidFireON) {combo_run(RapidFire);}
else if(combo_running(RapidFire)) {combo_stop(RapidFire);}
// Kniightmare Jitter
if(get_val(SHOOT) && KniightMareJitterON) {combo_run(KniightMareJitter);}
else if(combo_running(KniightMareJitter)) {combo_stop(KniightMareJitter);}
// Faster movement while aiming with ADS
if(get_val(ADS)){
sensitivity(RX, NOT_USE, 100 + ADS_SPEED);
sensitivity(RY, NOT_USE, 100 + ADS_SPEED);
}
// 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);}
// 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); set_val(SPRINT_EXO,0);}
} // End of MAIN
// COMBOS =============================================================================
combo RapidFire {
set_val(SHOOT, 100);
wait(HoldTime);
set_val(SHOOT, 0);
wait(RestTime);
set_val(SHOOT, 0);
}
combo DropShot {
set_val(CROUCH, 100);
wait(15)
set_val(CROUCH, 100);
wait(1200);
}
combo KniightMareJitter {
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(420)
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);}
}