Исходник Resolver.

Модератор форума
Участник
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Ну что то сделал, фиксит сука не плохо, прошу заметить, есть мемы, но да похуй. АХТУНГ!!! КОД ДЛЯ ПРИМЕРА, ОН НЕ СДЕЛАН ПОД КАКУЮ ТО КОНКРЕТНУЮ БАЗУ ДЛЯ РЕДИ ТУ ПЕЙСТ.

C++:
#include "../includes.h"

Resolver g_resolver{ };


int Resolver::GetChokedPackets(C_Player* entity)
{
    auto ticks = game::TIME_TO_TICKS(entity->m_flSimulationTime() - entity->m_flOldSimulationTime());
    if (ticks == 0 && last_ticks[entity->index()] > 0)
    {
        return last_ticks[entity->index()] - 1;
    }
    else
    {
        last_ticks[entity->index()] = ticks;
        return ticks;
    }
}

void Resolver::Run_Animations_resolve(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {


    if (!hyesos->alive())
        return;

    float duck_amt = hyesos->m_flDuckAmount();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float sensitivity = 100.0f;

    auto delta = math::normalize_difference(record->left_side, record->m_angEyeAngles.y);

    bool negative_delta = delta < 0.0f;

    if (negative_delta) {
        std::swap(record->m_pMatrixLeft, record->m_pMatrixRight);
        std::swap(record->left_side, record->right_side);
    }

    if (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) {

        if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
        {
            auto delta = math::normalize_difference(record->m_pEntity->m_angEyeAngles().y, record->m_pState->m_flGoalFeetYaw);

            auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

            if (result == 979) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {
                    if (record->m_pLayers[3].m_weight == 0.0f && record->m_pLayers[3].m_cycle == 0.0f)
                    {
                        data->m_extending = true;
                        animations_updated = true;
                        animations_index = (math::normalize_difference(record->m_pState->m_flEyeYaw, record->m_pState->m_flGoalFeetYaw) <= 0.0) - 1;
                        anims_pre_resolving = 0;
                        anim_time = g_csgo.m_globals->m_realtime;
                        reverse_index = animations_index * -1;
                    }
                }
            }
        }
        else if ((record->m_pLayers[12].m_weight < 0.01f || abs(record->m_pLayers[12].m_weight - record->m_pLayers[12].m_weight) < 0.01f) && record->m_pLayers[6].m_sequence == record->m_pLayers[6].m_sequence)
        {
            if (std::abs(record->m_pLayers[6].m_weight - record->m_pLayers[6].m_weight) < 0.01f)
            {
                float delta1 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[0][6].m_playback_rate);

                float delta2 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[2][6].m_playback_rate);

                float delta3 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[1][6].m_playback_rate);

                if (int(delta1 * sensitivity) < int(delta2 * sensitivity) || int(delta3 * sensitivity) <= int(delta2 * sensitivity) || int(delta2 * sensitivity))
                {
                    if (int(delta1 * sensitivity) >= int(delta3 * sensitivity) && int(delta2 * sensitivity) > int(delta3 * sensitivity) && !int(delta3 * sensitivity))
                    {
                        data->m_extending = false;
                        record->animations_updated = true;
                        animations_index = 1;
                        anims_pre_resolving = 1;
                        anim_time = g_csgo.m_globals->m_realtime;
                    }
                }
                else
                {
                    data->m_extending = false;
                    animations_updated = true;
                    animations_index = -1;
                    anims_pre_resolving = -1;
                    anim_time = g_csgo.m_globals->m_realtime;
                }
            }
        }
    }

}

std::deque<Shots> unapproved_shots;

void Resolver::Trace(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {

    if (!hyesos->alive())
        return;

    vec3_t current;
    float back_two, right_two, left_two;
    CGameTrace tr;
    Ray ray, ray2, ray3;
    CTraceFilter filter;

    vec3_t right(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y + hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t left(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y - hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t back(hyesos->m_angEyeAngles().x, 180.f, hyesos->m_angEyeAngles().z);
    current = vec3_t(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y, hyesos->m_angEyeAngles().z);

    filter.skip_entity = hyesos;
    float distance = 384.0f;

    float back_one, right_one, left_one;

    right_one = current.y - right.y;
    left_one = current.y - left.y;
    back_one = current.y - back.y;

    g_csgo.m_engine_trace->TraceRay(Ray(current, right), MASK_SHOT, &filter, &tr);
    right_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, left), MASK_SHOT, &filter, &tr);
    left_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, back), MASK_SHOT, &filter, &tr);
    back_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float duck_amt = hyesos->m_flDuckAmount();

    if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
    {
        auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

        auto half_delta = hyesos->GetMaxBodyRotation() / 2;

        if (result == 979) {
            if (hyesos->m_AnimOverlay()[3].m_cycle == 0.f && hyesos->m_AnimOverlay()[3].m_weight == 0.f) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {

                    data->m_extending = true;

                    if (fabs(right_one) >= half_delta)
                        side = 1;
                    else if (fabs(left_one) >= half_delta)
                        side = -1;
                    else if (fabs(back_one) >= half_delta)
                        side = 0;
                }
            }
        }
    }
    else
    {
        data->m_extending = false;

        if (fabs(right_two) >= distance)
            side = 1;
        else if (fabs(left_two) >= distance)
            side = -1;
        else if (fabs(back_two) >= distance)
            side = 0;
    }
    trace_idex = side;
}

static float LBYADD[64];
static int ticks = 0;

void Resolver::Count_Data(AimPlayer* data, LagComp::LagRecord_t* record, C_Player* hyesos) {

    if (!hyesos->alive())
        return;

    bool missed_to_anim = false;

    int recursive = -1;

    Trace(hyesos, data, record);

    float zero = math::NormalizeYaw(hyesos->m_angEyeAngles().y);

    auto idx = hyesos->index() - 1;

    resolver_records* resolver_info = &g_resolver.inform[idx];

    auto playerdamaged = g_aimbot.m_damage;

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    Run_Animations_resolve(hyesos, data, record);

    auto half_delta_t = math::NormalizeYaw(hyesos->GetMaxBodyRotation() / 2);

    auto min_delta = hyesos->m_angEyeAngles().y - record->m_pState->m_flGoalFeetYaw;

    if ((g_csgo.m_globals->m_realtime - anim_time <= 20.f && anims_pre_resolving >= 0) && (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) && !missed_to_anim) {

        record->m_pState->m_flGoalFeetYaw = data->m_extending == false ? half_delta_t * animations_index : math::NormalizeYaw(hyesos->GetMaxBodyRotation()) * animations_index;

    }
    else {
        if (trace_idex != 0)
            reverse_index = trace_idex;
        else
            record->m_pState->m_flGoalFeetYaw = zero;

        if ((hyesos == g_aimbot.m_target) && playerdamaged >= 1)
        {
            switch (data->m_missed_shots % 3)
            {
            case 1: LBYADD[idx] = half_delta_t;
                break;
            case 2: LBYADD[idx] = hyesos->GetMaxBodyRotation();
                break;
            case 3: LBYADD[idx] = 90.0f;
                break;
            default:
                break;
            }
        }

        record->m_pState->m_flGoalFeetYaw = reverse_index * LBYADD[idx];

        if (LBYADD[idx] != 0.f && !g_cl.m_shot)
        {
            if (ticks <= GetTickCount64())
                LBYADD[idx] = 0.f;
        }
        else
            ticks = GetTickCount64() + 900;
    }

    if (data->m_missed_shots >= 1 && animations_updated)
        missed_to_anim = true;

}

void Resolver::Angles_push(C_Player* player, LagCompensation::LagRecord_t* record) {

    AimPlayer* data = &g_aimbot.m_players[player->index() - 1];

    auto speed = player->m_vecVelocity().length_2d();

    if (!record->m_pState)
        return;

    const auto info = g_anims.GetAnimationInfo(record->m_pEntity);
    if (!info)
        return;

    if (game::IsFakePlayer(record->m_iEntIndex))
        return;

    Count_Data(data, record, player);

}
 
Модератор форума
Участник
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
стандартный детект мувов, ну просто все почти юзают такой метод, да, знаю легко ломается, можно и по другому сделать
 
Участник
Статус
Оффлайн
Регистрация
11 Апр 2019
Сообщения
1,117
Реакции[?]
306
Поинты[?]
4K
if ((hyesos == g_aimbot.m_target) && playerdamaged >= 1) { switch (data->m_missed_shots % 3) { case 1: LBYADD[idx] = half_delta_t; break; case 2: LBYADD[idx] = hyesos->GetMaxBodyRotation(); break; case 3: LBYADD[idx] = 90.0f; break; default: break; } }
только правый сайд фиксишь
ticks = GetTickCount64() + 900;
:roflanPominki: :roflanPominki: :roflanPominki:
if (fabs(right_one) >= half_delta) side = 1; else if (fabs(left_one) >= half_delta) side = -1; else if (fabs(back_one) >= half_delta) side = 0;
вообще по идее правильно, но я не до конца выкупаю че это, а еще у тебя много неиспользующихся переменных
 
Модератор форума
Участник
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Хе-хе,hyesos.Прошу заметить,это не оскорбление,а сам код.
Да просто в одно время бомбануло, решил так обозвать
только правый сайд фиксишь

:roflanPominki: :roflanPominki: :roflanPominki:

вообще по идее правильно, но я не до конца выкупаю че это, а еще у тебя много неиспользующихся переменных
Они используются, но для других фич, и я фикшу обе стороны, смотри внимательно ниже
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
7 Фев 2020
Сообщения
76
Реакции[?]
33
Поинты[?]
0
Ну что то сделал, фиксит сука не плохо, прошу заметить, есть мемы, но да похуй. АХТУНГ!!! КОД ДЛЯ ПРИМЕРА, ОН НЕ СДЕЛАН ПОД КАКУЮ ТО КОНКРЕТНУЮ БАЗУ ДЛЯ РЕДИ ТУ ПЕЙСТ.

C++:
#include "../includes.h"

Resolver g_resolver{ };


int Resolver::GetChokedPackets(C_Player* entity)
{
    auto ticks = game::TIME_TO_TICKS(entity->m_flSimulationTime() - entity->m_flOldSimulationTime());
    if (ticks == 0 && last_ticks[entity->index()] > 0)
    {
        return last_ticks[entity->index()] - 1;
    }
    else
    {
        last_ticks[entity->index()] = ticks;
        return ticks;
    }
}

void Resolver::Run_Animations_resolve(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {


    if (!hyesos->alive())
        return;

    float duck_amt = hyesos->m_flDuckAmount();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float sensitivity = 100.0f;

    auto delta = math::normalize_difference(record->left_side, record->m_angEyeAngles.y);

    bool negative_delta = delta < 0.0f;

    if (negative_delta) {
        std::swap(record->m_pMatrixLeft, record->m_pMatrixRight);
        std::swap(record->left_side, record->right_side);
    }

    if (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) {

        if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
        {
            auto delta = math::normalize_difference(record->m_pEntity->m_angEyeAngles().y, record->m_pState->m_flGoalFeetYaw);

            auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

            if (result == 979) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {
                    if (record->m_pLayers[3].m_weight == 0.0f && record->m_pLayers[3].m_cycle == 0.0f)
                    {
                        data->m_extending = true;
                        animations_updated = true;
                        animations_index = (math::normalize_difference(record->m_pState->m_flEyeYaw, record->m_pState->m_flGoalFeetYaw) <= 0.0) - 1;
                        anims_pre_resolving = 0;
                        anim_time = g_csgo.m_globals->m_realtime;
                        reverse_index = animations_index * -1;
                    }
                }
            }
        }
        else if ((record->m_pLayers[12].m_weight < 0.01f || abs(record->m_pLayers[12].m_weight - record->m_pLayers[12].m_weight) < 0.01f) && record->m_pLayers[6].m_sequence == record->m_pLayers[6].m_sequence)
        {
            if (std::abs(record->m_pLayers[6].m_weight - record->m_pLayers[6].m_weight) < 0.01f)
            {
                float delta1 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[0][6].m_playback_rate);

                float delta2 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[2][6].m_playback_rate);

                float delta3 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[1][6].m_playback_rate);

                if (int(delta1 * sensitivity) < int(delta2 * sensitivity) || int(delta3 * sensitivity) <= int(delta2 * sensitivity) || int(delta2 * sensitivity))
                {
                    if (int(delta1 * sensitivity) >= int(delta3 * sensitivity) && int(delta2 * sensitivity) > int(delta3 * sensitivity) && !int(delta3 * sensitivity))
                    {
                        data->m_extending = false;
                        record->animations_updated = true;
                        animations_index = 1;
                        anims_pre_resolving = 1;
                        anim_time = g_csgo.m_globals->m_realtime;
                    }
                }
                else
                {
                    data->m_extending = false;
                    animations_updated = true;
                    animations_index = -1;
                    anims_pre_resolving = -1;
                    anim_time = g_csgo.m_globals->m_realtime;
                }
            }
        }
    }

}

std::deque<Shots> unapproved_shots;

void Resolver::Trace(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {

    if (!hyesos->alive())
        return;

    vec3_t current;
    float back_two, right_two, left_two;
    CGameTrace tr;
    Ray ray, ray2, ray3;
    CTraceFilter filter;

    vec3_t right(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y + hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t left(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y - hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t back(hyesos->m_angEyeAngles().x, 180.f, hyesos->m_angEyeAngles().z);
    current = vec3_t(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y, hyesos->m_angEyeAngles().z);

    filter.skip_entity = hyesos;
    float distance = 384.0f;

    float back_one, right_one, left_one;

    right_one = current.y - right.y;
    left_one = current.y - left.y;
    back_one = current.y - back.y;

    g_csgo.m_engine_trace->TraceRay(Ray(current, right), MASK_SHOT, &filter, &tr);
    right_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, left), MASK_SHOT, &filter, &tr);
    left_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, back), MASK_SHOT, &filter, &tr);
    back_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float duck_amt = hyesos->m_flDuckAmount();

    if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
    {
        auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

        auto half_delta = hyesos->GetMaxBodyRotation() / 2;

        if (result == 979) {
            if (hyesos->m_AnimOverlay()[3].m_cycle == 0.f && hyesos->m_AnimOverlay()[3].m_weight == 0.f) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {

                    data->m_extending = true;

                    if (fabs(right_one) >= half_delta)
                        side = 1;
                    else if (fabs(left_one) >= half_delta)
                        side = -1;
                    else if (fabs(back_one) >= half_delta)
                        side = 0;
                }
            }
        }
    }
    else
    {
        data->m_extending = false;

        if (fabs(right_two) >= distance)
            side = 1;
        else if (fabs(left_two) >= distance)
            side = -1;
        else if (fabs(back_two) >= distance)
            side = 0;
    }
    trace_idex = side;
}

static float LBYADD[64];
static int ticks = 0;

void Resolver::Count_Data(AimPlayer* data, LagComp::LagRecord_t* record, C_Player* hyesos) {

    if (!hyesos->alive())
        return;

    bool missed_to_anim = false;

    int recursive = -1;

    Trace(hyesos, data, record);

    float zero = math::NormalizeYaw(hyesos->m_angEyeAngles().y);

    auto idx = hyesos->index() - 1;

    resolver_records* resolver_info = &g_resolver.inform[idx];

    auto playerdamaged = g_aimbot.m_damage;

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    Run_Animations_resolve(hyesos, data, record);

    auto half_delta_t = math::NormalizeYaw(hyesos->GetMaxBodyRotation() / 2);

    auto min_delta = hyesos->m_angEyeAngles().y - record->m_pState->m_flGoalFeetYaw;

    if ((g_csgo.m_globals->m_realtime - anim_time <= 20.f && anims_pre_resolving >= 0) && (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) && !missed_to_anim) {

        record->m_pState->m_flGoalFeetYaw = data->m_extending == false ? half_delta_t * animations_index : math::NormalizeYaw(hyesos->GetMaxBodyRotation()) * animations_index;

    }
    else {
        if (trace_idex != 0)
            reverse_index = trace_idex;
        else
            record->m_pState->m_flGoalFeetYaw = zero;

        if ((hyesos == g_aimbot.m_target) && playerdamaged >= 1)
        {
            switch (data->m_missed_shots % 3)
            {
            case 1: LBYADD[idx] = half_delta_t;
                break;
            case 2: LBYADD[idx] = hyesos->GetMaxBodyRotation();
                break;
            case 3: LBYADD[idx] = 90.0f;
                break;
            default:
                break;
            }
        }

        record->m_pState->m_flGoalFeetYaw = reverse_index * LBYADD[idx];

        if (LBYADD[idx] != 0.f && !g_cl.m_shot)
        {
            if (ticks <= GetTickCount64())
                LBYADD[idx] = 0.f;
        }
        else
            ticks = GetTickCount64() + 900;
    }

    if (data->m_missed_shots >= 1 && animations_updated)
        missed_to_anim = true;

}

void Resolver::Angles_push(C_Player* player, LagCompensation::LagRecord_t* record) {

    AimPlayer* data = &g_aimbot.m_players[player->index() - 1];

    auto speed = player->m_vecVelocity().length_2d();

    if (!record->m_pState)
        return;

    const auto info = g_anims.GetAnimationInfo(record->m_pEntity);
    if (!info)
        return;

    if (game::IsFakePlayer(record->m_iEntIndex))
        return;

    Count_Data(data, record, player);

}
что это за пиздец друх?
 
Модератор форума
Участник
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Пользователь
Статус
Оффлайн
Регистрация
7 Фев 2020
Сообщения
76
Реакции[?]
33
Поинты[?]
0
ну начнем с того, что реализация правильная ок ок
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка и в неё суют два члена, как думаешь ей понравится? Мне кажется , что ей не понравится.
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,970
Реакции[?]
958
Поинты[?]
19K
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.

ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.
А в чем проблема того, что он юзает два детект, сама реализация я правильная(не без костылей конечно, но всё-же), пойди пожалуйста сдк посмотри, и задумайся над суоими словами. А твои ассоциации с девкой и членами вообще тут ни к чему, у него два детекта, и в некоторых случаях так будет правильней, ибо для детекта по леерам нужен playbackrate, а если велосити маленький, то вместо сайда ты получишь хуй в рот
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Ну что то сделал, фиксит сука не плохо, прошу заметить, есть мемы, но да похуй. АХТУНГ!!! КОД ДЛЯ ПРИМЕРА, ОН НЕ СДЕЛАН ПОД КАКУЮ ТО КОНКРЕТНУЮ БАЗУ ДЛЯ РЕДИ ТУ ПЕЙСТ.

C++:
#include "../includes.h"

Resolver g_resolver{ };


int Resolver::GetChokedPackets(C_Player* entity)
{
    auto ticks = game::TIME_TO_TICKS(entity->m_flSimulationTime() - entity->m_flOldSimulationTime());
    if (ticks == 0 && last_ticks[entity->index()] > 0)
    {
        return last_ticks[entity->index()] - 1;
    }
    else
    {
        last_ticks[entity->index()] = ticks;
        return ticks;
    }
}

void Resolver::Run_Animations_resolve(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {


    if (!hyesos->alive())
        return;

    float duck_amt = hyesos->m_flDuckAmount();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float sensitivity = 100.0f;

    auto delta = math::normalize_difference(record->left_side, record->m_angEyeAngles.y);

    bool negative_delta = delta < 0.0f;

    if (negative_delta) {
        std::swap(record->m_pMatrixLeft, record->m_pMatrixRight);
        std::swap(record->left_side, record->right_side);
    }

    if (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) {

        if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
        {
            auto delta = math::normalize_difference(record->m_pEntity->m_angEyeAngles().y, record->m_pState->m_flGoalFeetYaw);

            auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

            if (result == 979) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {
                    if (record->m_pLayers[3].m_weight == 0.0f && record->m_pLayers[3].m_cycle == 0.0f)
                    {
                        data->m_extending = true;
                        animations_updated = true;
                        animations_index = (math::normalize_difference(record->m_pState->m_flEyeYaw, record->m_pState->m_flGoalFeetYaw) <= 0.0) - 1;
                        anims_pre_resolving = 0;
                        anim_time = g_csgo.m_globals->m_realtime;
                        reverse_index = animations_index * -1;
                    }
                }
            }
        }
        else if ((record->m_pLayers[12].m_weight < 0.01f || abs(record->m_pLayers[12].m_weight - record->m_pLayers[12].m_weight) < 0.01f) && record->m_pLayers[6].m_sequence == record->m_pLayers[6].m_sequence)
        {
            if (std::abs(record->m_pLayers[6].m_weight - record->m_pLayers[6].m_weight) < 0.01f)
            {
                float delta1 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[0][6].m_playback_rate);

                float delta2 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[2][6].m_playback_rate);

                float delta3 = abs(record->m_pLayers[6].m_playback_rate - record->moveLayers[1][6].m_playback_rate);

                if (int(delta1 * sensitivity) < int(delta2 * sensitivity) || int(delta3 * sensitivity) <= int(delta2 * sensitivity) || int(delta2 * sensitivity))
                {
                    if (int(delta1 * sensitivity) >= int(delta3 * sensitivity) && int(delta2 * sensitivity) > int(delta3 * sensitivity) && !int(delta3 * sensitivity))
                    {
                        data->m_extending = false;
                        record->animations_updated = true;
                        animations_index = 1;
                        anims_pre_resolving = 1;
                        anim_time = g_csgo.m_globals->m_realtime;
                    }
                }
                else
                {
                    data->m_extending = false;
                    animations_updated = true;
                    animations_index = -1;
                    anims_pre_resolving = -1;
                    anim_time = g_csgo.m_globals->m_realtime;
                }
            }
        }
    }

}

std::deque<Shots> unapproved_shots;

void Resolver::Trace(C_Player* hyesos, AimPlayer* data, LagComp::LagRecord_t* record) {

    if (!hyesos->alive())
        return;

    vec3_t current;
    float back_two, right_two, left_two;
    CGameTrace tr;
    Ray ray, ray2, ray3;
    CTraceFilter filter;

    vec3_t right(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y + hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t left(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y - hyesos->GetMaxBodyRotation(), hyesos->m_angEyeAngles().z);
    vec3_t back(hyesos->m_angEyeAngles().x, 180.f, hyesos->m_angEyeAngles().z);
    current = vec3_t(hyesos->m_angEyeAngles().x, hyesos->m_angEyeAngles().y, hyesos->m_angEyeAngles().z);

    filter.skip_entity = hyesos;
    float distance = 384.0f;

    float back_one, right_one, left_one;

    right_one = current.y - right.y;
    left_one = current.y - left.y;
    back_one = current.y - back.y;

    g_csgo.m_engine_trace->TraceRay(Ray(current, right), MASK_SHOT, &filter, &tr);
    right_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, left), MASK_SHOT, &filter, &tr);
    left_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    g_csgo.m_engine_trace->TraceRay(Ray(current, back), MASK_SHOT, &filter, &tr);
    back_two = tr.m_endpos.length_2d() - tr.m_startpos.length_2d();

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    float duck_amt = hyesos->m_flDuckAmount();

    if (speed < 0.1f && std::abs(duck_amt - duck_amt) <= 0.0f)
    {
        auto result = record->m_pEntity->GetSequenceActivity(record->m_pLayers[3].m_sequence);

        auto half_delta = hyesos->GetMaxBodyRotation() / 2;

        if (result == 979) {
            if (hyesos->m_AnimOverlay()[3].m_cycle == 0.f && hyesos->m_AnimOverlay()[3].m_weight == 0.f) {
                if (record->m_pLayers[3].m_cycle != record->m_pLayers[3].m_cycle) {

                    data->m_extending = true;

                    if (fabs(right_one) >= half_delta)
                        side = 1;
                    else if (fabs(left_one) >= half_delta)
                        side = -1;
                    else if (fabs(back_one) >= half_delta)
                        side = 0;
                }
            }
        }
    }
    else
    {
        data->m_extending = false;

        if (fabs(right_two) >= distance)
            side = 1;
        else if (fabs(left_two) >= distance)
            side = -1;
        else if (fabs(back_two) >= distance)
            side = 0;
    }
    trace_idex = side;
}

static float LBYADD[64];
static int ticks = 0;

void Resolver::Count_Data(AimPlayer* data, LagComp::LagRecord_t* record, C_Player* hyesos) {

    if (!hyesos->alive())
        return;

    bool missed_to_anim = false;

    int recursive = -1;

    Trace(hyesos, data, record);

    float zero = math::NormalizeYaw(hyesos->m_angEyeAngles().y);

    auto idx = hyesos->index() - 1;

    resolver_records* resolver_info = &g_resolver.inform[idx];

    auto playerdamaged = g_aimbot.m_damage;

    auto speed = record->m_pEntity->m_vecVelocity().length_2d();

    Run_Animations_resolve(hyesos, data, record);

    auto half_delta_t = math::NormalizeYaw(hyesos->GetMaxBodyRotation() / 2);

    auto min_delta = hyesos->m_angEyeAngles().y - record->m_pState->m_flGoalFeetYaw;

    if ((g_csgo.m_globals->m_realtime - anim_time <= 20.f && anims_pre_resolving >= 0) && (record->m_fFlags & FL_ONGROUND && hyesos->m_fFlags() & FL_ONGROUND) && !missed_to_anim) {

        record->m_pState->m_flGoalFeetYaw = data->m_extending == false ? half_delta_t * animations_index : math::NormalizeYaw(hyesos->GetMaxBodyRotation()) * animations_index;

    }
    else {
        if (trace_idex != 0)
            reverse_index = trace_idex;
        else
            record->m_pState->m_flGoalFeetYaw = zero;

        if ((hyesos == g_aimbot.m_target) && playerdamaged >= 1)
        {
            switch (data->m_missed_shots % 3)
            {
            case 1: LBYADD[idx] = half_delta_t;
                break;
            case 2: LBYADD[idx] = hyesos->GetMaxBodyRotation();
                break;
            case 3: LBYADD[idx] = 90.0f;
                break;
            default:
                break;
            }
        }

        record->m_pState->m_flGoalFeetYaw = reverse_index * LBYADD[idx];

        if (LBYADD[idx] != 0.f && !g_cl.m_shot)
        {
            if (ticks <= GetTickCount64())
                LBYADD[idx] = 0.f;
        }
        else
            ticks = GetTickCount64() + 900;
    }

    if (data->m_missed_shots >= 1 && animations_updated)
        missed_to_anim = true;

}

void Resolver::Angles_push(C_Player* player, LagCompensation::LagRecord_t* record) {

    AimPlayer* data = &g_aimbot.m_players[player->index() - 1];

    auto speed = player->m_vecVelocity().length_2d();

    if (!record->m_pState)
        return;

    const auto info = g_anims.GetAnimationInfo(record->m_pEntity);
    if (!info)
        return;

    if (game::IsFakePlayer(record->m_iEntIndex))
        return;

    Count_Data(data, record, player);

}
Чушь, бессмысленная паста с енрейджа ( паста вт ), Твоя попытка антифристенда выглядит еще хуже...
В енрейдже он и так не плохой ( quality паста со всеми любимого чита и наработки того самого ида босса ). Твои-же попытки трейса приведут к хуевой оптимизации и частому обсиранию. Про брутфорс вообще молчу... И логика работы анимлееров с антифристендами построена не так как нужно. Пример хоть какой-то их работы вместе : чит не нашел по анимлеерам ( тут уже смотря какая чувствительность и т.д ) делаем антифристенд ( сообственно если он успешно протрейсил ) . С брутфорсом думаю все еще понятнее, его логика тоже должна присутствовать как не странно что бы твой чит не обоссывался.
ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.

ты юзаешь два детекта по трейсерам и по анимкам и рофл в том, что это два паблика. Представь, что есть тёлка в неё суют два члена как думаешь ей понравится? Мне кажется , что ей не понравится.
Сморозил тоже чушь, почитай выше я рассказал пример как они должны работать вместе.
А в чем проблема того, что он юзает два детект, сама реализация я правильная(не без костылей конечно, но всё-же), пойди пожалуйста сдк посмотри, и задумайся над суоими словами. А твои ассоциации с девкой и членами вообще тут ни к чему, у него два детекта, и в некоторых случаях так будет правильней, ибо для детекта по леерам нужен playbackrate, а если велосити маленький, то вместо сайда ты получишь хуй в рот
Мда, только playbackrate ? подучи движок , а желательно готовый реверс код от лазерной акулы1.
Достаточно посмотреть старые дампы фаталити,немезис, да даже вт лул, сурсы в конце концов мутини и ты поймешь что в поиске возможного сайда по анимлеерам используется не только плейбек и не только 6...
Upd : и да, для всех ида боссов : animations_update в ресольвере по анимкам ( вантапа ), используется немного по другому...........
Upd2 : блять , я превращаюсь в Solpadoin... Мой первый конспект
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,970
Реакции[?]
958
Поинты[?]
19K
Чушь, бессмысленная паста с енрейджа ( паста вт ), Твоя попытка антифристенда выглядит еще хуже...
В енрейдже он и так не плохой ( quality паста со всеми любимого чита и наработки того самого ида босса ). Твои-же попытки трейса приведут к хуевой оптимизации и частому обсиранию. Про брутфорс вообще молчу... И логика работы анимлееров с антифристендами построена не так как нужно. Пример хоть какой-то их работы вместе : чит не нашел по анимлеерам ( тут уже смотря какая чувствительность и т.д ) делаем антифристенд ( сообственно если он успешно протрейсил ) . С брутфорсом думаю все еще понятнее, его логика тоже должна присутствовать как не странно что бы твой чит не обоссывался.

Сморозил тоже чушь, почитай выше я рассказал пример как они должны работать вместе.

Мда, только playbackrate ? подучи движок , а желательно готовый реверс код от лазерной акулы1.
Достаточно посмотреть старые дампы фаталити,немезис, да даже вт лул, сурсы в конце концов мутини и ты поймешь что в поиске возможного сайда по анимлеерам используется не только плейбек и не только 6...
Upd : и да, для всех ида боссов : animations_update в ресольвере по анимкам ( вантапа ), используется немного по другому...........
Upd2 : блять , я превращаюсь в Solpadoin... Мой первый конспект
Я писал что нужен только playbackrate? Я описал лишь то, почему его сообщение - полный бред
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Сверху Снизу