Anti recoil xim apex + bo4 qol slide script?

GPC2 script programming for Titan Two. Code examples, questions, requests.

Anti recoil xim apex + bo4 qol slide script?

Postby Rocketeeer » Tue Feb 05, 2019 2:21 pm

hey guys dont u think it would be great if someone could combine the antirecoil scritpt for xim apex from alanmcgregor with the slide part from the script bo4 qol from pablosscripts?
Thanks let me know what u guys think about this.
User avatar
Rocketeeer
Private
Private
 
Posts: 1
Joined: Tue Feb 05, 2019 2:09 pm

Re: Anti recoil xim apex + bo4 qol slide script?

Postby Jalal » Wed Feb 06, 2019 8:27 am

Do you have a good Anti-Recoil Script that works with APEX ? can you please post that
User avatar
Jalal
Sergeant Major
Sergeant Major
 
Posts: 73
Joined: Wed Apr 26, 2017 7:42 am

Re: Anti recoil xim apex + bo4 qol slide script?

Postby bonefisher » Thu Feb 07, 2019 4:11 am

Code: Select all
 
#pragma METAINFO("BO4 BLACKOUT", 1, 0, "bonefisher")
 
#include <display.gph>
#define wait(a)  wait((int)a);
#define float  fix32
float rf_active, rf_release;
uint8 bUseAntiRecoil    = 1;
uint16 ARecoilDelay     = 0;
float MinARecoilPercent = 18.0;
float StickNoise        = 6.50;
int psv;
int arv;
int   i;
int   b;
const fix32 wcfg[] =
{
/*rf_active| rf_release*/
    76.0,    0.0//blink 0
    37.5,    37.5, //blink 1
    64.0,    16.3, //blink 2
    40.5,    120.0,//blink 3
    60.0,    120.0,//blink 4
    80.0,    120.0,//blink 5
    240.0,    40.0,//blink 6
    340.0,    80.0,//blink 7
    540.0,    80.0 //blink 8
};
const fix32 warcfg[] =
{ //anti_recoil
/*vertical| horizontal*/
    16.00.0,//blink 0
    20.00.0,//blink 1
    24.00.0,//blink 2
    26.00.0,//blink 3
    28.00.0,//blink 4
    30.00.0,//blink 5
    32.00.0,//blink 6
    36.00.0,//blink 7
    40.00.0 //blink 8
};
init
{
    psv = 0;
    i = 0;
    arv = 0;
    b = 0;
}
 
main {
    // - WEAPON TRACKING - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define WEAPON_PRIMARY      0
    #define WEAPON_SECONDARY    1
    static uint8 weapon;
    if(event_active(BUTTON_5) && time_release(BUTTON_5) <= 200) {
        weapon = WEAPON_SECONDARY;
        display_overlay(_P_, 500);
    } else if(event_release(BUTTON_5)) {
        weapon = WEAPON_PRIMARY;
        display_overlay(_S_, 500);
    }
    if(is_active(BUTTON_8))
    {
        set_val(BUTTON_10, 0.0);
    if(event_active(BUTTON_10)){
        psv = psv + 1;
        i = i + 1;
    if(psv > 8) psv = 0;
    if(i > 8) i = 0;
        pmem_write(1, psv);
        pmem_write(18, i);
        pmem_save();
        Blink(i);
    }
    }
    // - RAPIDFIRE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        if(weapon) {                                              // SECONDARY
            if(event_active(BUTTON_5)) {
                rf_active = 37.5;
                rf_release = 37.5;
            } combo_run(Rapidfire);
        } else {                                                  // PRIMARY
            if(event_active(BUTTON_5)) {
                rf_active = wcfg[2*psv+0];
                rf_release = wcfg[2*psv+1];
            } combo_run(Rapidfire);
        }
    } else combo_stop(Rapidfire);
 
    // - ANTI RECOIL - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(is_active(BUTTON_8))
    {
         set_val(BUTTON_11, 0.0);
    if(event_active(BUTTON_11)){
        arv = arv + 1;
        b = b + 1;
    if(arv > 8) arv = 0;
    if(b > 8) b = 0;
        pmem_write(5, arv);
        pmem_write(22, b);
        pmem_save();
        Blinks(b);
    }
    }
    if (get_actual(BUTTON_5) && time_active(BUTTON_5) >= ARecoilDelay)
    {
        if (abs(get_actual(STICK_1_X)) < StickNoise) set_val(STICK_1_X, 0.0);
        if (abs(get_actual(STICK_1_Y)) < StickNoise) set_val(STICK_1_Y, 0.0);
        if (abs(get_actual(STICK_2_X)) < StickNoise) set_val(STICK_2_X, 0.0);
        if (abs(get_actual(STICK_2_Y)) < StickNoise) set_val(STICK_2_Y, 0.0);
 
    if (bUseAntiRecoil == 1)
    {
        if (get_actual(BUTTON_8) && get_val(BUTTON_5))
        {
            AntiRecoil(STICK_1_Y, warcfg[2*arv+0]);
            AntiRecoil(STICK_1_X, warcfg[2*arv+1]);
        }
    }
    }
    // - COMMON MODS - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        set_val(BUTTON_5, 100.0);                             // HAIR TRIGGGER
    }
    if(get_actual(BUTTON_8)) {
        if(get_actual(BUTTON_8) && time_active(BUTTON_8)>= 140) {
            set_val(BUTTON_9, 100.0);                         // HOLD BREATH
        }
        set_val(BUTTON_8, 100.0);                             // HAIR TRIGGGER
    }
    // - SPRINT MOD - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define SPRINT_OFF     0
    #define SPRINT_ON      1
    static uint8 sprint;
    if(event_active(BUTTON_16)|| event_active(BUTTON_5)||
        event_active(BUTTON_9)|| is_active(STICK_2_Y)
        && time_release(STICK_2_Y) < 250)
    {
        sprint = SPRINT_ON;
        goto SPRINT_LIGHTBAR;
    }
    else if(event_active(BUTTON_8)|| event_active(BUTTON_15)||
        event_active(BUTTON_17))
    {
        if(sprint || !sprint)
        {
            switch(sprint)
            {
                case SPRINT_OFF: sprint = SPRINT_ON;  break;
                case SPRINT_ON:  sprint = SPRINT_OFF; break;
            }
    } else sprint = SPRINT_OFF;
        SPRINT_LIGHTBAR:
        led_reset();
        switch(sprint)
        {
            case SPRINT_OFF: display_overlay(_0_, 500); break;
            case SPRINT_ON:  display_overlay(_1_, 500); break;
        }
    }
    if(sprint == SPRINT_ON && get_actual(STICK_2_Y) < -95.0){
        combo_run(easy_sprint);
    }
    if(sprint == SPRINT_OFF){
        set_val(STICK_2_X, get_val(STICK_2_X) / 1.1);
        set_val(STICK_2_Y, get_val(STICK_2_Y) / 1.1);
    }
    if(get_actual(STICK_2_Y) < -75.0 &&
       event_release(BUTTON_15) && time_active(BUTTON_15) < 160)
    {
        combo_run(BO4_Slide);
    }
}
 
combo Rapidfire
{
    set_val(BUTTON_5, 100.0);
    wait(rf_active);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
    wait(rf_release);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
}
 
combo easy_sprint
{
    set_val(BUTTON_9, 0.0);
    wait(200);
    set_val(BUTTON_9, 100.0);
    wait(80);
    set_val(BUTTON_9, 100.0);
}
 
combo BO4_Slide
{
    set_val(STICK_2_Y,-100.0);
    wait(20);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_9,100.0);
    wait(50);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_15,100.0);
    wait(200);
    set_val(STICK_2_Y,-100.0);
    wait(300);
}
 
void AntiRecoil(uint8 AxisToApply, float ARecoilToApply)
{
    float CurrentX = get_val(STICK_1_X);
    float CurrentY = get_val(STICK_1_Y);
    float MinARecoilFactor = MinARecoilPercent / 100.0;
    float MinARecoilToApply = MinARecoilFactor * ARecoilToApply;
    //This sets the ARecoil to be dependent on both X and Y axis movement. With more emphasis on Y
    float MovementARecoilToApply = (1.0 - MinARecoilFactor) * ((ARecoilToApply * (100.0 - sqrt(CurrentX*CurrentX + CurrentY*CurrentY))) / (100.0 + abs(CurrentX) + (CurrentY*CurrentY*0.5)));
    set_val(AxisToApply, MinARecoilToApply + MovementARecoilToApply + get_val(AxisToApply));
}
 
bool blinking;
void Blink(uint8 no) {
    led_reset();
    if(no) led_vmset(LED_1, 150, 500, i+1);
    blinking = 1;
}
bool blinker;
void Blinks(uint8 nos) {
    led_reset();
    if(nos) led_vmset(LED_1, 150, 500, b+1);
    blinker = 1;
}
 
 
main {
    if(blinking && !led_vmget(LED_1)) {
    led_reset();
    blinking = 0;
    }
    if(blinker && !led_vmget(LED_1)) {
    led_reset();
    blinker = 0;
    }
}
 

I have been using this that you can try!
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am

Re: Anti recoil xim apex + bo4 qol slide script?

Postby Puinsai » Thu Feb 07, 2019 6:32 am

bonefisher wrote:
Code: Select all
 
#pragma METAINFO("BO4 BLACKOUT", 1, 0, "bonefisher")
 
#include <display.gph>
#define wait(a)  wait((int)a);
#define float  fix32
float rf_active, rf_release;
uint8 bUseAntiRecoil    = 1;
uint16 ARecoilDelay     = 0;
float MinARecoilPercent = 18.0;
float StickNoise        = 6.50;
int psv;
int arv;
int   i;
int   b;
const fix32 wcfg[] =
{
/*rf_active| rf_release*/
    76.0,    0.0//blink 0
    37.5,    37.5, //blink 1
    64.0,    16.3, //blink 2
    40.5,    120.0,//blink 3
    60.0,    120.0,//blink 4
    80.0,    120.0,//blink 5
    240.0,    40.0,//blink 6
    340.0,    80.0,//blink 7
    540.0,    80.0 //blink 8
};
const fix32 warcfg[] =
{ //anti_recoil
/*vertical| horizontal*/
    16.00.0,//blink 0
    20.00.0,//blink 1
    24.00.0,//blink 2
    26.00.0,//blink 3
    28.00.0,//blink 4
    30.00.0,//blink 5
    32.00.0,//blink 6
    36.00.0,//blink 7
    40.00.0 //blink 8
};
init
{
    psv = 0;
    i = 0;
    arv = 0;
    b = 0;
}
 
main {
    // - WEAPON TRACKING - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define WEAPON_PRIMARY      0
    #define WEAPON_SECONDARY    1
    static uint8 weapon;
    if(event_active(BUTTON_5) && time_release(BUTTON_5) <= 200) {
        weapon = WEAPON_SECONDARY;
        display_overlay(_P_, 500);
    } else if(event_release(BUTTON_5)) {
        weapon = WEAPON_PRIMARY;
        display_overlay(_S_, 500);
    }
    if(is_active(BUTTON_8))
    {
        set_val(BUTTON_10, 0.0);
    if(event_active(BUTTON_10)){
        psv = psv + 1;
        i = i + 1;
    if(psv > 8) psv = 0;
    if(i > 8) i = 0;
        pmem_write(1, psv);
        pmem_write(18, i);
        pmem_save();
        Blink(i);
    }
    }
    // - RAPIDFIRE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        if(weapon) {                                              // SECONDARY
            if(event_active(BUTTON_5)) {
                rf_active = 37.5;
                rf_release = 37.5;
            } combo_run(Rapidfire);
        } else {                                                  // PRIMARY
            if(event_active(BUTTON_5)) {
                rf_active = wcfg[2*psv+0];
                rf_release = wcfg[2*psv+1];
            } combo_run(Rapidfire);
        }
    } else combo_stop(Rapidfire);
 
    // - ANTI RECOIL - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(is_active(BUTTON_8))
    {
         set_val(BUTTON_11, 0.0);
    if(event_active(BUTTON_11)){
        arv = arv + 1;
        b = b + 1;
    if(arv > 8) arv = 0;
    if(b > 8) b = 0;
        pmem_write(5, arv);
        pmem_write(22, b);
        pmem_save();
        Blinks(b);
    }
    }
    if (get_actual(BUTTON_5) && time_active(BUTTON_5) >= ARecoilDelay)
    {
        if (abs(get_actual(STICK_1_X)) < StickNoise) set_val(STICK_1_X, 0.0);
        if (abs(get_actual(STICK_1_Y)) < StickNoise) set_val(STICK_1_Y, 0.0);
        if (abs(get_actual(STICK_2_X)) < StickNoise) set_val(STICK_2_X, 0.0);
        if (abs(get_actual(STICK_2_Y)) < StickNoise) set_val(STICK_2_Y, 0.0);
 
    if (bUseAntiRecoil == 1)
    {
        if (get_actual(BUTTON_8) && get_val(BUTTON_5))
        {
            AntiRecoil(STICK_1_Y, warcfg[2*arv+0]);
            AntiRecoil(STICK_1_X, warcfg[2*arv+1]);
        }
    }
    }
    // - COMMON MODS - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        set_val(BUTTON_5, 100.0);                             // HAIR TRIGGGER
    }
    if(get_actual(BUTTON_8)) {
        if(get_actual(BUTTON_8) && time_active(BUTTON_8)>= 140) {
            set_val(BUTTON_9, 100.0);                         // HOLD BREATH
        }
        set_val(BUTTON_8, 100.0);                             // HAIR TRIGGGER
    }
    // - SPRINT MOD - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define SPRINT_OFF     0
    #define SPRINT_ON      1
    static uint8 sprint;
    if(event_active(BUTTON_16)|| event_active(BUTTON_5)||
        event_active(BUTTON_9)|| is_active(STICK_2_Y)
        && time_release(STICK_2_Y) < 250)
    {
        sprint = SPRINT_ON;
        goto SPRINT_LIGHTBAR;
    }
    else if(event_active(BUTTON_8)|| event_active(BUTTON_15)||
        event_active(BUTTON_17))
    {
        if(sprint || !sprint)
        {
            switch(sprint)
            {
                case SPRINT_OFF: sprint = SPRINT_ON;  break;
                case SPRINT_ON:  sprint = SPRINT_OFF; break;
            }
    } else sprint = SPRINT_OFF;
        SPRINT_LIGHTBAR:
        led_reset();
        switch(sprint)
        {
            case SPRINT_OFF: display_overlay(_0_, 500); break;
            case SPRINT_ON:  display_overlay(_1_, 500); break;
        }
    }
    if(sprint == SPRINT_ON && get_actual(STICK_2_Y) < -95.0){
        combo_run(easy_sprint);
    }
    if(sprint == SPRINT_OFF){
        set_val(STICK_2_X, get_val(STICK_2_X) / 1.1);
        set_val(STICK_2_Y, get_val(STICK_2_Y) / 1.1);
    }
    if(get_actual(STICK_2_Y) < -75.0 &&
       event_release(BUTTON_15) && time_active(BUTTON_15) < 160)
    {
        combo_run(BO4_Slide);
    }
}
 
combo Rapidfire
{
    set_val(BUTTON_5, 100.0);
    wait(rf_active);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
    wait(rf_release);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
}
 
combo easy_sprint
{
    set_val(BUTTON_9, 0.0);
    wait(200);
    set_val(BUTTON_9, 100.0);
    wait(80);
    set_val(BUTTON_9, 100.0);
}
 
combo BO4_Slide
{
    set_val(STICK_2_Y,-100.0);
    wait(20);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_9,100.0);
    wait(50);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_15,100.0);
    wait(200);
    set_val(STICK_2_Y,-100.0);
    wait(300);
}
 
void AntiRecoil(uint8 AxisToApply, float ARecoilToApply)
{
    float CurrentX = get_val(STICK_1_X);
    float CurrentY = get_val(STICK_1_Y);
    float MinARecoilFactor = MinARecoilPercent / 100.0;
    float MinARecoilToApply = MinARecoilFactor * ARecoilToApply;
    //This sets the ARecoil to be dependent on both X and Y axis movement. With more emphasis on Y
    float MovementARecoilToApply = (1.0 - MinARecoilFactor) * ((ARecoilToApply * (100.0 - sqrt(CurrentX*CurrentX + CurrentY*CurrentY))) / (100.0 + abs(CurrentX) + (CurrentY*CurrentY*0.5)));
    set_val(AxisToApply, MinARecoilToApply + MovementARecoilToApply + get_val(AxisToApply));
}
 
bool blinking;
void Blink(uint8 no) {
    led_reset();
    if(no) led_vmset(LED_1, 150, 500, i+1);
    blinking = 1;
}
bool blinker;
void Blinks(uint8 nos) {
    led_reset();
    if(nos) led_vmset(LED_1, 150, 500, b+1);
    blinker = 1;
}
 
 
main {
    if(blinking && !led_vmget(LED_1)) {
    led_reset();
    blinking = 0;
    }
    if(blinker && !led_vmget(LED_1)) {
    led_reset();
    blinker = 0;
    }
}
 

I have been using this that you can try!


how you use it or active, if you have any tips for use thank you
PS4 PRO | XIM APEX | T2 | FW: the latest | Mon: ASUS 28" MG28UQ | Logitech G440 | Logitech G13 | SteelSeries R600 | SteelSeries Siberia 800 | DumaOS Router
User avatar
Puinsai
Sergeant
Sergeant
 
Posts: 8
Joined: Sun Jan 20, 2019 5:51 am
Location: FRENCH POLYNESIA

Re: Anti recoil xim apex + bo4 qol slide script?

Postby bonefisher » Thu Feb 07, 2019 10:59 am

Code: Select all
 
#pragma METAINFO("BO4 BLACKOUT", 1, 0, "bonefisher")
 
/* Adjusting fire modes which are preset but can be changed in const fix32
wcfg[] which example the first one with 0 blinks is 76.0 active hold trigger
time and 0.0 rf_release trigger time. This is used for a automatic weapon
because it loops a solid press of the fire trigger.
   Cycling thru the fire modes you hold ADS trigger and click d-pad up and
the Titan will blink for what fire mode your in of 9 preset settings it will
cycle thru 0 thru 8 then back to 0 starting over again.*/

 
/* Adjusting anti-recoil which are preset but can be changed in const fix32
warcfg[] which the first one is mostly a stablizer at 16.0 vertical and 0.0
horizontal and most likely below the deadzone so may not move on most games.
   Cycling thru the anti-recoil modes you hold ADS trigger and click d-pad
down and the Titan will blink for what anti-recoil mode your in of 9 preset
settings it will cycle thru 0 thru 8 then back to 0 starting over again.*/

 
/* Switching between primary to secondary default rapid fire setting is done
by releasing fire trigger and quickly applying again fire trigger and returns
to primary configuration when release fire trigger to be ready for use again.
So many changes in this game you may not even use feature but is there in case.
The preset modes are designed to be used the way you set them up which I like
having a couple of burst firing automatics which you may have to tune for gun.*/

 
/* Easy sprint is applied in different ways so you can still have walk mode.
This can be done by double tap forward movement to start run but doesn't need
double tap every time unless you reload or ads. Also for quick sprint mode
when you fire it is applied so to avoid if need escape quick getting fire apond
also can shut sprint down with ads trigger then back on with ads trigger. */

 
/* Auto features: slide is done by quick tap on crouch button. Hold breath
is applied when ads trigger is engaged. Has hair triggers on fire and ads.*/

 
#include <display.gph>
#define wait(a)  wait((int)a);
#define float  fix32
float rf_active, rf_release;
uint8 bUseAntiRecoil    = 1;
uint16 ARecoilDelay     = 0;
float MinARecoilPercent = 18.0;
float StickNoise        = 6.50;
int psv;
int arv;
int   i;
int   b;
const fix32 wcfg[] =
{
/*rf_active| rf_release*/
    76.0,    0.0//blink 0
    37.5,    37.5, //blink 1
    64.0,    16.3, //blink 2
    40.5,    120.0,//blink 3
    60.0,    120.0,//blink 4
    80.0,    120.0,//blink 5
    240.0,    40.0,//blink 6
    340.0,    80.0,//blink 7
    540.0,    80.0 //blink 8
};
const fix32 warcfg[] =
{ //anti_recoil
/*vertical| horizontal*/
    16.00.0,//blink 0
    20.00.0,//blink 1
    24.00.0,//blink 2
    26.00.0,//blink 3
    28.00.0,//blink 4
    30.00.0,//blink 5
    32.00.0,//blink 6
    36.00.0,//blink 7
    40.00.0 //blink 8
};
init
{
    psv = 0;
    i = 0;
    arv = 0;
    b = 0;
}
 
main {
    // - WEAPON TRACKING - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define WEAPON_PRIMARY      0
    #define WEAPON_SECONDARY    1
    static uint8 weapon;
    if(event_active(BUTTON_5) && time_release(BUTTON_5) <= 200) {
        weapon = WEAPON_SECONDARY;
        display_overlay(_P_, 500);
    } else if(event_release(BUTTON_5)) {
        weapon = WEAPON_PRIMARY;
        display_overlay(_S_, 500);
    }
    if(is_active(BUTTON_8))
    {
        set_val(BUTTON_10, 0.0);
    if(event_active(BUTTON_10)){
        psv = psv + 1;
        i = i + 1;
    if(psv > 8) psv = 0;
    if(i > 8) i = 0;
        pmem_write(1, psv);
        pmem_write(18, i);
        pmem_save();
        Blink(i);
    }
    }
    // - RAPIDFIRE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        if(weapon) {                                              // SECONDARY
            if(event_active(BUTTON_5)) {
                rf_active = 37.5;
                rf_release = 37.5;
            } combo_run(Rapidfire);
        } else {                                                  // PRIMARY
            if(event_active(BUTTON_5)) {
                rf_active = wcfg[2*psv+0];
                rf_release = wcfg[2*psv+1];
            } combo_run(Rapidfire);
        }
    } else combo_stop(Rapidfire);
 
    // - ANTI RECOIL - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(is_active(BUTTON_8))
    {
         set_val(BUTTON_11, 0.0);
    if(event_active(BUTTON_11)){
        arv = arv + 1;
        b = b + 1;
    if(arv > 8) arv = 0;
    if(b > 8) b = 0;
        pmem_write(5, arv);
        pmem_write(22, b);
        pmem_save();
        Blinks(b);
    }
    }
    if (get_actual(BUTTON_5) && time_active(BUTTON_5) >= ARecoilDelay)
    {
        if (abs(get_actual(STICK_1_X)) < StickNoise) set_val(STICK_1_X, 0.0);
        if (abs(get_actual(STICK_1_Y)) < StickNoise) set_val(STICK_1_Y, 0.0);
        if (abs(get_actual(STICK_2_X)) < StickNoise) set_val(STICK_2_X, 0.0);
        if (abs(get_actual(STICK_2_Y)) < StickNoise) set_val(STICK_2_Y, 0.0);
 
    if (bUseAntiRecoil == 1)
    {
        if (get_actual(BUTTON_8) && get_val(BUTTON_5))
        {
            AntiRecoil(STICK_1_Y, warcfg[2*arv+0]);
            AntiRecoil(STICK_1_X, warcfg[2*arv+1]);
        }
    }
    }
    // - COMMON MODS - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if(get_actual(BUTTON_5)) {
        set_val(BUTTON_5, 100.0);                             // HAIR TRIGGGER
    }
    if(get_actual(BUTTON_8)) {
        if(get_actual(BUTTON_8) && time_active(BUTTON_8)>= 140) {
            set_val(BUTTON_9, 100.0);                         // HOLD BREATH
        }
        set_val(BUTTON_8, 100.0);                             // HAIR TRIGGGER
    }
    // - SPRINT MOD - - - - - - - - - - - - - - - - - - - - - - - - - - -
    #define SPRINT_OFF     0
    #define SPRINT_ON      1
    static uint8 sprint;
    if(event_active(BUTTON_16)|| event_active(BUTTON_5)||
        event_active(BUTTON_9)|| is_active(STICK_2_Y)
        && time_release(STICK_2_Y) < 250)
    {
        sprint = SPRINT_ON;
        goto SPRINT_LIGHTBAR;
    }
    else if(event_active(BUTTON_8)|| event_active(BUTTON_15)||
        event_active(BUTTON_17))
    {
        if(sprint || !sprint)
        {
            switch(sprint)
            {
                case SPRINT_OFF: sprint = SPRINT_ON;  break;
                case SPRINT_ON:  sprint = SPRINT_OFF; break;
            }
    } else sprint = SPRINT_OFF;
        SPRINT_LIGHTBAR:
        led_reset();
        switch(sprint)
        {
            case SPRINT_OFF: display_overlay(_0_, 500); break;
            case SPRINT_ON:  display_overlay(_1_, 500); break;
        }
    }
    if(sprint == SPRINT_ON && get_actual(STICK_2_Y) < -95.0){
        combo_run(easy_sprint);
    }
    if(sprint == SPRINT_OFF){
        set_val(STICK_2_X, get_val(STICK_2_X) / 1.1);
        set_val(STICK_2_Y, get_val(STICK_2_Y) / 1.1);
    }
    if(event_release(BUTTON_15) && time_active(BUTTON_15) < 160)
    {
        combo_run(BO4_Slide);
    }
}
 
combo Rapidfire
{
    set_val(BUTTON_5, 100.0);
    wait(rf_active);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
    wait(rf_release);
    set_val(BUTTON_5, rf_release ? 0.0 : 100.0);
}
 
combo easy_sprint
{
    set_val(BUTTON_9, 0.0);
    wait(60);
    set_val(BUTTON_9, 100.0);
    wait(60);
    set_val(BUTTON_9, 100.0);
}
 
combo BO4_Slide
{
    set_val(STICK_2_Y,-100.0);
    wait(20);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_9,100.0);
    wait(50);
    set_val(STICK_2_Y,-100.0);
    set_val(BUTTON_15,100.0);
    wait(200);
    set_val(STICK_2_Y,-100.0);
    wait(300);
}
 
void AntiRecoil(uint8 AxisToApply, float ARecoilToApply)
{
    float CurrentX = get_val(STICK_1_X);
    float CurrentY = get_val(STICK_1_Y);
    float MinARecoilFactor = MinARecoilPercent / 100.0;
    float MinARecoilToApply = MinARecoilFactor * ARecoilToApply;
    //This sets the ARecoil to be dependent on both X and Y axis movement. With more emphasis on Y
    float MovementARecoilToApply = (1.0 - MinARecoilFactor) * ((ARecoilToApply * (100.0 - sqrt(CurrentX*CurrentX + CurrentY*CurrentY))) / (100.0 + abs(CurrentX) + (CurrentY*CurrentY*0.5)));
    set_val(AxisToApply, MinARecoilToApply + MovementARecoilToApply + get_val(AxisToApply));
}
 
bool blinking;
void Blink(uint8 no) {
    led_reset();
    if(no) led_vmset(LED_1, 150, 500, i+1);
    blinking = 1;
}
bool blinker;
void Blinks(uint8 nos) {
    led_reset();
    if(nos) led_vmset(LED_1, 150, 500, b+1);
    blinker = 1;
}
 
 
main {
    if(blinking && !led_vmget(LED_1)) {
    led_reset();
    blinking = 0;
    }
    if(blinker && !led_vmget(LED_1)) {
    led_reset();
    blinker = 0;
    }
}
 

Info in green top of script now!
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am


Return to GPC2 Script Programming

Who is online

Users browsing this forum: MSN [Bot] and 81 guests