// GPC Online Library
// no_recoil.gpc
// GPC Online Library
// multiplatform_complete_antirecoil.gpc
/* *
ANTI-RECOIL VERTICAL + HORIZONTAL (LEFT + RIGHT)// RAPID FIRE / AKIMBO RAPID FIRE / JUMP SHOT / DROP SHOT / LEDs INDICATION for MODs
Author: Hackmaster3282
System: MULTI
Controller: MULTI - Optimized for MOUSE & KEYBOARD
GAME: Battlefield series - COD series - Black Ops series
/******************************
* Mod 1 = RAPID FIRE *
* Mod 2 = Akimbo Rapid Fire *
* Mod 3 = Drop Shot *
* Mod 4 = Jump SHot *
* Mod 5 = Mods OFF *
*******************************/
define ONLY_WITH_SCOPE = TRUE;// Use Anti-recoil only when scoping
define ANTI_RECOIL = 5; //change "0" to compensate vertical recoil (0 - 100)
define ANTI_RECOIL_LEFT = 2; //change this value to compensate to the left (0 - 100)
define ANTI_RECOIL_RIGHT = 2; //change this value to compensate to the right (0 - 100)
define MENU_BTN=PS4_OPTIONS;
define OPTIONS_BTN=PS4_SHARE;
define SHOOT_BUTTON=PS4_R2;
define SPRINT_BTN=PS4_L3;
define RELOAD_BTN=PS4_SQUARE;
define ADS_BUTTON=PS4_L2;
define KNIFE_BTN=PS4_R3;
define PRONE_BTN=PS4_CIRCLE;
define JUMP_BTN=PS4_CROSS;
define SWICH_WEPONS=PS4_TRIANGLE;
define D_UP=PS4_UP;
define D_RIGHT=PS4_RIGHT;
define D_DOWN=PS4_DOWN;
define D_LEFT=PS4_LEFT;
define LS_X_MOV=PS4_LX;
define LS_Y_MOV=PS4_LY;
define RS_X_MOV=PS4_RX;
define RS_Y_MOV=PS4_RY;
define RATE_OF_FIRE1 = 25; // Range: 1 to 25 RPS (Round/s)
// VARIABLES
// ---------------------------------------------------------
int fire_button, scope_button;
int anti_recoil;
int anti_recoil_left;
int anti_recoil_right;
int JumpOn=TRUE;
int DropShotON=FALSE;
int SideOn=FALSE;
int akimbo_onoff = FALSE;
int rapidfire_OnOff=TRUE;
int Slide_wait1=300;
int Slide_wait2=40;
int Drop_wait1=700;
int Drop_wait2=100;
int Left_Right=0;
int hold_time1, rest_time1;
int PISTOL=1;
int MOD_NUMBER=1;
int LEDind=0;
// INITIALIZATION
// ---------------------------------------------------------
init {
if(get_console() == PIO_PS3) { // PS3 Trigger & Bumper
fire_button = 3;
scope_button = 6;
} else { // Natural Trigger & Bumper
fire_button = 4;
scope_button = 7;
hold_time1 = 500 / RATE_OF_FIRE1;
rest_time1 = hold_time1 - 20;
if(rest_time1 < 0) rest_time1 = 0;
}
}
// MAIN PROCEDURE
// ---------------------------------------------------------
main {
if(!ONLY_WITH_SCOPE || get_val(scope_button)) {
combo_run(AntiRecoil);
set_val(TRACE_6,MOD_NUMBER);
set_val(TRACE_1,rapidfire_OnOff);
set_val(TRACE_2,akimbo_onoff);
set_val(TRACE_3,DropShotON);
set_val(TRACE_4,SideOn);
//set_val(TRACE_6,PISTOL);
// Switch MODS
if ( event_press(D_UP))
{
if(combo_running(LED_MODS2))combo_stop(LED_MODS2);
MOD_NUMBER=MOD_NUMBER-1;
if(MOD_NUMBER<1)MOD_NUMBER=5;
combo_run(MODS_CHANGE);
}
if (event_press(D_DOWN)){
if(combo_running(LED_MODS2))combo_stop(LED_MODS2);
MOD_NUMBER=MOD_NUMBER+1;
if(MOD_NUMBER>5)MOD_NUMBER=1;
combo_run(MODS_CHANGE);
}
if (get_val(LS_X_MOV)>0)Left_Right=-100;
else Left_Right=100;
if(get_val(SHOOT_BUTTON) && !akimbo_onoff) combo_run(RapidFire);
if(get_val(SHOOT_BUTTON)&& (akimbo_onoff && PISTOL==1))combo_run(AKIMBO);
if(get_val(SHOOT_BUTTON)&& (akimbo_onoff && PISTOL==2)) combo_run(AKIMBO);
// AutoSprint ********************
if (get_val(SPRINT_BTN))combo_run(SPRINT);
// Drop Shoot ( DropShotON ProneBtn
if(get_val(SHOOT_BUTTON) && DropShotON && !get_val(ADS_BUTTON) && !combo_running(Drop_Shoot))combo_run(Drop_Shoot);
// Slide Shoot
if(get_val(SHOOT_BUTTON) && SideOn && !get_val(ADS_BUTTON) && !combo_running(JUMP_Shoot))combo_run(JUMP_Shoot);
// Auto hold Breath
if(get_val(ADS_BUTTON)&& !akimbo_onoff)combo_run(AutoHoldBreath);
// Set LEDs acording mods
if (!combo_running(LED_MODS2)&& (MOD_NUMBER>0 && MOD_NUMBER<6)){
combo_run(LED_MODS2);
}
} // end of main
}
// COMBOS
// ---------------------------------------------------------
combo MODS_CHANGE {
if(MOD_NUMBER==1){rapidfire_OnOff= !rapidfire_OnOff;akimbo_onoff= FALSE;}
else if(MOD_NUMBER==2){akimbo_onoff= !akimbo_onoff;rapidfire_OnOff= FALSE;}
else if(MOD_NUMBER==3){DropShotON= !DropShotON;}
else if(MOD_NUMBER==4){SideOn= !SideOn;DropShotON= !DropShotON;}
else if(MOD_NUMBER==5){SideOn=FALSE; DropShotON=FALSE; akimbo_onoff=FALSE; rapidfire_OnOff=FALSE;}
}
combo LED_MODS2 {
//LEDind=((MOD_NUMBER-1)*4);
if(rapidfire_OnOff) set_led(LED_1,1);
else set_led(LED_1, 0);
wait(100);
set_led(LED_1, 0);
wait(40);
if(akimbo_onoff )set_led(LED_2,1);
else set_led(LED_2, 0);
wait(100);
set_led(LED_2, 0);
wait(40);
if(DropShotON)set_led(LED_3, 1);
else set_led(LED_3, 0);
wait(100);
set_led(LED_3, 0);
wait(40);
if(SideOn)set_led(LED_4,1);
else set_led(LED_4,0);
wait(100);
set_led(LED_4, 0);
wait(40);
}
combo RapidFire {
set_val(SHOOT_BUTTON, 100);
wait(hold_time1);
set_val(SHOOT_BUTTON, 0);
wait(rest_time1);
set_val(SHOOT_BUTTON, 0);
}
combo AKIMBO {
if(PISTOL==1)set_val(SHOOT_BUTTON, 100);
if(PISTOL==2)set_val(ADS_BUTTON, 100);
wait(hold_time1);
if(PISTOL==1)set_val(SHOOT_BUTTON, 0);
if(PISTOL==2)set_val(ADS_BUTTON, 0);
wait(rest_time1);
if(PISTOL==1)set_val(SHOOT_BUTTON, 0);
if(PISTOL==2)set_val(ADS_BUTTON, 0);
if(akimbo_onoff) combo_run(SWITCH);
}
combo SWITCH {
wait(200);
if(PISTOL==1)PISTOL=2;
else PISTOL=1;
}
combo Drop_Shoot {
set_val(PRONE_BTN,100);
wait(Drop_wait1);
//set_val(PRONE_BTN,0);
set_val(SHOOT_BUTTON,100);
wait(100);
set_val(SHOOT_BUTTON,0);
wait(Drop_wait2);
set_val(SHOOT_BUTTON,100);
//set_val(PRONE_BTN,0);
wait(100);
set_val(SHOOT_BUTTON,0);
}
combo SPRINT {
set_val(SPRINT_BTN,100);
wait(300);
set_val(SPRINT_BTN,100);
}
combo AutoHoldBreath {
set_val(SPRINT_BTN, 100);
wait(10);
set_val(SPRINT_BTN, 100);
}
combo JUMP_Shoot {
set_val(JUMP_BTN,100);
wait(Slide_wait1);
set_val(SHOOT_BUTTON,100);
set_val(JUMP_BTN,0);
wait(Slide_wait2);
set_val(JUMP_BTN,0);
}
combo AntiRecoil { // This combo must be the last one
if(get_val(fire_button)) {
anti_recoil = get_val(10) + ANTI_RECOIL;
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);
}
}