Modern Warfare Aim Assist Findings

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

Modern Warfare Aim Assist Findings

Postby USER101 » Tue Aug 11, 2020 2:43 am

Team,
Here are the statistical findings from all my aim assist test performed in Modern Warfare. If you would like me to elaborate on anything just let me know. Basically, a full orbital path in the direction of the enemy results in the best tracking. Below is an example of how you can achieve this in script and a chart explaining the concepts. Also a video of the Orbital Aim Assist in action. Hopefully you find this useful.

USER101

Code: Select all
// USERS ORBITAL AIM ASSIST
    if (aimAssist & !get_val(BUTTON_7)) if(!training){
        if (get_val(STICK_1_X) > 0.0 )aimAssistCW = TRUE;
        if (get_val(STICK_1_X) < 0.0 )aimAssistCW = FALSE;
        if(is_active(BUTTON_8) * is_release(STICK_1_X) * is_release(STICK_1_Y) * !training) {
            if (aimAssistCW){
                set_val(STICK_1_X, aimAssistRadius * sin(aimAssistAngle));
                set_val(STICK_1_Y, aimAssistRadius * cos(aimAssistAngle));
            }else{
                set_val(STICK_1_X, aimAssistRadius * cos(aimAssistAngle));
                set_val(STICK_1_Y, aimAssistRadius * sin(aimAssistAngle))
            }
            aimAssistAngle += 0.01 * (fix32)elapsed_time();
        }
    }


Image

User avatar
USER101
Sergeant Major
Sergeant Major
 
Posts: 100
Joined: Mon Dec 03, 2018 5:45 pm

Re: Modern Warfare Aim Assist Findings

Postby USER101 » Tue Aug 11, 2020 7:05 am

If you are looking at this and thinking to yourself that the ellipse would still work so long as your ellipse height was greater than the dead zone value.. Then, technically you are right it would still work, but the time it takes to go from y2.5 to x-5 in an ellipse is shorter than the time of going from y5 to x-5 in a full circle.. This means that "technically" the full orbital circle route keeps you moving in the enemies direction longer. Additionally, this chart does not account for Vertical deadzone. Each degree of movement the enemy has vertically will increase the deadzone space for an ellipse. An example of this would be that an enemy is still falling in from the sky floating directly towards or away from you. Ultimately, the full Orbital Directional Aim Assist should be the best working solution.
User avatar
USER101
Sergeant Major
Sergeant Major
 
Posts: 100
Joined: Mon Dec 03, 2018 5:45 pm

Re: Modern Warfare Aim Assist Findings

Postby J2Kbr » Mon Aug 31, 2020 10:07 pm

This is very intersting, thank you for sharing.
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: Modern Warfare Aim Assist Findings

Postby UK_Wildcats » Thu Oct 22, 2020 1:49 pm

This must have taken a lot of time to develop and test. Thank you so much for sharing. You continue to provide great contributions to the community.

Based on the code, I am assuming that you are using Button_8 for ADS. What are you using "training" to do?
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Modern Warfare Aim Assist Findings

Postby Mad » Thu Oct 22, 2020 7:43 pm

UK_Wildcats_Fans wrote:What are you using "training" to do?

This snippet is straight from user101's MW script, it has training mode for anti-recoil, you can remove this.
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord (2K / FPS)
Mad
Major General
Major General
 
Posts: 4533
Joined: Wed May 22, 2019 5:39 am

Re: Modern Warfare Aim Assist Findings

Postby UK_Wildcats » Thu Oct 22, 2020 9:47 pm

Thank you
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Modern Warfare Aim Assist Findings

Postby UK_Wildcats » Fri Oct 23, 2020 10:42 pm

If using the is_release for the sticks, this would seem to work when not using the joysticks. Am I understanding this wrong?
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Modern Warfare Aim Assist Findings

Postby Mad » Fri Oct 23, 2020 11:25 pm

UK_Wildcats_Fans wrote:If using the is_release for the sticks, this would seem to work when not using the joysticks. Am I understanding this wrong?

Yes, you would not have control over the right stick otherwise.

Example:
Code: Select all
fix32 aimAssistRadius = 30f;
fix32 aimAssistAngle;
 
bool aimAssistCW;
 
main {
// USERS ORBITAL AIM ASSIST
    if(get_val(STICK_1_X) > 0.0 )aimAssistCW = TRUE;
    if(get_val(STICK_1_X) < 0.0 )aimAssistCW = FALSE;
 
    //if(is_active(BUTTON_8) * is_release(STICK_1_X) * is_release(STICK_1_Y)) {
    if(is_active(BUTTON_8)) {
        if(aimAssistCW){
            set_val(STICK_1_X, aimAssistRadius * sin(aimAssistAngle));
            set_val(STICK_1_Y, aimAssistRadius * cos(aimAssistAngle));
        } else {
            set_val(STICK_1_X, aimAssistRadius * cos(aimAssistAngle));
            set_val(STICK_1_Y, aimAssistRadius * sin(aimAssistAngle))
        }
        aimAssistAngle += 0.01 * (fix32)elapsed_time();
    }
}
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord (2K / FPS)
Mad
Major General
Major General
 
Posts: 4533
Joined: Wed May 22, 2019 5:39 am

Re: Modern Warfare Aim Assist Findings

Postby UK_Wildcats » Sat Oct 24, 2020 2:37 pm

I played around with it to see how well it would work in BO4 as just a test. I found that it created small delays when going from not moving the stick to moving the stick. I was playing hardcore, so the smallest delays are very noticeable. At first, I thought it was lag, but then I tested in a private match. It was smaller in private matches, but still there.
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Modern Warfare Aim Assist Findings

Postby bonefisher » Mon Oct 26, 2020 11:41 am

Code: Select all
 
const fix32 fire_aimAssistRadius = 13.0;
const fix32 ads_aimAssistRadius  = 12.0;
fix32 aimAssistAngle;
 
main
{
    if(get_actual(BUTTON_8))
    {
        if(get_actual(BUTTON_5))
        {
            set_val(STICK_1_X, clamp(get_actual(STICK_1_X) + fire_aimAssistRadius * cos(aimAssistAngle),-100.0,100.0));
            set_val(STICK_1_Y, clamp(get_actual(STICK_1_Y) + fire_aimAssistRadius * sin(aimAssistAngle),-100.0,100.0));
        }
        else
        {
            set_val(STICK_1_X, clamp(get_actual(STICK_1_X) + ads_aimAssistRadius * cos(aimAssistAngle),-100.0,100.0));
            set_val(STICK_1_Y, clamp(get_actual(STICK_1_Y) + ads_aimAssistRadius * sin(aimAssistAngle),-100.0,100.0))
        }
 
        if(get_actual(STICK_1_X) > 0.0)aimAssistAngle -= 0.11 * (fix32)elapsed_time();
        if(get_actual(STICK_1_X) < 0.0)aimAssistAngle += 0.11 * (fix32)elapsed_time();
    }
}
 
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am

Next

Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 144 guests