• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

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

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
27 Дек 2018
Сообщения
76
Реакции
4
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
Expand Collapse Copy
#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;
}
 
Последнее редактирование:
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить резольвинг вей нужно умножить на 58(мне было лень делать). Удачи пастерам.
C++:
Expand Collapse Copy
#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:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Лучше весь резольвер переписать чем говно трогать
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
кому олд анимрес вт нужен
 
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
Expand Collapse Copy
#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
и кучу вещей тоже умерло в результате написание данного ресольвера.
 
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
+
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
Это не мой ресик. Мы его просто подогнали под лв
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
   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
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
   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:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
брутфорс по леерам, как бы эм куда
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
anglediff?
1606507130401.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Детект сайда умер в процессе написание этого брутфорса :0
и кучу вещей тоже умерло в результате написание данного ресольвера.
Умерла твоя Паста с ресиком хуже ппхуда
 
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
Expand Collapse Copy
#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;
}
что это за мем
 
  • Мне нравится
Реакции: wuby
Ресик по леерам. Брутит хуево, но чтобы заставить его побрутить resolving_way нужно умножить на 58(мне было лень делать). Удачи пастерам по типу меня.
C++:
Expand Collapse Copy
#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++:
Expand Collapse Copy
#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 тупо не хватает уже. Есть и более извращенный способ, с помощью цайклов и вейтов, но это я пока хз как делается.
 
Последнее редактирование:
C++:
Expand Collapse Copy
#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?
 
Последнее редактирование:
Назад
Сверху Снизу