Вопрос Как вам ресольвер ? (weave) что убрать что добавить

Забаненный
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
63
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Буду благодарен кто поможет

Код:
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 - 50.f);
}

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

//test
float AngleMod(float a)
{
    return (360.f / 65536) * ((int)(a * (65536.f / 360.0f)) & 65535);
}

float ApproachAngle(float target, float value, float speed)
{
    target = AngleMod(target);
    value = AngleMod(value);

    float delta = target - value;

    // Speed is assumed to be positive
    if (speed < 0)
        speed = -speed;

    if (delta < -180)
        delta += 360;
    else if (delta > 180)
        delta -= 360;

    if (delta > speed)
        value += speed;
    else if (delta < -speed)
        value -= speed;
    else
        value = target;

    return value;
}

//test2




//1


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;
    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 * 58, dst3D + right * 58);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 90, dst3D - right * 90);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_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);
}
 
...
Пользователь
Статус
Оффлайн
Регистрация
25 Май 2020
Сообщения
291
Реакции[?]
41
Поинты[?]
0
Сделать культурный поиск сайда, анимфикс нормальный сделать, доп. логику добавить (когда софт должен резольвить, когда нет, при каких обстоятельствах он должен использовать той или иной метод ресольвинга)
 
Забаненный
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
63
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделать культурный поиск сайда, анимфикс нормальный сделать, доп. логику добавить (когда софт должен резольвить, когда нет, при каких обстоятельствах он должен использовать той или иной метод ресольвинга)
Спасибо
 
ХТО Я ???
Пользователь
Статус
Оффлайн
Регистрация
24 Июн 2019
Сообщения
382
Реакции[?]
77
Поинты[?]
0
70 градус зачем резольверишь ?
резольвери 58
 
какой-то нн по легиту
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
245
Реакции[?]
109
Поинты[?]
0
cервер парсит, не важно сколько ты поставишь, хоть миллион
Причем тут парсинг от сервера? У тебя чит будет локально ресольвить 70 градусов и миссать как сука
 
Сверху Снизу