Page 2 of 2

Re: XIM4 Battlefield 4 Antirecoil - the best i tested so far

PostPosted: Thu Aug 11, 2016 12:55 pm
by jayjack
Works great, thanks.

Can the script be added to such that when 'Change Weapon' is pressed, the anti-recoil/auto-fire values flip between two sets of values?
Along with rumble/LED notification so you know which weapon's numbers are active.

Re: XIM4 Battlefield 4 Antirecoil - the best i tested so far

PostPosted: Sat Aug 13, 2016 11:41 am
by jayjack
This script and the other XIM one floating around don't have HIP anti-recoil only ADS.
Can this be added?

Re: XIM4 Battlefield 4 Antirecoil - the best i tested so far

PostPosted: Mon Aug 15, 2016 8:46 am
by J2Kbr
jayjack wrote:This script and the other XIM one floating around don't have HIP anti-recoil only ADS.
Can this be added?

I changed the script to activate the anti recoil when pressing the fire button only (not testing the aiming button):

Code: Select all

define RAPIDFIRE_ENABLE  = TRUE;    // TRUE or FALSE
define ANTIRECOIL_ENABLE = TRUE;    // TRUE or FALSE

// --

define SPEED = 100;
define TIME = 250;
define BUTTON = PS4_TOUCH;

define XIM4_MIN_VAL = 20;
// The force needed is different when ADS or hip firing
define ANTIRECOIL_FORCE = 5;
define RAPIDFIRE_BUTTON = PS4_R2;
define RATE_OF_FIRE = 15;   // Range: 1 to 25 RPS (Round/s)
                            // Values higher than 25 would be so fast that the
                            // game probably will not detect 100% of the events.
int tmp, rsf, device;
int hold_time, rest_time;

init {
    block_rumble();
    rsf = 10000 / (100 - XIM4_MIN_VAL);
   
    hold_time = 500 / RATE_OF_FIRE;
    rest_time = hold_time - 10;
    if(rest_time < 0) rest_time = 0;
}

main {
    if(ANTIRECOIL_ENABLE) {
        // AIM down side + aiming and shooting but not moving - enable antirecoil
        // AIM down side + aiming and shooting AND moving left or right (i mean aiming) - not walking left or right - disable the antirecoil?
      //if(get_val(PS4_L2) && get_val(PS4_R2) && isqrt(pow(get_val(PS4_RX), 2) + pow(get_val(PS4_RY), 2)) <= 30) {
      //if(get_val(PS4_R2) && (get_ptime(PS4_R2) <= 50 || get_ptime(PS4_R2) >= 100)) {
      if(get_val(PS4_R2)) {
            if(abs(PS4_RX) < 25) {
                // Rescale XIM4 aim Y axis
                if(get_val(PS4_RY) >= XIM4_MIN_VAL) {
                    set_val(PS4_RY, get_val(PS4_RY)-XIM4_MIN_VAL);
                    sensitivity(PS4_RY, NOT_USE, rsf);
                } else if(get_val(PS4_RY) <= -XIM4_MIN_VAL) {
                    set_val(PS4_RY, get_val(PS4_RY)+XIM4_MIN_VAL);
                    sensitivity(PS4_RY, NOT_USE, rsf);
                } else set_val(PS4_RY, 0);

                // Rescale XIM4 aim X axis
                if(get_val(PS4_RX) >= XIM4_MIN_VAL) {
                    set_val(PS4_RX, get_val(PS4_RX)-XIM4_MIN_VAL);
                    sensitivity(PS4_RX, NOT_USE, rsf);
                } else if(get_val(PS4_RX) <= -XIM4_MIN_VAL) {
                    set_val(PS4_RX, get_val(PS4_RX)+XIM4_MIN_VAL);
                    sensitivity(PS4_RX, NOT_USE, rsf);
                } else set_val(PS4_RX, 0);
               
                // X movements compensation
                tmp = ANTIRECOIL_FORCE - 3 * abs(get_val(PS4_RX));

                // Apply the anti-recoil
                if(tmp <= 0) tmp = 1;
                tmp = get_val(PS4_RY) + tmp;
                if(tmp > 100) tmp = 100;
                else if(tmp < -100) tmp = -100;
                set_val(PS4_RY, tmp);

                // Re-apply deadzone;
                deadzone(PS4_RX, PS4_RY, XIM4_MIN_VAL, XIM4_MIN_VAL);
            }
        }
    }
   
    // RAPIDFIRE
    if(RAPIDFIRE_ENABLE) {
        if(get_val(RAPIDFIRE_BUTTON)) {
            combo_run(RapidFire);
        } else if(combo_running(RapidFire)) {
            combo_stop(RapidFire);
        }
    }

    // HOLD BREATH
    if(get_val(PS4_L2) >= 95) {
        set_val(PS4_L3, 100);
    }

    // AUTO SPOT WHEN ADSING (SCOPING)
    if(get_val(PS4_L2)) {
        combo_run(AutoSpot);
    } else combo_stop(AutoSpot);
   
    // ROTATION 180
    if(event_press(BUTTON)) {
        combo_run(Rotation180);
    }
    block(BUTTON, 500);
   
    // EASY SPRINT
    if((get_val(PS4_LY)) < -95) {
        combo_run(EasySprint);
    }
}

combo AutoSpot {
    set_val(PS4_R1, 100);
    wait(40); wait(240);
}

combo RapidFire {
    set_val(RAPIDFIRE_BUTTON, 100);
    wait(hold_time);
    set_val(RAPIDFIRE_BUTTON, 0);
    wait(rest_time);
    set_val(RAPIDFIRE_BUTTON, 0);
}

combo Rotation180 {
    set_val(PS4_RX, SPEED);
    wait(TIME);
}
   
combo EasySprint {
    set_val(PS4_L3, 100);
    wait(40);
    set_val(PS4_L3, 0);
    wait(30);
    set_val(PS4_L3, 0);
}

Re: XIM4 Battlefield 4 Antirecoil - the best i tested so far

PostPosted: Sat Jun 22, 2019 2:49 am
by Illusions-Faded
Would this script work for the Xim Apex. Every one ive tested doesnt work. If this does work for apex. How do i activate it in game & adjust my recoil settings in game as well..

Re: XIM4 Battlefield 4 Antirecoil - the best i tested so far

PostPosted: Sat Jun 22, 2019 10:44 am
by J2Kbr
Please check the script linked below for an anti-recoil specially made for XIM/Apex.

https://www.consoletuner.com/greslib/?w679

You can download using Gtuner IV.