C++ Proper converted multipoints from enrage to lw

Забаненный
Статус
Оффлайн
Регистрация
2 Июн 2020
Сообщения
461
Реакции[?]
80
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox)
{
    std::vector <scan_point> points;
    auto model = record->player->GetModel();

    if (!model)
        return points;

    auto hdr = m_modelinfo()->GetStudioModel(model);

    if (!hdr)
        return points;

    auto set = hdr->pHitboxSet(record->player->m_nHitboxSet());

    if (!set)
        return points;

    auto bbox = set->pHitbox(hitbox);

    if (!bbox)
        return points;

    auto center = (bbox->bbmin + bbox->bbmax) * 0.5f;

    auto POINT_SCALE = 0.0f;

    if (g_cfg.ragebot.weapon[globals.g.current_weapon].static_point_scale)
    {
        if (hitbox == HITBOX_HEAD)
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].head_scale;
        else
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].body_scale;
    }
    else
    {
        auto transformed_center = center;
        math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

        auto spread = globals.g.spread + globals.g.inaccuracy;
        auto distance = transformed_center.DistTo(globals.g.eye_pos);

        distance /= math::fast_sin(DEG2RAD(90.0f - RAD2DEG(spread)));
        spread = math::fast_sin(spread);

        auto radius = max(bbox->radius - distance * spread, 0.0f);
        POINT_SCALE = math::clamp(radius / bbox->radius, 0.0f, 1.0f);
    }

    if (bbox->radius <= 0.0f)
    {
        auto rotation_matrix = math::angle_matrix(bbox->rotation);

        matrix3x4_t matrix;
        math::concat_transforms(record->matrixes_data.main[bbox->bone], rotation_matrix, matrix);

        auto origin = matrix.GetOrigin();

        if (hitbox == HITBOX_RIGHT_FOOT || hitbox == HITBOX_LEFT_FOOT)
        {
            auto side = (bbox->bbmin.z - center.z) * 0.875f;

            if (hitbox == HITBOX_LEFT_FOOT)
                side = -side;

            points.emplace_back(scan_point(Vector(center.x, center.y, center.z + side), hitbox, true));

            auto min = (bbox->bbmin.x - center.x) * 0.875f;
            auto max = (bbox->bbmax.x - center.x) * 0.875f;

            points.emplace_back(scan_point(Vector(center.x + min, center.y, center.z), hitbox, false));
            points.emplace_back(scan_point(Vector(center.x + max, center.y, center.z), hitbox, false));
        }

        // rotate our bbox points by their correct angle and convert our points to world space.
        for (auto& p : points) {
            // VectorRotate.
            // rotate point by angle stored in matrix.
            p.point = { p.point.Dot(matrix[0]), p.point.Dot(matrix[1]), p.point.Dot(matrix[2]) };

            // transform point to world space.
            p.point += origin;
        }
    }
    else
    {
        Vector min, max;
        math::vector_transform(bbox->bbmin, record->matrixes_data.main[bbox->bone], min);
        math::vector_transform(bbox->bbmax, record->matrixes_data.main[bbox->bone], max);

        Vector center = (bbox->bbmax + bbox->bbmin) * 0.5f;
        Vector centerTrans = center;
        math::vector_transform(centerTrans, record->matrixes_data.main[bbox->bone], centerTrans);

        points.emplace_back(scan_point(centerTrans, hitbox, true));

        if (hitbox == HITBOX_RIGHT_CALF || hitbox == HITBOX_LEFT_THIGH
            || hitbox == HITBOX_LEFT_CALF || hitbox == HITBOX_RIGHT_THIGH)
            return points;

        Vector aeye = globals.g.eye_pos;

        auto delta = centerTrans - aeye;
        delta.Normalized();

        auto max_min = max - min;
        max_min.Normalized();

        auto cr = max_min.Cross(delta);

        QAngle d_angle;
        math::VectorAngles(delta, d_angle);

        bool vertical = hitbox == HITBOX_HEAD;

        Vector right, up;
        if (vertical)
        {
            QAngle cr_angle;
            math::VectorAngles(cr, cr_angle);
            cr_angle.ToVectors(&right, &up);
            cr_angle.roll = d_angle.pitch;

            Vector _up = up, _right = right, _cr = cr;
            cr = _right;
            right = _cr;
        }
        else
        {
            math::VectorVectors(delta, up, right);
        }

        RayTracer::Hitbox box(min, max, bbox->radius);
        RayTracer::Trace trace;

        if (hitbox == HITBOX_HEAD)
        {
            Vector middle = (right.Normalized() + up.Normalized()) * 0.5f;
            Vector middle2 = (right.Normalized() - up.Normalized()) * 0.5f;

            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans + (middle * 1000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (middle2 * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }
        else
        {
            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans - ((vertical ? cr : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + ((vertical ? up : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }

        for (size_t i = 1; i < points.size(); ++i)
        {
            auto delta_center = points[i].point - centerTrans;
            points[i].point = centerTrans + delta_center * POINT_SCALE;
        }
    }

    return points;
}
 

Вложения

шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox)
{
    std::vector <scan_point> points;
    auto model = record->player->GetModel();

    if (!model)
        return points;

    auto hdr = m_modelinfo()->GetStudioModel(model);

    if (!hdr)
        return points;

    auto set = hdr->pHitboxSet(record->player->m_nHitboxSet());

    if (!set)
        return points;

    auto bbox = set->pHitbox(hitbox);

    if (!bbox)
        return points;

    auto center = (bbox->bbmin + bbox->bbmax) * 0.5f;

    auto POINT_SCALE = 0.0f;

    if (g_cfg.ragebot.weapon[globals.g.current_weapon].static_point_scale)
    {
        if (hitbox == HITBOX_HEAD)
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].head_scale;
        else
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].body_scale;
    }
    else
    {
        auto transformed_center = center;
        math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

        auto spread = globals.g.spread + globals.g.inaccuracy;
        auto distance = transformed_center.DistTo(globals.g.eye_pos);

        distance /= math::fast_sin(DEG2RAD(90.0f - RAD2DEG(spread)));
        spread = math::fast_sin(spread);

        auto radius = max(bbox->radius - distance * spread, 0.0f);
        POINT_SCALE = math::clamp(radius / bbox->radius, 0.0f, 1.0f);
    }

    if (bbox->radius <= 0.0f)
    {
        auto rotation_matrix = math::angle_matrix(bbox->rotation);

        matrix3x4_t matrix;
        math::concat_transforms(record->matrixes_data.main[bbox->bone], rotation_matrix, matrix);

        auto origin = matrix.GetOrigin();

        if (hitbox == HITBOX_RIGHT_FOOT || hitbox == HITBOX_LEFT_FOOT)
        {
            auto side = (bbox->bbmin.z - center.z) * 0.875f;

            if (hitbox == HITBOX_LEFT_FOOT)
                side = -side;

            points.emplace_back(scan_point(Vector(center.x, center.y, center.z + side), hitbox, true));

            auto min = (bbox->bbmin.x - center.x) * 0.875f;
            auto max = (bbox->bbmax.x - center.x) * 0.875f;

            points.emplace_back(scan_point(Vector(center.x + min, center.y, center.z), hitbox, false));
            points.emplace_back(scan_point(Vector(center.x + max, center.y, center.z), hitbox, false));
        }

        // rotate our bbox points by their correct angle and convert our points to world space.
        for (auto& p : points) {
            // VectorRotate.
            // rotate point by angle stored in matrix.
            p.point = { p.point.Dot(matrix[0]), p.point.Dot(matrix[1]), p.point.Dot(matrix[2]) };

            // transform point to world space.
            p.point += origin;
        }
    }
    else
    {
        Vector min, max;
        math::vector_transform(bbox->bbmin, record->matrixes_data.main[bbox->bone], min);
        math::vector_transform(bbox->bbmax, record->matrixes_data.main[bbox->bone], max);

        Vector center = (bbox->bbmax + bbox->bbmin) * 0.5f;
        Vector centerTrans = center;
        math::vector_transform(centerTrans, record->matrixes_data.main[bbox->bone], centerTrans);

        points.emplace_back(scan_point(centerTrans, hitbox, true));

        if (hitbox == HITBOX_RIGHT_CALF || hitbox == HITBOX_LEFT_THIGH
            || hitbox == HITBOX_LEFT_CALF || hitbox == HITBOX_RIGHT_THIGH)
            return points;

        Vector aeye = globals.g.eye_pos;

        auto delta = centerTrans - aeye;
        delta.Normalized();

        auto max_min = max - min;
        max_min.Normalized();

        auto cr = max_min.Cross(delta);

        QAngle d_angle;
        math::VectorAngles(delta, d_angle);

        bool vertical = hitbox == HITBOX_HEAD;

        Vector right, up;
        if (vertical)
        {
            QAngle cr_angle;
            math::VectorAngles(cr, cr_angle);
            cr_angle.ToVectors(&right, &up);
            cr_angle.roll = d_angle.pitch;

            Vector _up = up, _right = right, _cr = cr;
            cr = _right;
            right = _cr;
        }
        else
        {
            math::VectorVectors(delta, up, right);
        }

        RayTracer::Hitbox box(min, max, bbox->radius);
        RayTracer::Trace trace;

        if (hitbox == HITBOX_HEAD)
        {
            Vector middle = (right.Normalized() + up.Normalized()) * 0.5f;
            Vector middle2 = (right.Normalized() - up.Normalized()) * 0.5f;

            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans + (middle * 1000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (middle2 * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }
        else
        {
            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans - ((vertical ? cr : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + ((vertical ? up : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }

        for (size_t i = 1; i < points.size(); ++i)
        {
            auto delta_center = points[i].point - centerTrans;
            points[i].point = centerTrans + delta_center * POINT_SCALE;
        }
    }

    return points;
}
хватит щитпостить, деф мультипоинты лв лучше этой хуйни
 
Забаненный
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
28
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
Код:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox)
{
    std::vector <scan_point> points;
    auto model = record->player->GetModel();

    if (!model)
        return points;

    auto hdr = m_modelinfo()->GetStudioModel(model);

    if (!hdr)
        return points;

    auto set = hdr->pHitboxSet(record->player->m_nHitboxSet());

    if (!set)
        return points;

    auto bbox = set->pHitbox(hitbox);

    if (!bbox)
        return points;

    auto center = (bbox->bbmin + bbox->bbmax) * 0.5f;

    auto POINT_SCALE = 0.0f;

    if (g_cfg.ragebot.weapon[globals.g.current_weapon].static_point_scale)
    {
        if (hitbox == HITBOX_HEAD)
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].head_scale;
        else
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].body_scale;
    }
    else
    {
        auto transformed_center = center;
        math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

        auto spread = globals.g.spread + globals.g.inaccuracy;
        auto distance = transformed_center.DistTo(globals.g.eye_pos);

        distance /= math::fast_sin(DEG2RAD(90.0f - RAD2DEG(spread)));
        spread = math::fast_sin(spread);

        auto radius = max(bbox->radius - distance * spread, 0.0f);
        POINT_SCALE = math::clamp(radius / bbox->radius, 0.0f, 1.0f);
    }

    if (bbox->radius <= 0.0f)
    {
        auto rotation_matrix = math::angle_matrix(bbox->rotation);

        matrix3x4_t matrix;
        math::concat_transforms(record->matrixes_data.main[bbox->bone], rotation_matrix, matrix);

        auto origin = matrix.GetOrigin();

        if (hitbox == HITBOX_RIGHT_FOOT || hitbox == HITBOX_LEFT_FOOT)
        {
            auto side = (bbox->bbmin.z - center.z) * 0.875f;

            if (hitbox == HITBOX_LEFT_FOOT)
                side = -side;

            points.emplace_back(scan_point(Vector(center.x, center.y, center.z + side), hitbox, true));

            auto min = (bbox->bbmin.x - center.x) * 0.875f;
            auto max = (bbox->bbmax.x - center.x) * 0.875f;

            points.emplace_back(scan_point(Vector(center.x + min, center.y, center.z), hitbox, false));
            points.emplace_back(scan_point(Vector(center.x + max, center.y, center.z), hitbox, false));
        }

        // rotate our bbox points by their correct angle and convert our points to world space.
        for (auto& p : points) {
            // VectorRotate.
            // rotate point by angle stored in matrix.
            p.point = { p.point.Dot(matrix[0]), p.point.Dot(matrix[1]), p.point.Dot(matrix[2]) };

            // transform point to world space.
            p.point += origin;
        }
    }
    else
    {
        Vector min, max;
        math::vector_transform(bbox->bbmin, record->matrixes_data.main[bbox->bone], min);
        math::vector_transform(bbox->bbmax, record->matrixes_data.main[bbox->bone], max);

        Vector center = (bbox->bbmax + bbox->bbmin) * 0.5f;
        Vector centerTrans = center;
        math::vector_transform(centerTrans, record->matrixes_data.main[bbox->bone], centerTrans);

        points.emplace_back(scan_point(centerTrans, hitbox, true));

        if (hitbox == HITBOX_RIGHT_CALF || hitbox == HITBOX_LEFT_THIGH
            || hitbox == HITBOX_LEFT_CALF || hitbox == HITBOX_RIGHT_THIGH)
            return points;

        Vector aeye = globals.g.eye_pos;

        auto delta = centerTrans - aeye;
        delta.Normalized();

        auto max_min = max - min;
        max_min.Normalized();

        auto cr = max_min.Cross(delta);

        QAngle d_angle;
        math::VectorAngles(delta, d_angle);

        bool vertical = hitbox == HITBOX_HEAD;

        Vector right, up;
        if (vertical)
        {
            QAngle cr_angle;
            math::VectorAngles(cr, cr_angle);
            cr_angle.ToVectors(&right, &up);
            cr_angle.roll = d_angle.pitch;

            Vector _up = up, _right = right, _cr = cr;
            cr = _right;
            right = _cr;
        }
        else
        {
            math::VectorVectors(delta, up, right);
        }

        RayTracer::Hitbox box(min, max, bbox->radius);
        RayTracer::Trace trace;

        if (hitbox == HITBOX_HEAD)
        {
            Vector middle = (right.Normalized() + up.Normalized()) * 0.5f;
            Vector middle2 = (right.Normalized() - up.Normalized()) * 0.5f;

            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans + (middle * 1000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (middle2 * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }
        else
        {
            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans - ((vertical ? cr : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + ((vertical ? up : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }

        for (size_t i = 1; i < points.size(); ++i)
        {
            auto delta_center = points[i].point - centerTrans;
            points[i].point = centerTrans + delta_center * POINT_SCALE;
        }
    }

    return points;
}
только один вопрос, почему не легче юзать деф лв трейс рей?
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
тут оптимизация в 8 раз лучше
посмотрел этот трейс рей, нихуя, ну максимум 5 фпс разница, не понимаю почему если с юц, то пропер, лв паста всего с юц и че то нихуя лв не пропер хаск
 
Пользователь
Статус
Оффлайн
Регистрация
6 Сен 2019
Сообщения
174
Реакции[?]
37
Поинты[?]
0
Код:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox)
{
    std::vector <scan_point> points;
    auto model = record->player->GetModel();

    if (!model)
        return points;

    auto hdr = m_modelinfo()->GetStudioModel(model);

    if (!hdr)
        return points;

    auto set = hdr->pHitboxSet(record->player->m_nHitboxSet());

    if (!set)
        return points;

    auto bbox = set->pHitbox(hitbox);

    if (!bbox)
        return points;

    auto center = (bbox->bbmin + bbox->bbmax) * 0.5f;

    auto POINT_SCALE = 0.0f;

    if (g_cfg.ragebot.weapon[globals.g.current_weapon].static_point_scale)
    {
        if (hitbox == HITBOX_HEAD)
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].head_scale;
        else
            POINT_SCALE = g_cfg.ragebot.weapon[globals.g.current_weapon].body_scale;
    }
    else
    {
        auto transformed_center = center;
        math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

        auto spread = globals.g.spread + globals.g.inaccuracy;
        auto distance = transformed_center.DistTo(globals.g.eye_pos);

        distance /= math::fast_sin(DEG2RAD(90.0f - RAD2DEG(spread)));
        spread = math::fast_sin(spread);

        auto radius = max(bbox->radius - distance * spread, 0.0f);
        POINT_SCALE = math::clamp(radius / bbox->radius, 0.0f, 1.0f);
    }

    if (bbox->radius <= 0.0f)
    {
        auto rotation_matrix = math::angle_matrix(bbox->rotation);

        matrix3x4_t matrix;
        math::concat_transforms(record->matrixes_data.main[bbox->bone], rotation_matrix, matrix);

        auto origin = matrix.GetOrigin();

        if (hitbox == HITBOX_RIGHT_FOOT || hitbox == HITBOX_LEFT_FOOT)
        {
            auto side = (bbox->bbmin.z - center.z) * 0.875f;

            if (hitbox == HITBOX_LEFT_FOOT)
                side = -side;

            points.emplace_back(scan_point(Vector(center.x, center.y, center.z + side), hitbox, true));

            auto min = (bbox->bbmin.x - center.x) * 0.875f;
            auto max = (bbox->bbmax.x - center.x) * 0.875f;

            points.emplace_back(scan_point(Vector(center.x + min, center.y, center.z), hitbox, false));
            points.emplace_back(scan_point(Vector(center.x + max, center.y, center.z), hitbox, false));
        }

        // rotate our bbox points by their correct angle and convert our points to world space.
        for (auto& p : points) {
            // VectorRotate.
            // rotate point by angle stored in matrix.
            p.point = { p.point.Dot(matrix[0]), p.point.Dot(matrix[1]), p.point.Dot(matrix[2]) };

            // transform point to world space.
            p.point += origin;
        }
    }
    else
    {
        Vector min, max;
        math::vector_transform(bbox->bbmin, record->matrixes_data.main[bbox->bone], min);
        math::vector_transform(bbox->bbmax, record->matrixes_data.main[bbox->bone], max);

        Vector center = (bbox->bbmax + bbox->bbmin) * 0.5f;
        Vector centerTrans = center;
        math::vector_transform(centerTrans, record->matrixes_data.main[bbox->bone], centerTrans);

        points.emplace_back(scan_point(centerTrans, hitbox, true));

        if (hitbox == HITBOX_RIGHT_CALF || hitbox == HITBOX_LEFT_THIGH
            || hitbox == HITBOX_LEFT_CALF || hitbox == HITBOX_RIGHT_THIGH)
            return points;

        Vector aeye = globals.g.eye_pos;

        auto delta = centerTrans - aeye;
        delta.Normalized();

        auto max_min = max - min;
        max_min.Normalized();

        auto cr = max_min.Cross(delta);

        QAngle d_angle;
        math::VectorAngles(delta, d_angle);

        bool vertical = hitbox == HITBOX_HEAD;

        Vector right, up;
        if (vertical)
        {
            QAngle cr_angle;
            math::VectorAngles(cr, cr_angle);
            cr_angle.ToVectors(&right, &up);
            cr_angle.roll = d_angle.pitch;

            Vector _up = up, _right = right, _cr = cr;
            cr = _right;
            right = _cr;
        }
        else
        {
            math::VectorVectors(delta, up, right);
        }

        RayTracer::Hitbox box(min, max, bbox->radius);
        RayTracer::Trace trace;

        if (hitbox == HITBOX_HEAD)
        {
            Vector middle = (right.Normalized() + up.Normalized()) * 0.5f;
            Vector middle2 = (right.Normalized() - up.Normalized()) * 0.5f;

            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans + (middle * 1000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (middle2 * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans - (up * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }
        else
        {
            RayTracer::Ray ray = RayTracer::Ray(aeye, centerTrans - ((vertical ? cr : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));

            ray = RayTracer::Ray(aeye, centerTrans + ((vertical ? up : up) * 10000.0f));
            RayTracer::TraceFromCenter(ray, box, trace, RayTracer::Flags_RETURNEND);
            points.emplace_back(scan_point(trace.m_traceEnd, hitbox, false));
        }

        for (size_t i = 1; i < points.size(); ++i)
        {
            auto delta_center = points[i].point - centerTrans;
            points[i].point = centerTrans + delta_center * POINT_SCALE;
        }
    }

    return points;
}
пожалуйста перестань постить хуйню
 
Начинающий
Статус
Оффлайн
Регистрация
15 Фев 2022
Сообщения
299
Реакции[?]
21
Поинты[?]
0
посмотрел этот трейс рей, нихуя, ну максимум 5 фпс разница, не понимаю почему если с юц, то пропер, лв паста всего с юц и че то нихуя лв не пропер хаск
тема *noad -
Пожалуйста, авторизуйтесь для просмотра ссылки.
вот я прям разницу очень сильно вижу, потому что у меня я хз походу сломан легендвар и на арене он сканит всех в итоге 70 фпс, с этими мультами еще больше челов и от 150 фпс + чел в какой то теме писал что они капсульные + я спастил резик и с этими мультами он лучше раскрылся, короче прикольно оч
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
тема *noad -
Пожалуйста, авторизуйтесь для просмотра ссылки.
вот я прям разницу очень сильно вижу, потому что у меня я хз походу сломан легендвар и на арене он сканит всех в итоге 70 фпс, с этими мультами еще больше челов и от 150 фпс + чел в какой то теме писал что они капсульные + я спастил резик и с этими мультами он лучше раскрылся, короче прикольно оч
резольвер лучше не станет, может у тебя до этого просто были хуйня мульты и были миссы по мультам, да тут капсульные, но от капсульных я вижу только радиус, но он не как не реализуется, короче хуйня, можно сделать лучше
upd: нет есть я тупой не весь код разобрал, но рейтрейсер все равно хуйня, если такое же с деф сделать разницы 0
 
Начинающий
Статус
Оффлайн
Регистрация
15 Фев 2022
Сообщения
299
Реакции[?]
21
Поинты[?]
0
резольвер лучше не станет, может у тебя до этого просто были хуйня мульты и были миссы по мультам, да тут капсульные, но от капсульных я вижу только радиус, но он не как не реализуется, короче хуйня, можно сделать лучше
upd: нет есть я тупой не весь код разобрал, но рейтрейсер все равно хуйня, если такое же с деф сделать разницы 0
про резик я имел ввиду что лвар мог по спреду мисать а отображать по резику, пастерам как я лишь бы спастить поэтому норм и через рейтрейсер тем более разницы если нет то ваще цветочки
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
про резик я имел ввиду что лвар мог по спреду мисать а отображать по резику, пастерам как я лишь бы спастить поэтому норм и через рейтрейсер тем более разницы если нет то ваще цветочки
ладно пасть что хочешь, с такими мультами конкуренцию никсвару даже не сделать
 
Начинающий
Статус
Оффлайн
Регистрация
15 Фев 2022
Сообщения
299
Реакции[?]
21
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
28 Мар 2021
Сообщения
11
Реакции[?]
0
Поинты[?]
0
Does anyone know why this error is happening? I pasted everyhting form here, but i dont understand why this error is happening. If you guys have any idea just point me in the right direction (my c++ sucks btw so if its something dumb dont laugh, im new). Thanks in advance.
 

Вложения

Начинающий
Статус
Оффлайн
Регистрация
15 Фев 2022
Сообщения
299
Реакции[?]
21
Поинты[?]
0
Does anyone know why this error is happening? I pasted everyhting form here, but i dont understand why this error is happening. If you guys have any idea just point me in the right direction (my c++ sucks btw so if its something dumb dont laugh, im new). Thanks in advance.
paste these operation from orig enrage src
 
Сверху Снизу