// This was only designed for Black Ops!
/*******************************************************************************
* MODS WORKS FOR PS4 and XBOX ONE CONSOLES RUMBLE *
* TURNING ON/OFF NOTICE *
* QUICK FIRE PRIMARY PS: D-Left + CROSS X-Box: D-Pad Left + A 1 time *
* L96 FULL-AUTO NOSOH PS: D-Left + CROSS X-Box: D-Pad Left + A 2 time *
* L96 FULL-AUTO SOH PS: D-Left + CROSS X-Box: D-Pad Left + A 3 time *
* QUICK FIRE SECONDARY PS: D-Left + CIRCLE X-Box: D-Pad Left + B 1 time *
* AKIMBOS PS: D-Left + SQUARE X-Box: D-Pad Left + X 1 time *
* ANTI-RECOIL PS: D-Down + CROSS X-Box: D-Pad Down + A 1 time *
* SNIPER BREATH PS: D-Down + CIRCLE X-Box: D-Pad Down + B 1 time *
* AUTO SPRINT PS: D-UP + CROSS X-Box: D-Pad UP + A 1 time *
* TARGET AIM PS: D-UP + CIRCLE X-Box: D-Pad UP + B 1 time *
* QUICK RELOAD PS: D-UP + SQUARE X-Box: D-Pad UP + X 1 time *
* *
* SWITCHING BETWEEN PRIMARY AND SECONDARY *
* WHEN TAPPING TRIANGLE FOR PLAYSTATION OR Y BUTTON ON XBOX YOU WILL GET *
* ONE RUMBLE FOR THE PRIMARY SIDE AND TWO RUMBLES FOR THE SECONDARY SIDE *
* INCASE YOU GET ON THE WRONG SIDE FOR YOUR CLASS JUST HOLD TRIANGLE OR Y *
BUTTON FOR 300MS OR LONGER AND RELEASE TO PUT YOU INLINE WITH WEAPON CLASS *
* WHEN ADJUSTING FIRE MAKE SURE YOU ARE ON THE CORRECT SIDE FOR ADJUSTMENTS *
* WHEN YOU DIE MAKE SURE YOUR BACK ON PRIMARY SIDE SO SWITCH BEFORE YOU SPAWN *
* *
* ADJUSTING QUICK FIRE PRIMARY *
* ADJUSTING QUICK FIRE PS: HOLD R2 + CLICK UP ON D-PAD FOR INCREASING AND *
* DOWN ON THE D_PAD FOR DECREASING THE FIRE. *
* ADJUSTING QUICK FIRE X-BOX: HOLD RT + CLICK UP ON D_PAD FOR INCREASING AND *
* DOWN ON D-PAD FOR DECREASING THE FIRE. MAKE SURE YOUR ON PRIMARY SIDE! *
* *
* ADJUSTING QUICK FIRE SECONDARY *
* ADJUSTING QUICK FIRE PS: HOLD R2 + CLICK RIGHT ON D-PAD FOR INCREASING *
* AND LEFT ON THE D-PAD FOR DECREASING THE FIRE. *
* ADJUSTING QUICK FIRE X-BOX: HOLD RT + CLICK RIGHT ON D-PAD FOR INCREASING *
* AND LEFT ON THE D-PAD FOR DECREASING THE FIRE. MAKE SURE YOUR ON SECONDARY! *
* *
* ADJUSTING QUICK RELOAD *
* ADJUSTING QUICK RELOAD PS: HOLD CROSS BUTTON + CLICK OR HOLD FOR FAST TRAVEL *
* R1 TO LENGTHEN THE TIMING AND L1 TO SHORTEN THE TIMING. *
* ADJUSTING QUICK RELOAD X-BOX: HOLD A BUTTON + CLICK OR HOLD FOR FAST TRAVEL *
* RB TO LENGTHEN THE TIMING AND LB TO SHORTEN THE TIMING. *
* THIS IS A ADS METHOD AND HOW TO ADJUST IS TO LENGTHEN THE TIMING WHERE THE *
* SCOPE COMES UP AFTER RELOADING THEN SHORTEN TIMING WHERE IT CLICKS IN FULL *
* CLIP WHILE RUNNING IF YOU SHORTEN IT TO MUCH RELOAD WILL CANCEL. *
* *
* AKIMBO MOD *
* IT ADJUSTS WITH THE QUICK FIRE SECONDARY SETTINGS YOU CAN EITHER HAVE THIS *
* ON FOR AKIMBOS OR OFF BUT FOR THE AKIMBOS TO WORK IT DOES NEED QUICK FIRE *
* SECONDARY SIDE ON ALSO. BECAUSE THERE BOTH ARE SINGLED OUT FROM ONE ANOTHER. *
* *
* L96 FULL AUTO MOD *
* L96 FULL AUTO HAS TWO MODS ONE IS NO SLEIGHT OF HAND PERK AND OTHER WITH SOH *
* WARNING! WHEN USING THIS SWITCH TO SECONDARY TO USE CARE PACKAGES OR ITEMS. *
*******************************************************************************/
// FOR DESIRED LAYOUT CHANGE RED NUMBER TO YOUR LAYOUT NUMBER IN COLUMN.
// LAYOUT /DEFAULT/TACTICAL/LEFTY/BUMPER JUMPER/FLIPPED DEFAULT/
define FIRE = 4; //* * 7 * * 3 *
define ADS = 7; //* * 4 * * 6 *
define TACTICAL = 6; //* * 3 * 19 * 7 *
define LETHAL = 3; //* * 6 * * 4 *
define UP = 13; //* * * * *
define DOWN = 14; //* * * * *
define LEFT = 15; //* * * * *
define RIGHT = 16; //* * * * *
define SPRINT = 8; //* * 5 * * *
define MELEE = 5; //* 18 * 8 * * *
define SWITCH = 17; //* * * * *
define RELOAD = 20; //* * * * *
define JUMP = 19; //* * * 6 * *
define CROUCH = 18; //* 5 * * * *
define ANTI_RECOIL_FORCE = 30; // change this value to compensate
// to the vertical recoil for advance rapid fire.
define ON = 14;
define OFF = 13;
define DZ = 10; // Adjusting Dead Zone in your sticks. Adjust to liking!
int PrimaryFire;
int SecondaryFire;
int AkimboOnOff;
int AutoRunOnOff;
int RapidFireOnOff;
int HoldTime, RateOfFire;
int HoldTime2, RateOfFire2;
int ToggleAntiRecoil;
int Primary = FALSE;
int AimAssistOnOff;
int SniperBreathOnOff;
int QuickReload;
int ReloadRate,ReloadTime;
int AntiRecoilOnOff;
int anti_recoil;
int ar_fire, ar_tmp;
init {
PrimaryFire = get_pvar(SPVAR_1, 1, 4, 1);
SecondaryFire = get_pvar(SPVAR_2, 1, 2, 2);
RateOfFire = get_pvar(SPVAR_3, 25, 250, 62);
RateOfFire2 = get_pvar(SPVAR_4, 25, 250, 62);
AkimboOnOff = get_pvar(SPVAR_5, 1, 2, 2);
AutoRunOnOff = get_pvar(SPVAR_6, 1, 2, 1);
AimAssistOnOff = get_pvar(SPVAR_7, 1, 3, 1);
QuickReload = get_pvar(SPVAR_8, 1, 2, 2);
ReloadRate = get_pvar(SPVAR_9, 500, 4000, 1500);
AntiRecoilOnOff = get_pvar(SPVAR_10, 1, 2, 2);
SniperBreathOnOff = get_pvar(SPVAR_10, 1, 2, 2);
}
main {
// Set hair triggers
if (get_val(FIRE)) {set_val(FIRE, ON); }
if (get_val(ADS)) {set_val(ADS, ON); }
if (get_val(LEFT) && event_press(JUMP)) {
if (PrimaryFire == 4) {
PrimaryFire = 1;
set_pvar(SPVAR_1, PrimaryFire);
} else if (PrimaryFire == 1) {
PrimaryFire = 2;
set_pvar(SPVAR_1, PrimaryFire);
combo_run(RumbleNotifier);
} else if (PrimaryFire == 2) {
PrimaryFire = 3;
set_pvar(SPVAR_1, PrimaryFire);
combo_run(DoubleRumbleNotifier);
} else if (PrimaryFire == 3) {
PrimaryFire = 4;
set_pvar(SPVAR_1, PrimaryFire);
combo_run(TripleRumbleNotifier);
}
}
if (get_val(LEFT) && event_press(CROUCH)) {
if (SecondaryFire == 1) {
SecondaryFire = 2;
} else if (SecondaryFire == 2) {
SecondaryFire = 1;
}
set_pvar(SPVAR_2, SecondaryFire);
if (SecondaryFire == 1) {
combo_run(RumbleNotifier);
}
}
if (get_val(LEFT) && event_press(RELOAD)) {
if (AkimboOnOff == 1) {
AkimboOnOff = 2;
} else if (AkimboOnOff == 2) {
AkimboOnOff = 1;
}
set_pvar(SPVAR_5, AkimboOnOff);
if (AkimboOnOff == 1) {
combo_run(RumbleNotifier);
}
}
if(event_release(SWITCH)){
if(get_ptime(SWITCH) <= 300){
Primary = !Primary;
}
if(Primary){
set_pvar(SPVAR_1, PrimaryFire);
combo_run(RumbleNotifier);
}
else{
set_pvar(SPVAR_2, SecondaryFire);
combo_run(DoubleRumbleNotifier);
}
}
if(PrimaryFire == 2 && get_val(FIRE) && Primary){
combo_run(RapidFire);
}
if(PrimaryFire == 3 && get_val(FIRE) && Primary){
combo_run(L96AUTO_NOSOH);
}
if(PrimaryFire == 4 && get_val(FIRE) && Primary){
combo_run(L96AUTO_SOH);
}
if(SecondaryFire == 1 && get_val(FIRE) && !Primary){
combo_run(RapidFire2);
}
if(AkimboOnOff == 1 && get_val(FIRE) && !Primary){
combo_run(Akimbos);
}
if (PrimaryFire == 2 && get_val(FIRE)) {
if (get_val(UP)) {RateOfFire = RateOfFire - 1; }
if (get_val(DOWN)) {RateOfFire = RateOfFire + 1; }
if (RateOfFire > 250) { RateOfFire = 250; }
if (RateOfFire < 25) { RateOfFire = 25; }
set_pvar(SPVAR_3, RateOfFire);
HoldTime = RateOfFire;
}
if (SecondaryFire == 1 && get_val(FIRE)) {
if (get_val(RIGHT)) {RateOfFire2 = RateOfFire2 - 1; }
if (get_val(LEFT)) {RateOfFire2 = RateOfFire2 + 1; }
if (RateOfFire2 > 250) { RateOfFire2 = 250; }
if (RateOfFire2 < 25) { RateOfFire2 = 25; }
set_pvar(SPVAR_4, RateOfFire2);
HoldTime2 = RateOfFire2;
}
if (get_val(UP) && event_press(JUMP)) {
if (AutoRunOnOff == 1) {
AutoRunOnOff = 2;
} else if (AutoRunOnOff == 2) {
AutoRunOnOff = 1;
}
set_pvar(SPVAR_6, AutoRunOnOff);
if (AutoRunOnOff == 1) {
combo_run(RumbleNotifier);
}
}
if(get_val(FIRE)) { set_val(UP, 0); set_val(DOWN, 0);
set_val(RIGHT, 0); set_val(LEFT, 0);
}
if (AutoRunOnOff == 1) {
if (get_val(12) < -95) { combo_run(AutoSprint);
}
}
if (get_val(UP) && event_press(CROUCH)) {
if (AimAssistOnOff == 3) {
AimAssistOnOff = 1;
set_pvar(SPVAR_7, AimAssistOnOff);
} else if (AimAssistOnOff == 1) {
AimAssistOnOff = 2;
set_pvar(SPVAR_7, AimAssistOnOff);
combo_run(RumbleNotifier);
} else if (AimAssistOnOff == 2) {
AimAssistOnOff = 3;
set_pvar(SPVAR_7, AimAssistOnOff);
combo_run(DoubleRumbleNotifier);
}
}
if(AimAssistOnOff == 2) {
if(get_val(ADS)) {
combo_run(TARGET_AIM);
}
if(get_val(ADS) && get_val(FIRE)) {
combo_stop(TARGET_AIM);
combo_run(TARGET_AIM_FIRE); }
}
if(get_val(10) < -40 || get_val(9) > 40 || get_val(10) > 40 || get_val(9) < -40 ||
get_val(12) < -40 || get_val(11) > 40 || get_val(12) > 40 || get_val(11) < -40) {
combo_stop(TARGET_AIM); combo_stop(TARGET_AIM_FIRE);
}
if (AimAssistOnOff == 3 && get_val(FIRE)) {
combo_run(TARGET_AIM_FIRE);
}
if(get_val(10) < -40 || get_val(9) > 40 || get_val(10) > 40 || get_val(9) < -40 ||
get_val(12) < -40 || get_val(11) > 40 || get_val(12) > 40 || get_val(11) < -40) {
combo_stop(TARGET_AIM_FIRE);
}
if (get_val(UP) && event_press(RELOAD)){
if (QuickReload == 1) {
QuickReload = 2;
} else if (QuickReload == 2) {
QuickReload = 1;
}
set_pvar(SPVAR_8, QuickReload);
if (QuickReload == 1) {
combo_run(RumbleNotifier);
}
}
if (QuickReload == 1 && event_press(RELOAD)) {
combo_run(FastReload);
}
if (QuickReload == 1 && get_val(JUMP)) {
if (get_val(TACTICAL)) {ReloadRate = ReloadRate - 5; }
if (get_val(LETHAL)) {ReloadRate = ReloadRate + 5; }
if (ReloadRate > 4000) { ReloadRate = 4000; }
if (ReloadRate < 500) { ReloadRate = 500; }
set_pvar(SPVAR_9, ReloadRate);
ReloadTime = ReloadRate;
set_val(TACTICAL, 0); set_val(LETHAL, 0);
}
if (get_val(DOWN) && event_press(JUMP)) {
if (AntiRecoilOnOff == 1) {
AntiRecoilOnOff = 2;
} else if (AntiRecoilOnOff == 2) {
AntiRecoilOnOff = 1;
}
set_pvar(SPVAR_10, AntiRecoilOnOff);
if (AntiRecoilOnOff == 1) {
combo_run(RumbleNotifier);
}
}
if (AntiRecoilOnOff == 1 && get_val(ADS) && get_val(FIRE)) {
combo_run(AntiRecoilADV);
}
if (get_val(DOWN) && event_press(CROUCH)){
if (SniperBreathOnOff == 1) {
SniperBreathOnOff = 2;
} else if (SniperBreathOnOff == 2) {
SniperBreathOnOff = 1;
}
set_pvar(SPVAR_11, SniperBreathOnOff);
if (SniperBreathOnOff == 1) {
combo_run(RumbleNotifier);
}
}
if (SniperBreathOnOff == 1 && get_val(ADS)) {
combo_run(HoldBreath);
}
deadzone (9, 10, DZ, DZ);
deadzone (11, 12, DZ, DZ);
}
combo RumbleNotifier {
set_rumble(RUMBLE_A, 100);
wait (300);
reset_rumble();
}
combo DoubleRumbleNotifier {
set_rumble(RUMBLE_A, 100);
wait (300);
set_rumble (RUMBLE_A, 0);
wait (300);
set_rumble(RUMBLE_A, 100);
wait (400);
reset_rumble();
}
combo TripleRumbleNotifier {
set_rumble(RUMBLE_A, 100);
wait (300);
set_rumble (RUMBLE_A, 0);
wait (300);
set_rumble(RUMBLE_A, 100);
wait (400);
set_rumble (RUMBLE_A, 0);
wait (300);
set_rumble(RUMBLE_A, 100);
wait (400);
reset_rumble();
}
combo RapidFire {
set_val (FIRE, ON);
wait (HoldTime);
set_val (FIRE, OFF);
wait (HoldTime);
}
combo RapidFire2 {
set_val (FIRE, ON);
wait (HoldTime2);
set_val (FIRE, OFF);
wait (HoldTime2);
}
combo Akimbos {
set_val (ADS, OFF);
wait (HoldTime2);
set_val (ADS, ON);
wait (HoldTime2);
}
combo AutoSprint {
set_val (SPRINT, ON);
wait (200);
set_val (SPRINT, OFF);
wait (200);
}
combo TARGET_AIM {
set_val (10, -20);
set_val (12, -20);
wait (50);
set_val (9, 25);
set_val (11, 25);
wait (50);
set_val (10, 20);
set_val (12, 20);
wait (50);
set_val (9, -25);
set_val (11, -25);
wait (50);
}
combo TARGET_AIM_FIRE {
set_val (10, -35);
set_val (12, -35);
wait (100);
set_val (9, 40);
set_val (11, 40);
wait (100);
set_val (10, 35);
set_val (12, 35);
wait (100);
set_val (9, -40);
set_val (11, -40);
wait (100);
}
combo FastReload {
set_val (ADS, ON);
wait (ReloadTime);
set_val (ADS, OFF);
}
combo L96AUTO_NOSOH {
set_val (FIRE, ON);
wait (130);
set_val (FIRE, ON);
set_val (RELOAD, ON);
wait (70);
wait (600);
set_val (SWITCH, ON);
wait (40);
wait (30);
set_val (SWITCH, ON);
wait (40);
}
combo L96AUTO_SOH {
set_val (FIRE, ON);
wait (100);
set_val (FIRE, ON);
set_val (RELOAD, ON);
wait (70);
set_val (FIRE, ON);
set_val (RELOAD, OFF);
wait (30);
wait (330);
set_val (SWITCH, ON);
wait (40);
wait (30);
set_val (SWITCH, ON);
wait (40);
}
combo HoldBreath {
set_val (SPRINT, ON);
wait (10);
set_val (SPRINT, ON);
}
combo AntiRecoilADV {
if(ar_fire && get_val(FIRE)) {
ar_tmp = get_val(10) + ANTI_RECOIL_FORCE;
if(ar_tmp > 100) ar_tmp = 100;
else if(ar_tmp < -100) ar_tmp = -100;
set_val(10, ar_tmp);
}
}