// 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 *
* BURST FIRE PRIMARY 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 SECONDARY 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 + SQUARE X-Box: D-Pad Down + X 1 time *
* DROP SHOT 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 *
* SNAKE GLITCH 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 *
* *
* MAKE SURE TO CYCLE THE SWITCHING BEFORE STARTING!!! *
* *
* 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 BURST FIRE PRIMARY *
* ADJUSTING BURST FIRE PS: HOLD L2 + CLICK UP ON D-PAD FOR DECREASING SHOTS *
* AND DOWN ON THE D_PAD FOR INCREASING SHOTS OF FIRE. *
* ADJUSTING BURST FIRE PS: HOLD L2 + CLICK RIGHT ON D-PAD FOR DECREASING DELAY *
* AND LEFT ON THE D-PAD FOR INCREASING DELAY OF FIRE. *
* ADJUSTING QUICK FIRE X-BOX: HOLD RT + CLICK UP ON D_PAD FOR DECREASING SHOTS *
* AND DOWN ON D-PAD FOR INCREASING SHOTS FIRE. MAKE SURE YOUR ON PRIMARY SIDE! *
* ADJUSTING QUICK FIRE X-BOX: HOLD RT + CLICK RIGHT ON D-PAD FOR DECREASING *
* DELAY AND LEFT ON THE D-PAD FOR INCREASING DELAY OF 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 STOP SPRINT METHOD AND HOW TO ADJUST IS TO LENGTHEN THE TIMING *
* WHEN THE SPRINT KICKS IN SHOULD SNAP INTO A FULLY LOADED CLIP IF IT STOPS *
* SHORT OF A FULL CLIP LENGTHEN MORE. IF CLIP LOADS AND YOU SEE SPRINT AFTER *
* SHORTEN THE TIMING TIL IT CLICKS IN FAST AND FULL. *
* *
* 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 ONE MOD NEEDS SLEIGHT OF HAND PERK! *
* 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;
int PrimaryFire;
int SecondaryFire;
int BurstOfFire, BurstOfFire2;
int AkimboOnOff;
int AutoRunOnOff;
int RapidFireOnOff;
int HoldTime, RateOfFire;
int HoldTime2, RateOfFire2;
int HoldBurst, ReleaseBurst;
int ToggleAntiRecoil;
int Primary = FALSE;
int SnakeGlitchOnOff;
int SniperBreathOnOff;
int DropShotOnOff;
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);
SnakeGlitchOnOff = get_pvar(SPVAR_7, 1, 2, 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_11, 1, 2, 2);
BurstOfFire = get_pvar(SPVAR_12, 10, 1000, 300);
BurstOfFire2 = get_pvar(SPVAR_13, 10, 1000, 50);
DropShotOnOff = get_pvar(SPVAR_14, 1, 2, 2);
}
main {
// Set hair triggers
if (get_val(FIRE)) {set_val(FIRE, ON); }
if (get_val(ADS)) {set_val(ADS, ON); }
ar_fire = get_val(FIRE);
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);
set_pvar(SPVAR_2, SecondaryFire);
}
else{
set_pvar(SPVAR_2, SecondaryFire);
combo_run(DoubleRumbleNotifier);
}
}
if(PrimaryFire == 2 && get_val(FIRE) && Primary){
combo_run(RapidFire); combo_stop(AutoSprint);
}
if(PrimaryFire == 3 && get_val(FIRE) && Primary){
combo_run(BurstFire); combo_stop(AutoSprint);
}
if(PrimaryFire == 4 && get_val(FIRE) && Primary){
combo_run(L96AUTO_SOH); combo_stop(AutoSprint);
}
if(SecondaryFire == 1 && get_val(FIRE) && !Primary){
combo_run(RapidFire2); combo_stop(AutoSprint);
}
if(AkimboOnOff == 1 && get_val(FIRE) && !Primary){
combo_run(Akimbos); combo_stop(AutoSprint);
}
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 (PrimaryFire == 3 && get_val(ADS) && !get_val(FIRE)) {
if (get_val(UP)) {BurstOfFire = BurstOfFire - 1; }
if (get_val(DOWN)) {BurstOfFire = BurstOfFire + 1; }
if (BurstOfFire > 1000) { BurstOfFire = 1000; }
if (BurstOfFire < 10) { BurstOfFire = 10; }
set_pvar(SPVAR_12, BurstOfFire);
HoldBurst = BurstOfFire;
}
if (PrimaryFire == 3 && get_val(ADS) && !get_val(FIRE)) {
if (get_val(RIGHT)) {BurstOfFire2 = BurstOfFire2 - 1; }
if (get_val(LEFT)) {BurstOfFire2 = BurstOfFire2 + 1; }
if (BurstOfFire2 > 1000) { BurstOfFire2 = 1000; }
if (BurstOfFire2 < 10) { BurstOfFire2 = 10; }
set_pvar(SPVAR_13, BurstOfFire2);
ReleaseBurst = BurstOfFire2;
}
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 (AutoRunOnOff == 1) {
if (get_val(12) < -95) { combo_run(AutoSprint);
}
}
if (get_val(UP) && event_press(CROUCH)) {
if (SnakeGlitchOnOff == 2) {
SnakeGlitchOnOff = 1;
set_pvar(SPVAR_7, SnakeGlitchOnOff);
} else if (SnakeGlitchOnOff == 1) {
SnakeGlitchOnOff = 2;
set_pvar(SPVAR_7, SnakeGlitchOnOff);
combo_run(RumbleNotifier);
}
}
if (SnakeGlitchOnOff == 2) {
combo_run(Snaking); combo_stop(AutoSprint);
}
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 - 1; }
if (get_val(LETHAL)) {ReloadRate = ReloadRate + 1; }
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(RELOAD)){
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);
}
if (get_val(DOWN) && event_press(CROUCH)){
if (DropShotOnOff == 1) {
DropShotOnOff = 2;
} else if (DropShotOnOff == 2) {
DropShotOnOff = 1;
}
set_pvar(SPVAR_14, DropShotOnOff);
if (DropShotOnOff == 1) {
combo_run(RumbleNotifier);
}
}
if (DropShotOnOff == 1) {
if((!get_val(ADS) && event_press(FIRE)) || (event_release(ADS) && get_val(FIRE))) {
combo_run(DropShot);
combo_stop(AutoSprint);
}
}
}
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 BurstFire {
set_val (FIRE, ON);
wait (HoldBurst);
set_val (FIRE, OFF);
wait (ReleaseBurst);
}
combo Akimbos {
set_val (ADS, OFF);
wait (HoldTime2);
set_val (ADS, ON);
wait (HoldTime2);
}
combo AutoSprint {
set_val (SPRINT, ON);
wait (40);
set_val (SPRINT, OFF);
wait (40);
}
combo FastReload {
set_val (SPRINT, 0);
wait (ReloadTime);
set_val (SPRINT, 100);
}
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 Snaking {
set_val (CROUCH, 100);
wait (150);
set_val (CROUCH, 100);
set_val (JUMP, 100);
wait (100);
set_val (CROUCH, 100);
set_val (JUMP, 0);
wait (100);
set_val (CROUCH, 100);
set_val (JUMP, 100);
wait (100);
set_val (CROUCH, 0);
set_val (JUMP, 0);
wait (100);
}
combo DropShot {
set_val (CROUCH, ON);
wait (600);
set_val (CROUCH, OFF):
wait (360);
set_val (CROUCH, ON);
wait (30);
set_val (CROUCH, OFF);
wait (30);
set_val (CROUCH, ON);
wait (30);
set_val (CROUCH, OFF);
}
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);
}
}