Исходник Резольвер под лв

Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2018
Сообщения
76
Реакции[?]
4
Поинты[?]
2K
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed < 0.1f)
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, no_side);

        if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
        {
            resolving_way = math::clamp((2 * (delta <= 0.f) - 1), -1, 1);
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f))
    {
        if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f))
        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
28 Июн 2020
Сообщения
366
Реакции[?]
56
Поинты[?]
1K
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить резольвинг вей нужно умножить на 58(мне было лень делать). Удачи пастерам.
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed < 0.1f)
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, no_side);

        if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
        {
            resolving_way = math::clamp((2 * (delta <= 0.f) - 1), -1, 1);
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f))
    {
        if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f))
        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
пойду потещю :roflanBuldiga:
 
$$$ legendware.pw $$$
Забаненный
Статус
Оффлайн
Регистрация
7 Сен 2020
Сообщения
649
Реакции[?]
108
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Лучше весь резольвер переписать чем говно трогать
 
Нефор
Забаненный
Статус
Оффлайн
Регистрация
9 Ноя 2018
Сообщения
1,042
Реакции[?]
663
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
кому олд анимрес вт нужен
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,598
Реакции[?]
880
Поинты[?]
114K
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed < 0.1f)
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, no_side);

        if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
        {
            resolving_way = math::clamp((2 * (delta <= 0.f) - 1), -1, 1);
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f))
    {
        if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f))
        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
 
Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2018
Сообщения
76
Реакции[?]
4
Поинты[?]
2K
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
+
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
Это не мой ресик. Мы его просто подогнали под лв
 
$$$ legendware.pw $$$
Забаненный
Статус
Оффлайн
Регистрация
7 Сен 2020
Сообщения
649
Реакции[?]
108
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
13
Реакции[?]
3
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
   if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
LOL wtf dafuq it's what nice shitposting
 
$$$ legendware.pw $$$
Забаненный
Статус
Оффлайн
Регистрация
7 Сен 2020
Сообщения
649
Реакции[?]
108
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
   if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
LOL wtf dafuq it's what nice shitposting
Нихуя ты умный :roflanEbalo:
 
Забаненный
Статус
Оффлайн
Регистрация
3 Дек 2018
Сообщения
151
Реакции[?]
20
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
anglediff?
1606507130401.png
 
Девки умнее, у них больше хромосом?
Забаненный
Статус
Оффлайн
Регистрация
24 Май 2020
Сообщения
74
Реакции[?]
13
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
Умерла твоя Паста с ресиком хуже ппхуда
 
Начинающий
Статус
Оффлайн
Регистрация
29 Апр 2019
Сообщения
20
Реакции[?]
0
Поинты[?]
0
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed < 0.1f)
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, no_side);

        if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
        {
            resolving_way = math::clamp((2 * (delta <= 0.f) - 1), -1, 1);
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f))
    {
        if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f))
        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
что это за мем
 
Участник
Статус
Оффлайн
Регистрация
16 Янв 2018
Сообщения
574
Реакции[?]
183
Поинты[?]
2K
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed < 0.1f)
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, no_side);

        if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
        {
            resolving_way = math::clamp((2 * (delta <= 0.f) - 1), -1, 1);
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f))
    {
        if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f))
        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
   // float no_side = FLT_MAX; // не, ну это уже слишком нано технологии бро

    auto animstate = player->get_animation_state();
    auto speed = player->m_vecVelocity().Length2D();
    //int resolving_way; // вынеси это в resolver record. Нам нужно запоминать угол, а не каждый раз ресольвить заново.

    if (speed <= 1.1f) // щас каждый кому не лень, обходит на стендах проверки на велосити. Лучше так сделать, чем 0.1
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, animstate->flFootYaw);

        if (abs(delta) > 35)
        {
            resolving_way = delta > 0 ? -1 : 1;
        }
        else
        {
          resolving_way =
(math::normalize_yaw(ApproachAngle(
                player_record->lby,
                original_goal_feet_yaw,
                animstate->m_flUpdateTimeDelta * 100.0f)) - original_goal_feet_yaw)  > 0 ? 1 : -1;
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f)) // щас эта проверка больше мешает, чем помогает. Без нее все куда лучше.....
    {
       // if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f)) Зачем ты проверяешь одно и тоже?
        if (int(layers[6].m_flWeight * 1000.f) == int(prev_server_layers[6].m_flWeight * 1000.f)) // prev_server_layers это layers[6] из previous_record.
        {
            float delta1 = fabsf(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate); // middle
            float delta2 = fabsf(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate); // left
            float delta3 = fabsf(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate); // right

            if (delta1 < delta2 || delta3 <= delta2 || (int)(float)(delta2 * 1000.0f))
            {
                if (delta1 >= delta3 && delta2 > delta3 && !(int)(float)(delta3 * 1000.0f))
                {
                    resolving_way = 1; // Right
                }
            }
            else
            {
                resolving_way = -1; // Left
            }

           last_delta1 = delta1;
           last_delta2 = delta2;
           last_delta3 = delta3;
        }
       else
       {
           if (last_delta2 > 0 || last_delta3 > 0)
           {
            float delta2 = fabsf(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate); // left
            float delta3 = fabsf(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate); // right

             if (delta2 < last_delta2 && delta3 >= last_delta3)
             {
                    resolving_way = -1; // Left
             }
             else if (delta3 < delta2 || last_delta3 < last_delta2)
             {
                resolving_way = 1; // Right
             }
           }
       }
    }

        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 5)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f * resolving_way );
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f * resolving_way );
            break;
        case 2:   
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 45 * resolving_way );
            break;
        case 3:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 45.f * resolving_way );
            break;
        case 4:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 15.f * resolving_way );
            break;
        case 5:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 15.f * resolving_way );
            break;
        }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
Не забудь в анимациях правильно лееры сайдов сохранить.

Стенды тяжело щас фиксить, многие брикают лбу в разные стороны, тем самым отводя десинк от макс дельты, я делаю точно так же, к тому же я ломаю ещё и сенд пакет угол микроджиттерами, поэтому большинство читов первой пулей в десинк, второй пулей могут забрать боди, но голову не фиксят ( нельзя брутануть +- 60 ). Лееры мувов ломаются таким же образом, если фейклаги большие ( больше 4 ) ставишь противоположный от реала угол до последнего чоук пакета. Например, фейклаги 5. Лаг 1-4 ставишь правый угол, последним ставишь реал - левый угол. На сендпакете ставишь правый угол. Ну или тупо flip джиттеры, чаще всего все один раз миссают. Заресольвить подобную тему крайне сложно, оно тем сложнее, чем больше лаги. Проверял у себя, с лагами до 4 у меня аним ресик работает хорошо, но чем больше значение, тем хуже детектит. Стенды в идеале фиксить через апроуч, вместо goalfeet ставить eye angles. Но таким боком проблема решается только частично, рассинхрон все равно есть, ресольвед угол находится между настоящим реалом и eye angles. По анимкам остается только играться с дельтами из буфера и пытаться вывести закономерность, потому что ресольвера в2 тупо не хватает уже. Есть и более извращенный способ, с помощью цайклов и вейтов, но это я пока хз как делается.
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
16 Янв 2018
Сообщения
574
Реакции[?]
183
Поинты[?]
2K
C++:
#include "animation_system.h"
#include "..\ragebot\aim.h"

void resolver::initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch)
{
    player = e;
    player_record = record;

    original_goal_feet_yaw = math::normalize_yaw(goal_feet_yaw);
    original_pitch = math::normalize_pitch(pitch);
}

void resolver::reset()
{
    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

void resolver::resolve_yaw()
{
    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    auto speed = player->m_vecVelocity().Length2D();
    int resolving_way;

    if (speed <= 1.1f) // щас каждый кому не лень, обходит на стендах проверки на велосити. Лучше так сделать, чем 0.1
    {
        auto delta = math::AngleDiff(player->m_angEyeAngles().y, animstate->flFootYaw);

        if (abs(delta) > 35)
        {
            resolving_way = 0; // нас пытаются фейкануть sendpacket углами. Форсим мидл угол.
// Дальше нужно пофиксить другой рассинхрон, уже от ЛБУ ( то бишь довести до реала ) Я пробовал сделать это через апроуч, но оно фиксит не до конца. Так как апроуч упирается на goalfeet который мы втупую зафорсили на eye yaw, что не совсем правильно. Я еще в процессе, как решить данную проблему.
        }
    }
    else if (!int(layers[12].m_flWeight * 1000.f)) // щас эта проверка больше мешает, чем помогает. Без нее все куда лучше.....
    {
       // if (int(layers[6].m_flWeight * 1000.f) == int(layers[6].m_flWeight * 1000.f)) Зачем ты проверяешь одно и тоже?

        {
            float delta1 = abs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float delta2 = abs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            float delta3 = abs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            if (delta1 < delta3 || delta2 <= delta3 || (int)(float)(delta3 * 1000.0f))
            {
                if (delta1 >= delta2 && delta3 > delta2 && !(int)(float)(delta2 * 1000.0f))
                {
                    resolving_way = 1;
                }
            }
            else
            {
                resolving_way = -1;
            }
        }
    }

    if (g_ctx.globals.missed_shots[player->EntIndex()] > 0)
    {
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 58.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 58.f);
            break;
        }
    }
}

float resolver::resolve_pitch()
{
    return original_pitch;
}
moveLayers?
 
Последнее редактирование:
Сверху Снизу