Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Гайд Делаем крутой ресольвер для weave.su

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это протект дурак, я сколько тебя вижу на югейме, ты ничему не научился, вместо проекта пиши "DA" и тд тока текстом.
он вроде у меня опозиты для хуо просил за фри :roflanEbalo:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ХАХАХАХАХАХА, ну у меня кста есть опозиты для веве, думаю ликать не стоит после этого)
можешь ликнуть но поставь хайд больше 24 (самое лучшее 35)
если что у меня есть опозиты ,хотя этот чел наверное не сможет спастить (увы)
 
да ? апдейтнул свой текст через 2 минуты и написал не потому что не могу пофиксить а спросил зачем это . чел говорит я просил оппоситы на ху0 так дай скрин потом говори что то -_-
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
да ? апдейтнул свой текст через 2 минуты и написал не потому что не могу пофиксить а спросил зачем это . чел говорит я просил оппоситы на ху0 так дай скрин потом говори что то -_-
Ты думаешь это кому-то нужно? Учитывая что ты не смог пофиксить легчайшее, F тебе
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Итак, сегодня мы сделаем топовый ресольвер для нашего топового чита!

Для этого нам понадобится:
1. Иметь визуалку.
2. Иметь больше 10iq

Вставляем в Resolver.cpp этот код:
C++:
Expand Collapse Copy
#include "Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


std::string ResolverMode[65];
int last_ticks[64];
int IBasePlayer::GetChokedPackets()
{
    auto ticks = TIME_TO_TICKS(GetSimulationTime() - GetOldSimulationTime());
    if (ticks == 0 && last_ticks[GetIndex()] > 0)
    {
        return last_ticks[GetIndex()] - 1;
    }
    else {
        last_ticks[GetIndex()] = ticks;
        return ticks;
    }
}

float CResolver::GetAngle(IBasePlayer* player)
{
    return Math::NormalizeYaw(player->GetEyeAngles().y);
}

float CResolver::GetForwardYaw(IBasePlayer* player)
{
    return Math::NormalizeYaw(GetBackwardYaw(player) - 180.f);
}

float CResolver::GetBackwardYaw(IBasePlayer* player) {
    return Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
}

float CResolver::GetLeftYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y - 70.f);
}

float CResolver::GetRightYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 70.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2)
{
    float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
    return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 70.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
    float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
    float angle = GetAngle(player);
    return fabsf(angle - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(angle - Math::NormalizeYaw(yaw - 70.f));
}

void CResolver::DetectSide(IBasePlayer* player, int* side)
{
    Vector src3D, dst3D, forward, right, up, src, dst;
    float back_two, right_two, left_two;
    trace_t tr;
    Ray_t ray, ray2, ray3, ray4, ray5, ray6, ray7;
    CTraceFilter filter;

    Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    filter.pSkip = player;
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 381); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.

    ray.Init(src3D, dst3D);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    ray2.Init(src3D + right * 30, dst3D + right * 30);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 70, dst3D - right * 70);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray4.Init(src3D - right * 90, dst3D - right * 90);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray5.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray6.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray7.Init(src3D + right * 90, dst3D + right * 90);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    if (left_two > right_two) {
        *side = 1;
        //Body should be right
    }
    else if (right_two > left_two) {
        *side = -1;
    }
    else
        *side = 0;
}

bool CResolver::DoesHaveJitter(IBasePlayer* player, int* new_side) {
    static float LastAngle[64];
    static int LastBrute[64];
    static bool Switch[64];
    static float LastUpdateTime[64];
 
    int i = player->GetIndex();

    float CurrentAngle = player->GetEyeAngles().y;
    if (!Math::IsNearEqual(CurrentAngle, LastAngle[i], 70.f)) {
        Switch[i] = !Switch[i];
        LastAngle[i] = CurrentAngle;
        *new_side = Switch[i] ? -1 : 1;
        LastBrute[i] = *new_side;
        LastUpdateTime[i] = interfaces.global_vars->curtime;
        return true;
    }
    else {
        if (fabsf(LastUpdateTime[i] - interfaces.global_vars->curtime >= TICKS_TO_TIME(17))
            || player->GetSimulationTime() != player->GetOldSimulationTime()) {
            LastAngle[i] = CurrentAngle;
        }
        *new_side = LastBrute[i];
    }
    return false;
}

void CResolver::Do(IBasePlayer* player)
{
    auto animstate = player->GetPlayerAnimState();
    if (!animstate)
        return;

    animstate->m_flGoalFeetYaw = GetAngle(player);

    if (!vars.ragebot.resolver)
        return;
    if (!csgo->local->isAlive())
        return;
    if (player->GetChokedPackets() <= 1)
        return;

    int idx = player->GetIndex();

    if (player->GetPlayerInfo().fakeplayer)
        return;

    if (!(player->GetFlags() & FL_ONGROUND))
        return;
    float angle = GetAngle(player);
    {
        DetectSide(player, &FreestandSide[idx]);

        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 70.f;
        if (csgo->missedshots[idx] == 0) {
            ResolverMode[idx] = hs::C.s();

            if (forward) {
                FreestandSide[idx] *= -1;
                ResolverMode[idx] += hs::B.s();
            }
            else
                ResolverMode[idx] += hs::A.s();
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f * FreestandSide[idx]);
        }
        else
        {
            if (forward)
            {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = hs::DA.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = hs::DB.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2)
                {
                case 1:
                    ResolverMode[idx] = hs::DA.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = hs::DB.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}


В следующем гайде: делаем Статик, Джиттер, боди лин, опозиты для веаве су))
Удачи в пастинге :roflanBuldiga:
а зачем 70 0_o p.s.
Не ужели так трудно зайти в реверс сетап велосити от шакрайсера и чекнуть до куда клемпит?
Пожалуйста, авторизуйтесь для просмотра ссылки.

на сервере тоже самое
1593769728787.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а зачем 70 0_o p.s.
Не ужели так трудно зайти в реверс сетап велосити от шакрайсера и чекнуть до куда клемпит?
Пожалуйста, авторизуйтесь для просмотра ссылки.

на сервере тоже самое Посмотреть вложение 85047
зачем ты что-то пытаешься объяснить глупым пастерам, которые энивей будут упиратся в свое ебаное никому не нужное мнение.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
зачем ты что-то пытаешься объяснить глупым пастерам, которые энивей будут упиратся в свое ебаное никому не нужное мнение.
хз, ну вдруг поумнеют, я же тоже тупым пастером ху0 был, за пол года как то поменялся 0_o
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пофикси хотя бы мемори лик, а потом уже говори о том что лучше или хуже
ты даже не знаешь что вообще такое десинк :LUL:
Ипать, дохуя умный нашелся, а ну-ка поведай нам, что же это??
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ипать, дохуя умный нашелся, а ну-ка поведай нам, что же это??
я сказал, так называемая рассинронизация модели клиента с сервером из за пинга или фейк лагов, происходит задержка на клиенте и мы делаем так называемый десинк, не важно сенд пакет тру или фолс так как разница будет только в деф яв o_o
 
Итак, сегодня мы сделаем топовый ресольвер для нашего топового чита!

Для этого нам понадобится:
1. Иметь визуалку.
2. Иметь больше 10iq

Вставляем в Resolver.cpp этот код:
C++:
Expand Collapse Copy
#include "Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


std::string ResolverMode[65];
int last_ticks[64];
int IBasePlayer::GetChokedPackets()
{
    auto ticks = TIME_TO_TICKS(GetSimulationTime() - GetOldSimulationTime());
    if (ticks == 0 && last_ticks[GetIndex()] > 0)
    {
        return last_ticks[GetIndex()] - 1;
    }
    else {
        last_ticks[GetIndex()] = ticks;
        return ticks;
    }
}

float CResolver::GetAngle(IBasePlayer* player)
{
    return Math::NormalizeYaw(player->GetEyeAngles().y);
}

float CResolver::GetForwardYaw(IBasePlayer* player)
{
    return Math::NormalizeYaw(GetBackwardYaw(player) - 180.f);
}

float CResolver::GetBackwardYaw(IBasePlayer* player) {
    return Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
}

float CResolver::GetLeftYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y - 70.f);
}

float CResolver::GetRightYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 70.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2)
{
    float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
    return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 70.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
    float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
    float angle = GetAngle(player);
    return fabsf(angle - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(angle - Math::NormalizeYaw(yaw - 70.f));
}

void CResolver::DetectSide(IBasePlayer* player, int* side)
{
    Vector src3D, dst3D, forward, right, up, src, dst;
    float back_two, right_two, left_two;
    trace_t tr;
    Ray_t ray, ray2, ray3, ray4, ray5, ray6, ray7;
    CTraceFilter filter;

    Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    filter.pSkip = player;
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 381); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.

    ray.Init(src3D, dst3D);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    ray2.Init(src3D + right * 30, dst3D + right * 30);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 70, dst3D - right * 70);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray4.Init(src3D - right * 90, dst3D - right * 90);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray5.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray6.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray7.Init(src3D + right * 90, dst3D + right * 90);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    if (left_two > right_two) {
        *side = 1;
        //Body should be right
    }
    else if (right_two > left_two) {
        *side = -1;
    }
    else
        *side = 0;
}

bool CResolver::DoesHaveJitter(IBasePlayer* player, int* new_side) {
    static float LastAngle[64];
    static int LastBrute[64];
    static bool Switch[64];
    static float LastUpdateTime[64];
  
    int i = player->GetIndex();

    float CurrentAngle = player->GetEyeAngles().y;
    if (!Math::IsNearEqual(CurrentAngle, LastAngle[i], 70.f)) {
        Switch[i] = !Switch[i];
        LastAngle[i] = CurrentAngle;
        *new_side = Switch[i] ? -1 : 1;
        LastBrute[i] = *new_side;
        LastUpdateTime[i] = interfaces.global_vars->curtime;
        return true;
    }
    else {
        if (fabsf(LastUpdateTime[i] - interfaces.global_vars->curtime >= TICKS_TO_TIME(17))
            || player->GetSimulationTime() != player->GetOldSimulationTime()) {
            LastAngle[i] = CurrentAngle;
        }
        *new_side = LastBrute[i];
    }
    return false;
}

void CResolver::Do(IBasePlayer* player)
{
    auto animstate = player->GetPlayerAnimState();
    if (!animstate)
        return;

    animstate->m_flGoalFeetYaw = GetAngle(player);

    if (!vars.ragebot.resolver)
        return;
    if (!csgo->local->isAlive())
        return;
    if (player->GetChokedPackets() <= 1)
        return;

    int idx = player->GetIndex();

    if (player->GetPlayerInfo().fakeplayer)
        return;

    if (!(player->GetFlags() & FL_ONGROUND))
        return;
    float angle = GetAngle(player);
    {
        DetectSide(player, &FreestandSide[idx]);

        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 70.f;
        if (csgo->missedshots[idx] == 0) {
            ResolverMode[idx] = hs::C.s();

            if (forward) {
                FreestandSide[idx] *= -1;
                ResolverMode[idx] += hs::B.s();
            }
            else
                ResolverMode[idx] += hs::A.s();
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f * FreestandSide[idx]);
        }
        else
        {
            if (forward)
            {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = hs::DA.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = hs::DB.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2)
                {
                case 1:
                    ResolverMode[idx] = hs::DA.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = hs::DB.s();
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}

Переходим в Resolver.h и вставляем этот код:
C++:
Expand Collapse Copy
#pragma once
struct animation;
class CResolver
{
private:
    float GetLeftYaw(IBasePlayer*);
    float GetRightYaw(IBasePlayer*);
    bool TargetSide(IBasePlayer*);
    void DetectSide(IBasePlayer*, int*);
    bool TargetJitter(IBasePlayer*, bool);
    bool DoesHaveJitter(IBasePlayer*, int*);
    int FreestandSide[64];
public:
    float GetAngle(IBasePlayer*);
    float GetForwardYaw(IBasePlayer*);
    float GetBackwardYaw(IBasePlayer*);
    void Do(IBasePlayer*);
    void StoreAntifreestand();
};
extern CResolver* resolver;
extern std::string ResolverMode[65];

В следующем гайде: делаем Статик, Джиттер, боди лин, опозиты для веаве су))
Удачи в пастинге :roflanBuldiga:
Бля чел благодарю
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не работает
Пожалуйста, авторизуйтесь для просмотра ссылки.
C++:
Expand Collapse Copy
#include "Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


std::string ResolverMode[65];
int last_ticks[64];
int IBasePlayer::GetChokedPackets()
{
    auto ticks = TIME_TO_TICKS(GetSimulationTime() - GetOldSimulationTime());
    if (ticks == 0 && last_ticks[GetIndex()] > 0)
    {
        return last_ticks[GetIndex()] - 1;
    }
    else {
        last_ticks[GetIndex()] = ticks;
        return ticks;
    }
}

float CResolver::GetAngle(IBasePlayer* player)
{
    return Math::NormalizeYaw(player->GetEyeAngles().y);
}

float CResolver::GetForwardYaw(IBasePlayer* player)
{
    return Math::NormalizeYaw(GetBackwardYaw(player) - 180.f);
}

float CResolver::GetBackwardYaw(IBasePlayer* player) {
    return Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
}

float CResolver::GetLeftYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y - 70.f);
}

float CResolver::GetRightYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 70.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2)
{
    float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
    return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 70.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
    float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
    float angle = GetAngle(player);
    return fabsf(angle - Math::NormalizeYaw(yaw + 70.f))
        >= fabsf(angle - Math::NormalizeYaw(yaw - 70.f));
}

void CResolver::DetectSide(IBasePlayer* player, int* side)
{
    Vector src3D, dst3D, forward, right, up, src, dst;
    float back_two, right_two, left_two;
    trace_t tr;
    Ray_t ray, ray2, ray3, ray4, ray5, ray6, ray7;
    CTraceFilter filter;

    Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    filter.pSkip = player;
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 381); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.

    ray.Init(src3D, dst3D);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    ray2.Init(src3D + right * 30, dst3D + right * 30);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 70, dst3D - right * 70);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray4.Init(src3D - right * 90, dst3D - right * 90);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray5.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray6.Init(src3D - right * 30, dst3D - right * 30);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    ray7.Init(src3D + right * 90, dst3D + right * 90);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    if (left_two > right_two) {
        *side = 1;
        //Body should be right
    }
    else if (right_two > left_two) {
        *side = -1;
    }
    else
        *side = 0;
}

bool CResolver::DoesHaveJitter(IBasePlayer* player, int* new_side) {
    static float LastAngle[64];
    static int LastBrute[64];
    static bool Switch[64];
    static float LastUpdateTime[64];

    int i = player->GetIndex();

    float CurrentAngle = player->GetEyeAngles().y;
    if (!Math::IsNearEqual(CurrentAngle, LastAngle[i], 70.f)) {
        Switch[i] = !Switch[i];
        LastAngle[i] = CurrentAngle;
        *new_side = Switch[i] ? -1 : 1;
        LastBrute[i] = *new_side;
        LastUpdateTime[i] = interfaces.global_vars->curtime;
        return true;
    }
    else {
        if (fabsf(LastUpdateTime[i] - interfaces.global_vars->curtime >= TICKS_TO_TIME(17))
            || player->GetSimulationTime() != player->GetOldSimulationTime()) {
            LastAngle[i] = CurrentAngle;
        }
        *new_side = LastBrute[i];
    }
    return false;
}

void CResolver::Do(IBasePlayer* player)
{
    auto animstate = player->GetPlayerAnimState();
    if (!animstate)
        return;

    animstate->m_flGoalFeetYaw = GetAngle(player);

    if (!vars.ragebot.resolver)
        return;
    if (!csgo->local->isAlive())
        return;
    if (player->GetChokedPackets() <= 1)
        return;

    int idx = player->GetIndex();

    if (player->GetPlayerInfo().fakeplayer)
        return;

    if (!(player->GetFlags() & FL_ONGROUND))
        return;
    float angle = GetAngle(player);
    {
        DetectSide(player, &FreestandSide[idx]);

        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 70.f;
        if (csgo->missedshots[idx] == 0) {
            ResolverMode[idx] = ("C");

            if (forward) {
                FreestandSide[idx] *= -1;
                ResolverMode[idx] += ("B");
            }
            else
                ResolverMode[idx] += ("A");
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f * FreestandSide[idx]);
        }
        else
        {
            if (forward)
            {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = ("DA");
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = ("DB");
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2)
                {
                case 1:
                    ResolverMode[idx] = ("DA");
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                case 0:
                    ResolverMode[idx] = ("DB");
                    if (FreestandSide[idx] == 1)
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 70.f));
                    else if
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle));
                    else
                        (animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 70.f));
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}
 
Назад
Сверху Снизу