Anti Recoil - Pulling Down

Forum to discuss the scripts, configs and connection of XIM with the Titan devices.

Moderator: antithesis

Anti Recoil - Pulling Down

Postby NyzdeN » Wed Jul 01, 2020 2:40 pm

Hello, this is my first topic.
Even using T2 for a while, I still consider myself a beginner in the subject.

Using a macro, I created an anti-recoil for a given weapon in the WARFACE game, and converted that macro to a combo.
When programming my script, I realized that it would pull down really fast.
It was mentioned about DEADZONE and settings like SAB, but I don't know how to put them into practice.

Can anybody help me? :smile0517:

Code: Select all
#pragma METAINFO("warface", 1, 0, "NyzdeN")
#include <xb1.gph>
 
main {
 
    if (get_val(XB1_LT) && get_val(XB1_RT)) combo_run(Macro2Combo);
    else combo_stop(Macro2Combo);
 
}
 
combo Macro2Combo {
    set_val(BUTTON_5, 0.00);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 0.38);
    wait(10);
    set_val(BUTTON_5, 55.72);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 0.38);
    wait(10);
    set_val(BUTTON_5, 79.67);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 0.38);
    wait(10);
    set_val(BUTTON_5, 96.87);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 0.38);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 0.38);
    wait(110);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.00);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.02);
    offset(STICK_1_Y, 22.22);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.15);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.15);
    offset(STICK_1_Y, 22.22);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.05);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -7.06);
    offset(STICK_1_Y, 15.15);
    wait(20);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 2.28);
    offset(STICK_1_Y, 7.59);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 1.79);
    offset(STICK_1_Y, 4.11);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.03);
    offset(STICK_1_Y, 7.90);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.07);
    offset(STICK_1_Y, 8.03);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -5.71);
    offset(STICK_1_Y, 5.43);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -5.40);
    offset(STICK_1_Y, 3.52);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -4.20);
    offset(STICK_1_Y, 2.28);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.06);
    offset(STICK_1_Y, 1.25);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 0.61);
    wait(30);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.12);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.10);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.14);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.22);
    offset(STICK_1_Y, 7.16);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.06);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.05);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.09);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.11);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.12);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.15);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.12);
    offset(STICK_1_Y, 22.22);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.02);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.05);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.06);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.11);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.11);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -7.06);
    offset(STICK_1_Y, 15.15);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.02);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.05);
    offset(STICK_1_Y, 22.22);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.12);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.11);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.26);
    offset(STICK_1_Y, 6.75);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.07);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.24);
    offset(STICK_1_Y, 8.31);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.70);
    offset(STICK_1_Y, 4.20);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.88);
    offset(STICK_1_Y, 2.66);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 2.59);
    offset(STICK_1_Y, 8.66);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 1.10);
    offset(STICK_1_Y, 8.23);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.04);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.09);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.09);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.10);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.10);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 3.04);
    offset(STICK_1_Y, 7.62);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.07);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.54);
    offset(STICK_1_Y, 4.65);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.57);
    offset(STICK_1_Y, 2.83);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.61);
    offset(STICK_1_Y, 1.41);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.51);
    offset(STICK_1_Y, 0.48);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.09);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.25);
    offset(STICK_1_Y, 7.34);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.04);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 2.76);
    offset(STICK_1_Y, 7.72);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.13);
    offset(STICK_1_Y, 6.19);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.92);
    offset(STICK_1_Y, 4.83);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -6.21);
    offset(STICK_1_Y, 3.54);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.88);
    offset(STICK_1_Y, 2.79);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.29);
    offset(STICK_1_Y, 1.86);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.15);
    offset(STICK_1_Y, 0.82);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.22);
    offset(STICK_1_Y, -0.31);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.10);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.02);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.12);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.15);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 1.59);
    offset(STICK_1_Y, 6.11);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.83);
    offset(STICK_1_Y, 5.66);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.46);
    offset(STICK_1_Y, 4.80);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.78);
    offset(STICK_1_Y, 3.53);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.00);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 5.61);
    offset(STICK_1_Y, 6.72);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 3.91);
    offset(STICK_1_Y, 6.27);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.05);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -15.31);
    offset(STICK_1_Y, 0.12);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.07);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.60);
    offset(STICK_1_Y, 7.19);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.05);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -7.06);
    offset(STICK_1_Y, 15.15);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.14);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.73);
    offset(STICK_1_Y, 7.29);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.06);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.93);
    offset(STICK_1_Y, 5.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.10);
    offset(STICK_1_Y, 3.76);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.08);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -5.99);
    offset(STICK_1_Y, 4.26);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -5.35);
    offset(STICK_1_Y, 2.30);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -4.29);
    offset(STICK_1_Y, 1.05);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.04);
    offset(STICK_1_Y, 0.01);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.11);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.82);
    offset(STICK_1_Y, 4.33);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.61);
    offset(STICK_1_Y, 2.23);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.30);
    offset(STICK_1_Y, 2.12);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.33);
    offset(STICK_1_Y, 1.68);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 1.61);
    offset(STICK_1_Y, 0.99);
    wait(130);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.49);
    offset(STICK_1_Y, 7.45);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.03);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.40);
    offset(STICK_1_Y, 7.88);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -0.10);
    offset(STICK_1_Y, 17.42);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 3.04);
    offset(STICK_1_Y, 7.73);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, 1.28);
    offset(STICK_1_Y, 7.16);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.33);
    offset(STICK_1_Y, 6.20);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -4.54);
    offset(STICK_1_Y, 4.93);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -3.99);
    offset(STICK_1_Y, 3.38);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -2.80);
    offset(STICK_1_Y, 1.63);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.58);
    offset(STICK_1_Y, -0.11);
    wait(10);
    set_val(BUTTON_5, 100.00);
    offset(STICK_1_X, -1.21);
    offset(STICK_1_Y, -0.64);
    wait(10); //1780
    set_val(BUTTON_5, 68.23);
    offset(STICK_1_X, -1.21);
    offset(STICK_1_Y, -0.64);
    wait(10);
    set_val(BUTTON_5, 28.15);
    offset(STICK_1_X, -1.21);
    offset(STICK_1_Y, -0.64);
    wait(10);
    set_val(BUTTON_5, 5.67);
    offset(STICK_1_X, -1.21);
    offset(STICK_1_Y, -0.64);
    wait(10);
    set_val(BUTTON_5, 0.00);
    offset(STICK_1_X, -1.21);
    offset(STICK_1_Y, -0.64);
}
 
// Alow Move stick 
void offset(uint8 axis, fix32 offset_val) {
      set_val(axis, clamp(offset_val * (100f - abs(get_actual(axis))) / 100f + get_actual(axis), -100f, 100f));
    return;
}
User avatar
NyzdeN
Sergeant First Class
Sergeant First Class
 
Posts: 18
Joined: Tue Sep 10, 2019 3:33 am

Re: Anti Recoil - Pulling Down

Postby J2Kbr » Thu Jul 02, 2020 11:04 am

Hi, in your function "offset()", I didn't understood the calculation performed here:
Code: Select all
set_val(axis, clamp(offset_val * (100f - abs(get_actual(axis))) / 100f + get_actual(axis), -100f, 100f));

In any case, ABSing the axis input does not seems to be correct, I would suggest try something like this:
Code: Select all
set_val(axis, clamp(get_actual(axis) + offset_val, -100.0, 100.0));
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Anti Recoil - Pulling Down

Postby NyzdeN » Mon Jul 06, 2020 3:23 pm

I'm going to test Jeff. :wink:
About the calculation, it was not elaborated by me but by the community in one of my conversations on the discord.
User avatar
NyzdeN
Sergeant First Class
Sergeant First Class
 
Posts: 18
Joined: Tue Sep 10, 2019 3:33 am


Return to XIM Apex, XIM4, XIM Edge with Titan devices

Who is online

Users browsing this forum: No registered users and 53 guests