Помогите с ресиком weave

Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
хелпаните с ресиком, вот, что смог высрал. Буду благодарен за фикшеный код.:roflanEbalo:

C++:
#include "../hooks/Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


std::string ResolverMode[65];
int last_ticks[65];
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 - 58.f);
}

float CResolver::GetRightYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 58.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2) {
    float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
    return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 58.f))
        >= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 58.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
    float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
    float angle = GetAngle(player);
    return fabsf(angle - Math::NormalizeYaw(yaw + 58.f))
        >= fabsf(angle - Math::NormalizeYaw(yaw - 58.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 * 384); //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 * 60, dst3D - right * 60);
    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 * 60, dst3D + right * 60);
    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], 58.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::StoreAntifreestand()
{
    if (!csgo->local->isAlive())
        return;

    if (!csgo->weapon->IsGun())
        return;


    for (int i = 1; i < interfaces.engine->GetMaxClients(); ++i)
    {
        auto player = interfaces.ent_list->GetClientEntity(i);

        if (!player || !player->isAlive() || player->IsDormant() || player->GetTeam() == csgo->local->GetTeam())
            continue;

        bool Autowalled = false, HitSide1 = false, HitSide2 = false;
        auto idx = player->GetIndex();
        float angToLocal = Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
        Vector ViewPoint = csgo->local->GetOrigin() + Vector(0, 0, 90);
        Vector2D Side1 = { (45 * sin(DEG2RAD(angToLocal))),(45 * cos(DEG2RAD(angToLocal))) };
        Vector2D Side2 = { (45 * sin(DEG2RAD(angToLocal + 180))) ,(45 * cos(DEG2RAD(angToLocal + 180))) };

        Vector2D Side3 = { (50 * sin(DEG2RAD(angToLocal))),(50 * cos(DEG2RAD(angToLocal))) };
        Vector2D Side4 = { (50 * sin(DEG2RAD(angToLocal + 180))) ,(50 * cos(DEG2RAD(angToLocal + 180))) };

        Vector Origin = player->GetOrigin();

        Vector2D OriginLeftRight[] = { Vector2D(Side1.x, Side1.y), Vector2D(Side2.x, Side2.y) };

        Vector2D OriginLeftRightLocal[] = { Vector2D(Side3.x, Side3.y), Vector2D(Side4.x, Side4.y) };

        for (int side = 0; side < 2; side++)
        {
            Vector OriginAutowall = { Origin.x + OriginLeftRight[side].x,  Origin.y - OriginLeftRight[side].y , Origin.z + 90 };
            Vector ViewPointAutowall = { ViewPoint.x + OriginLeftRightLocal[side].x,  ViewPoint.y - OriginLeftRightLocal[side].y , ViewPoint.z };

            if (g_AutoWall.CanHitFloatingPoint(OriginAutowall, ViewPoint))
            {
                if (side == 0)
                {
                    HitSide1 = true;
                    FreestandSide[idx] = -1;
                }
                else if (side == 1)
                {
                    HitSide2 = true;
                    FreestandSide[idx] = 1;
                }

                Autowalled = true;
            }
            else
            {
                for (int sidealternative = 0; sidealternative < 2; sidealternative++)
                {
                    Vector ViewPointAutowallalternative = { Origin.x + OriginLeftRight[sidealternative].x,  Origin.y - OriginLeftRight[sidealternative].y , Origin.z + 90 };

                    if (g_AutoWall.CanHitFloatingPoint(ViewPointAutowallalternative, ViewPointAutowall))
                    {
                        if (sidealternative == 0)
                        {
                            HitSide1 = true;
                            FreestandSide[idx] = -1;
                            //FreestandAngle[pPlayerEntity->EntIndex()] = 90;
                        }
                        else if (sidealternative == 1)
                        {
                            HitSide2 = true;
                            FreestandSide[idx] = 1;
                            //FreestandAngle[pPlayerEntity->EntIndex()] = -90;
                        }

                        Autowalled = true;
                    }
                }
            }
        }
    }
}


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() <= 0)
        return;

    int idx = player->GetIndex();

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

    if (!(player->GetFlags() & FL_ONGROUND))
        return;

    float angle = GetAngle(player);
    int new_side = 0;
    if (DoesHaveJitter(player, &new_side)&& player->GetEyeAngles().x < 45) {
        switch (csgo->missedshots[idx] % 2) {
        case 0:
            ResolverMode[idx] = "DA";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 60.f * new_side);
        break;
        case 1:
            ResolverMode[idx] = "DB";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 60.f * new_side);
            break;
        }
    }
    else
    {
        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 58.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 - 58.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 - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = "DA";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}
 
бос рунета
Участник
Статус
Оффлайн
Регистрация
24 Ноя 2017
Сообщения
526
Реакции[?]
151
Поинты[?]
0
хелпаните с ресиком, вот, что смог высрал. Буду благодарен за фикшеный код.:roflanEbalo:

C++:
#include "../hooks/Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


std::string ResolverMode[65];
int last_ticks[65];
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 - 58.f);
}

float CResolver::GetRightYaw(IBasePlayer* player) {
    return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 58.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2) {
    float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
    return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 58.f))
        >= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 58.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
    float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
    float angle = GetAngle(player);
    return fabsf(angle - Math::NormalizeYaw(yaw + 58.f))
        >= fabsf(angle - Math::NormalizeYaw(yaw - 58.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 * 384); //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 * 60, dst3D - right * 60);
    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 * 60, dst3D + right * 60);
    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], 58.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::StoreAntifreestand()
{
    if (!csgo->local->isAlive())
        return;

    if (!csgo->weapon->IsGun())
        return;


    for (int i = 1; i < interfaces.engine->GetMaxClients(); ++i)
    {
        auto player = interfaces.ent_list->GetClientEntity(i);

        if (!player || !player->isAlive() || player->IsDormant() || player->GetTeam() == csgo->local->GetTeam())
            continue;

        bool Autowalled = false, HitSide1 = false, HitSide2 = false;
        auto idx = player->GetIndex();
        float angToLocal = Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
        Vector ViewPoint = csgo->local->GetOrigin() + Vector(0, 0, 90);
        Vector2D Side1 = { (45 * sin(DEG2RAD(angToLocal))),(45 * cos(DEG2RAD(angToLocal))) };
        Vector2D Side2 = { (45 * sin(DEG2RAD(angToLocal + 180))) ,(45 * cos(DEG2RAD(angToLocal + 180))) };

        Vector2D Side3 = { (50 * sin(DEG2RAD(angToLocal))),(50 * cos(DEG2RAD(angToLocal))) };
        Vector2D Side4 = { (50 * sin(DEG2RAD(angToLocal + 180))) ,(50 * cos(DEG2RAD(angToLocal + 180))) };

        Vector Origin = player->GetOrigin();

        Vector2D OriginLeftRight[] = { Vector2D(Side1.x, Side1.y), Vector2D(Side2.x, Side2.y) };

        Vector2D OriginLeftRightLocal[] = { Vector2D(Side3.x, Side3.y), Vector2D(Side4.x, Side4.y) };

        for (int side = 0; side < 2; side++)
        {
            Vector OriginAutowall = { Origin.x + OriginLeftRight[side].x,  Origin.y - OriginLeftRight[side].y , Origin.z + 90 };
            Vector ViewPointAutowall = { ViewPoint.x + OriginLeftRightLocal[side].x,  ViewPoint.y - OriginLeftRightLocal[side].y , ViewPoint.z };

            if (g_AutoWall.CanHitFloatingPoint(OriginAutowall, ViewPoint))
            {
                if (side == 0)
                {
                    HitSide1 = true;
                    FreestandSide[idx] = -1;
                }
                else if (side == 1)
                {
                    HitSide2 = true;
                    FreestandSide[idx] = 1;
                }

                Autowalled = true;
            }
            else
            {
                for (int sidealternative = 0; sidealternative < 2; sidealternative++)
                {
                    Vector ViewPointAutowallalternative = { Origin.x + OriginLeftRight[sidealternative].x,  Origin.y - OriginLeftRight[sidealternative].y , Origin.z + 90 };

                    if (g_AutoWall.CanHitFloatingPoint(ViewPointAutowallalternative, ViewPointAutowall))
                    {
                        if (sidealternative == 0)
                        {
                            HitSide1 = true;
                            FreestandSide[idx] = -1;
                            //FreestandAngle[pPlayerEntity->EntIndex()] = 90;
                        }
                        else if (sidealternative == 1)
                        {
                            HitSide2 = true;
                            FreestandSide[idx] = 1;
                            //FreestandAngle[pPlayerEntity->EntIndex()] = -90;
                        }

                        Autowalled = true;
                    }
                }
            }
        }
    }
}


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() <= 0)
        return;

    int idx = player->GetIndex();

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

    if (!(player->GetFlags() & FL_ONGROUND))
        return;

    float angle = GetAngle(player);
    int new_side = 0;
    if (DoesHaveJitter(player, &new_side)&& player->GetEyeAngles().x < 45) {
        switch (csgo->missedshots[idx] % 2) {
        case 0:
            ResolverMode[idx] = "DA";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 60.f * new_side);
        break;
        case 1:
            ResolverMode[idx] = "DB";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 60.f * new_side);
            break;
        }
    }
    else
    {
        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 58.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 - 58.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 - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = "DA";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}
а в чем, собственно, смысл темы?
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,327
Реакции[?]
2,251
Поинты[?]
155K
хелпаните с ресиком, вот, что смог высрал. Буду благодарен за фикшеный код.:roflanEbalo:
Погоди, т.е. ты смог написать код ресольвера 1:1 с другим ресиком, да? Ладно...

Детект сайд и джиттер детект оставь, остальное сноси
 
бос рунета
Участник
Статус
Оффлайн
Регистрация
24 Ноя 2017
Сообщения
526
Реакции[?]
151
Поинты[?]
0
Смысл брутить 58
это просто брух момент
особенно смешно слышать это от чела, который не может починить ресольвер и шифтит 17 тиков, удивляясь почему дт уебищный
привет :LUL:
 
Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Погоди, т.е. ты смог написать код ресольвера 1:1 с другим ресиком, да? Ладно...

Детект сайд и джиттер детект оставь, остальное сноси
а какие углы предпочтительнее брутить, ведь я читал что 60 нет углов, 60 и дальше углы кемпятся сервером, или я не прав? :roflanEbalo:
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,327
Реакции[?]
2,251
Поинты[?]
155K
а какие углы предпочтительнее брутить, ведь я читал что 60 нет углов, 60 и дальше углы кемпятся сервером, или я не прав? :roflanEbalo:
Сервер клемпит до 58, поэтому смысла писать больше - нет.
 
Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Погоди, т.е. ты смог написать код ресольвера 1:1 с другим ресиком, да? Ладно...

Детект сайд и джиттер детект оставь, остальное сноси
т.е ресик примерно такой?
C++:
#include "../hooks/Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


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 * 384); //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 * 60, dst3D - right * 60);
    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 * 60, dst3D + right * 60);
    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], 58.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() <= 0)
        return;

    int idx = player->GetIndex();

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

    if (!(player->GetFlags() & FL_ONGROUND))
        return;

    float angle = GetAngle(player);
    int new_side = 0;
    if (DoesHaveJitter(player, &new_side)&& player->GetEyeAngles().x < 45) {
        switch (csgo->missedshots[idx] % 2) {
        case 0:
            ResolverMode[idx] = "DA";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 60.f * new_side);
        break;
        case 1:
            ResolverMode[idx] = "DB";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 60.f * new_side);
            break;
        }
    }
    else
    {
        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 58.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 - 58.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 - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = "DA";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,327
Реакции[?]
2,251
Поинты[?]
155K
а какие лучше в диапазоне от 0 до 58?
Когда ты стоишь - дельта выше, когда двигаешься - ниже. Точные значения сказать не могу.
т.е ресик примерно такой?
C++:
#include "../hooks/Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"


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 * 384); //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 * 60, dst3D - right * 60);
    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 * 60, dst3D + right * 60);
    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], 58.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() <= 0)
        return;

    int idx = player->GetIndex();

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

    if (!(player->GetFlags() & FL_ONGROUND))
        return;

    float angle = GetAngle(player);
    int new_side = 0;
    if (DoesHaveJitter(player, &new_side)&& player->GetEyeAngles().x < 45) {
        switch (csgo->missedshots[idx] % 2) {
        case 0:
            ResolverMode[idx] = "DA";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 60.f * new_side);
        break;
        case 1:
            ResolverMode[idx] = "DB";
            animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 60.f * new_side);
            break;
        }
    }
    else
    {
        bool forward = fabsf(Math::NormalizeYaw(GetAngle(player) - GetForwardYaw(player))) < 58.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 - 58.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 - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                }
            }
            else {
                switch (csgo->missedshots[idx] % 2) {
                case 1:
                    ResolverMode[idx] = "DA";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    break;
                case 0:
                    ResolverMode[idx] = "DB";
                    if (FreestandSide[idx] == 1)
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle - 58.f);
                    else
                        animstate->m_flGoalFeetYaw = Math::NormalizeYaw(angle + 58.f);
                    break;
                }
            }
        }
    }

    animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}
Ответил в вк.
 
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2020
Сообщения
25
Реакции[?]
4
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
БЛЯТЬ чел как ты хочешь зафиксить форварды с +58-58 ? лучше верни как всё было а брутфорс это снизу где ресольв мод тратата крч ну ты понял вон там брутфорс остальное не трогай!
 
who are you dot idk
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2019
Сообщения
390
Реакции[?]
119
Поинты[?]
0
это просто брух момент
особенно смешно слышать это от чела, который не может починить ресольвер и шифтит 17 тиков, удивляясь почему дт уебищный
привет :LUL:
Мне сказали спросить, я спросил. Я 17 не шифчу
 
Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
БЛЯТЬ чел как ты хочешь зафиксить форварды с +58-58 ? лучше верни как всё было а брутфорс это снизу где ресольв мод тратата крч ну ты понял вон там брутфорс остальное не трогай!
и какие же интересно углы он брутит?
 
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
682
Реакции[?]
531
Поинты[?]
144K
1. выбираешь папку с weave
2. тут очень важно можешь ошибиться !!! нажимаешь пкм на папку и нажимаешь удалить
вот видео на всякий случай а то вдруг не поймешь
 
Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
1. выбираешь папку с weave
2. тут очень важно можешь ошибиться !!! нажимаешь пкм на папку и нажимаешь удалить
вот видео на всякий случай а то вдруг не поймешь
вейв нормальный сурс, а вот как раз такие пастеры как ты и будут ныть что он говно, не умея с ним работать
 
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
682
Реакции[?]
531
Поинты[?]
144K
Начинающий
Статус
Оффлайн
Регистрация
24 Июл 2020
Сообщения
88
Реакции[?]
6
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2020
Сообщения
25
Реакции[?]
4
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу