C++ Better multipoints for Legendware pastes

ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,553
Реакции[?]
518
Поинты[?]
189K
Я делал эти мульты чтоб чит лишний раз по ним не срал.
Мульты вполне нормальные если их проверять и не выходят за рамки хитбокса.
C++:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox, bool from_aim)
{
    std::vector <scan_point> points; //-V827
    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 g_VecMax = bbox->bbmax;
    auto g_VecMin = bbox->bbmin;
    auto g_VecCenter = (bbox->bbmin + bbox->bbmax) / 2.f;

    bool g_StaticPointScale = g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].static_point_scale;

    if (bbox->radius <= .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_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH)
        {
            const auto v105 = (g_VecMax.x + g_VecMin.x) * .5f;
            const auto v106 = (g_VecMax.y + g_VecMin.y) * .5f;
            const auto v107 = g_VecMax.x - v105;
            const auto v108 = (g_VecMax.z + g_VecMin.z) * .5f;

            points.emplace_back(scan_point(Vector(.0f, v106, .0f), hitbox, false));
            points.emplace_back(scan_point(Vector(.0f, .0f, v108), hitbox, false));
            points.emplace_back(scan_point(Vector(v107 * .45f + v105, .0f, .0f), hitbox, false));
        }
    }
    else
    {
        auto g_HeadScale = .0f;
        auto g_BodyScale = .0f;

        if (g_StaticPointScale)
        {
            if (hitbox == HITBOX_HEAD)
                g_HeadScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].head_scale, .0f, .70f);
            else if (hitbox == HITBOX_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH || hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM || hitbox == HITBOX_PELVIS)
                g_BodyScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].body_scale, .0f, .65f);
        }

        if (!g_StaticPointScale)
        {
            auto transformed_center = g_VecCenter;
            math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

            auto g_Accuracy = g_ctx.globals.spread + g_ctx.globals.inaccuracy;
            auto g_Distance = transformed_center.DistTo(g_ctx.globals.eye_pos);

            g_Distance /= math::fast_sin(DEG2RAD(90.f - RAD2DEG(g_Accuracy)));
            g_Accuracy = math::fast_sin(g_Accuracy);

            auto g_HitboxRadius = max(bbox->radius - g_Distance * g_Accuracy, .0f);

            g_HeadScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .70f);
            g_BodyScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .65f);
        }

        if ((g_HeadScale || g_BodyScale) <= .0f) //-V648
        {
            math::vector_transform(g_VecCenter, record->matrixes_data.main[bbox->bone], g_VecCenter);
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            return points;
        }

        auto g_HeadRadius = bbox->radius * g_HeadScale;
        auto g_BodyRadius = bbox->radius * g_BodyScale;

        if (hitbox == HITBOX_HEAD)
        {
            auto pitch_down = math::normalize_pitch(record->angles.x) > 85.f;
            auto backward = fabs(math::normalize_yaw(record->angles.y - math::calculate_angle(record->player->get_shoot_position(), g_ctx.local()->GetAbsOrigin()).y)) > 120.f;

            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, !pitch_down || !backward));

            points.emplace_back(scan_point(Vector(bbox->bbmax.x + 0.70710678f * g_HeadRadius, bbox->bbmax.y - 0.70710678f * g_HeadRadius, bbox->bbmax.z), hitbox, false));
            
            //Points scale.
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z + g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z - g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y - g_HeadRadius, bbox->bbmax.z), hitbox, false));

            if (pitch_down && backward)
                points.emplace_back(scan_point(Vector(bbox->bbmax.x - g_HeadRadius, bbox->bbmax.y, bbox->bbmax.z), hitbox, false));
        }
        else if (hitbox == HITBOX_STOMACH)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, true));
        }
        else if (hitbox == HITBOX_PELVIS || hitbox == HITBOX_UPPER_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));
        }
        else if (hitbox == HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, false));
        }
        else if (hitbox == HITBOX_RIGHT_THIGH || hitbox == HITBOX_LEFT_THIGH)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
        else if (hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
    }

    for (auto& point : points)
        math::vector_transform(point.point, record->matrixes_data.main[bbox->bone], point.point);

    return points;
}
 
Пользователь
Статус
Оффлайн
Регистрация
25 Мар 2021
Сообщения
165
Реакции[?]
70
Поинты[?]
27K
куда вставлять?
в аим
Я делал эти мульты чтоб чит лишний раз по ним не срал.
Мульты вполне нормальные если их проверять и не выходят за рамки хитбокса.
C++:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox, bool from_aim)
{
    std::vector <scan_point> points; //-V827
    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 g_VecMax = bbox->bbmax;
    auto g_VecMin = bbox->bbmin;
    auto g_VecCenter = (bbox->bbmin + bbox->bbmax) / 2.f;

    bool g_StaticPointScale = g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].static_point_scale;

    if (bbox->radius <= .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_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH)
        {
            const auto v105 = (g_VecMax.x + g_VecMin.x) * .5f;
            const auto v106 = (g_VecMax.y + g_VecMin.y) * .5f;
            const auto v107 = g_VecMax.x - v105;
            const auto v108 = (g_VecMax.z + g_VecMin.z) * .5f;

            points.emplace_back(scan_point(Vector(.0f, v106, .0f), hitbox, false));
            points.emplace_back(scan_point(Vector(.0f, .0f, v108), hitbox, false));
            points.emplace_back(scan_point(Vector(v107 * .45f + v105, .0f, .0f), hitbox, false));
        }
    }
    else
    {
        auto g_HeadScale = .0f;
        auto g_BodyScale = .0f;

        if (g_StaticPointScale)
        {
            if (hitbox == HITBOX_HEAD)
                g_HeadScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].head_scale, .0f, .70f);
            else if (hitbox == HITBOX_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH || hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM || hitbox == HITBOX_PELVIS)
                g_BodyScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].body_scale, .0f, .65f);
        }

        if (!g_StaticPointScale)
        {
            auto transformed_center = g_VecCenter;
            math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

            auto g_Accuracy = g_ctx.globals.spread + g_ctx.globals.inaccuracy;
            auto g_Distance = transformed_center.DistTo(g_ctx.globals.eye_pos);

            g_Distance /= math::fast_sin(DEG2RAD(90.f - RAD2DEG(g_Accuracy)));
            g_Accuracy = math::fast_sin(g_Accuracy);

            auto g_HitboxRadius = max(bbox->radius - g_Distance * g_Accuracy, .0f);

            g_HeadScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .70f);
            g_BodyScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .65f);
        }

        if ((g_HeadScale || g_BodyScale) <= .0f) //-V648
        {
            math::vector_transform(g_VecCenter, record->matrixes_data.main[bbox->bone], g_VecCenter);
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            return points;
        }

        auto g_HeadRadius = bbox->radius * g_HeadScale;
        auto g_BodyRadius = bbox->radius * g_BodyScale;

        if (hitbox == HITBOX_HEAD)
        {
            auto pitch_down = math::normalize_pitch(record->angles.x) > 85.f;
            auto backward = fabs(math::normalize_yaw(record->angles.y - math::calculate_angle(record->player->get_shoot_position(), g_ctx.local()->GetAbsOrigin()).y)) > 120.f;

            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, !pitch_down || !backward));

            points.emplace_back(scan_point(Vector(bbox->bbmax.x + 0.70710678f * g_HeadRadius, bbox->bbmax.y - 0.70710678f * g_HeadRadius, bbox->bbmax.z), hitbox, false));
           
            //Points scale.
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z + g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z - g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y - g_HeadRadius, bbox->bbmax.z), hitbox, false));

            if (pitch_down && backward)
                points.emplace_back(scan_point(Vector(bbox->bbmax.x - g_HeadRadius, bbox->bbmax.y, bbox->bbmax.z), hitbox, false));
        }
        else if (hitbox == HITBOX_STOMACH)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, true));
        }
        else if (hitbox == HITBOX_PELVIS || hitbox == HITBOX_UPPER_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));
        }
        else if (hitbox == HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, false));
        }
        else if (hitbox == HITBOX_RIGHT_THIGH || hitbox == HITBOX_LEFT_THIGH)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
        else if (hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
    }

    for (auto& point : points)
        math::vector_transform(point.point, record->matrixes_data.main[bbox->bone], point.point);

    return points;
}
всё бегаю хсаю нл скит в4 ориг фаталити монолит
 
шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я делал эти мульты чтоб чит лишний раз по ним не срал.
Мульты вполне нормальные если их проверять и не выходят за рамки хитбокса.
C++:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox, bool from_aim)
{
    std::vector <scan_point> points; //-V827
    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 g_VecMax = bbox->bbmax;
    auto g_VecMin = bbox->bbmin;
    auto g_VecCenter = (bbox->bbmin + bbox->bbmax) / 2.f;

    bool g_StaticPointScale = g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].static_point_scale;

    if (bbox->radius <= .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_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH)
        {
            const auto v105 = (g_VecMax.x + g_VecMin.x) * .5f;
            const auto v106 = (g_VecMax.y + g_VecMin.y) * .5f;
            const auto v107 = g_VecMax.x - v105;
            const auto v108 = (g_VecMax.z + g_VecMin.z) * .5f;

            points.emplace_back(scan_point(Vector(.0f, v106, .0f), hitbox, false));
            points.emplace_back(scan_point(Vector(.0f, .0f, v108), hitbox, false));
            points.emplace_back(scan_point(Vector(v107 * .45f + v105, .0f, .0f), hitbox, false));
        }
    }
    else
    {
        auto g_HeadScale = .0f;
        auto g_BodyScale = .0f;

        if (g_StaticPointScale)
        {
            if (hitbox == HITBOX_HEAD)
                g_HeadScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].head_scale, .0f, .70f);
            else if (hitbox == HITBOX_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH || hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM || hitbox == HITBOX_PELVIS)
                g_BodyScale = math::clamp(g_cfg.ragebot.weapon[g_ctx.globals.current_weapon].body_scale, .0f, .65f);
        }

        if (!g_StaticPointScale)
        {
            auto transformed_center = g_VecCenter;
            math::vector_transform(transformed_center, record->matrixes_data.main[bbox->bone], transformed_center);

            auto g_Accuracy = g_ctx.globals.spread + g_ctx.globals.inaccuracy;
            auto g_Distance = transformed_center.DistTo(g_ctx.globals.eye_pos);

            g_Distance /= math::fast_sin(DEG2RAD(90.f - RAD2DEG(g_Accuracy)));
            g_Accuracy = math::fast_sin(g_Accuracy);

            auto g_HitboxRadius = max(bbox->radius - g_Distance * g_Accuracy, .0f);

            g_HeadScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .70f);
            g_BodyScale = math::clamp(g_HitboxRadius / bbox->radius, .0f, .65f);
        }

        if ((g_HeadScale || g_BodyScale) <= .0f) //-V648
        {
            math::vector_transform(g_VecCenter, record->matrixes_data.main[bbox->bone], g_VecCenter);
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            return points;
        }

        auto g_HeadRadius = bbox->radius * g_HeadScale;
        auto g_BodyRadius = bbox->radius * g_BodyScale;

        if (hitbox == HITBOX_HEAD)
        {
            auto pitch_down = math::normalize_pitch(record->angles.x) > 85.f;
            auto backward = fabs(math::normalize_yaw(record->angles.y - math::calculate_angle(record->player->get_shoot_position(), g_ctx.local()->GetAbsOrigin()).y)) > 120.f;

            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, !pitch_down || !backward));

            points.emplace_back(scan_point(Vector(bbox->bbmax.x + 0.70710678f * g_HeadRadius, bbox->bbmax.y - 0.70710678f * g_HeadRadius, bbox->bbmax.z), hitbox, false));
       
            //Points scale.
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z + g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y, bbox->bbmax.z - g_HeadRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(bbox->bbmax.x, bbox->bbmax.y - g_HeadRadius, bbox->bbmax.z), hitbox, false));

            if (pitch_down && backward)
                points.emplace_back(scan_point(Vector(bbox->bbmax.x - g_HeadRadius, bbox->bbmax.y, bbox->bbmax.z), hitbox, false));
        }
        else if (hitbox == HITBOX_STOMACH)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, true));
        }
        else if (hitbox == HITBOX_PELVIS || hitbox == HITBOX_UPPER_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));
        }
        else if (hitbox == HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST)
        {
            //Center points.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));

            //Points scale.
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMax.z + g_BodyRadius), hitbox, false));
            points.emplace_back(scan_point(Vector(g_VecCenter.x, g_VecCenter.y, g_VecMin.z - g_BodyRadius), hitbox, false));

            //Backward point.
            points.emplace_back(scan_point(Vector{ g_VecCenter.x, g_VecMax.y - g_BodyRadius, g_VecCenter.z }, hitbox, false));
        }
        else if (hitbox == HITBOX_RIGHT_THIGH || hitbox == HITBOX_LEFT_THIGH)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
        else if (hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM)
        {
            //Center point.
            points.emplace_back(scan_point(g_VecCenter, hitbox, true));
        }
    }

    for (auto& point : points)
        math::vector_transform(point.point, record->matrixes_data.main[bbox->bone], point.point);

    return points;
}
а в чем беттер то?

а с этих проверок я вообще выпал
C++:
if (hitbox == HITBOX_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH)
C++:
else if (hitbox == HITBOX_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH || hitbox == HITBOX_RIGHT_UPPER_ARM || hitbox == HITBOX_LEFT_UPPER_ARM || hitbox == HITBOX_PELVIS)
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
30 Дек 2020
Сообщения
400
Реакции[?]
293
Поинты[?]
1K
C++:
std::vector <scan_point> aim::get_points(adjust_data* record, int hitbox, bool from_aim)
{
    if (bbox->radius <= .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_UPPER_CHEST || hitbox == HITBOX_RIGHT_THIGH || HITBOX_LOWER_CHEST || hitbox == HITBOX_CHEST || hitbox == HITBOX_LEFT_THIGH)
        {
            const auto v105 = (g_VecMax.x + g_VecMin.x) * .5f;
            const auto v106 = (g_VecMax.y + g_VecMin.y) * .5f;
            const auto v107 = g_VecMax.x - v105;
            const auto v108 = (g_VecMax.z + g_VecMin.z) * .5f;

            points.emplace_back(scan_point(Vector(.0f, v106, .0f), hitbox, false));
            points.emplace_back(scan_point(Vector(.0f, .0f, v108), hitbox, false));
            points.emplace_back(scan_point(Vector(v107 * .45f + v105, .0f, .0f), hitbox, false));
        }
    }
}
Дружище, а ты мне можешь рассказать откуда у тебя это условие с аимвара? Как мне известно, его у пастерков нету, но да ладно, все равно этот код работать не будет..
И так, чтобы ты знал, все хитбоксы, которые находятся в условии, имеют радиус больше нуля (т.е капсульные). Радиус меньше нуля имеют только ноги и кисти. Это можно проверить двумя способами.
1. Посмотреть на данную картинку и увидеть, что только выше перечисленные мною хитбоксы не являются полусферой, а типо квадратами (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
2. У нас есть прекрасная функция g_interfaces.m_debug_overlay->AddCapsuleOverlay(...), перед ее вызовом делаем проверку ( if (bbox->m_radius == -1.0f) return; ), чтобы выводить только капсульные хитбоксы. И как мы видим в итоге вывелось все кроме ног и кистей (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).
Либо сделать такое условие ( if (bbox->m_radius > 0.0f) return; ), чтобы вывести все кроме капсульных хитбоксов. И в итоге имеем такую картину (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Если я в чем-то не прав, прошу поправить.

1655213042584.png1655212738238.png
 
Последнее редактирование:
kitty.
Пользователь
Статус
Оффлайн
Регистрация
17 Окт 2021
Сообщения
282
Реакции[?]
111
Поинты[?]
17K
сука, вы там ебанулись что-ли? Вы не можете прибавить и отпушить в ваш вектор, потом убавить и отпушить в вектор нужное вам значение от центра хитбокса? 2022 год на дворе, вы хуйню свою с мультипоинтами постите
 
Забаненный
Статус
Оффлайн
Регистрация
20 Май 2022
Сообщения
91
Реакции[?]
51
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дружище, а ты мне можешь рассказать откуда у тебя это условие с аимвара? Как мне известно, его у пастерков нету, но да ладно, все равно этот код работать не будет..
И так, чтобы ты знал, все хитбоксы, которые находятся в условии, имеют радиус больше нуля (т.е капсульные). Радиус меньше нуля имеют только ноги и кисти. Это можно проверить двумя способами.
1. Посмотреть на данную картинку и увидеть, что только выше перечисленные мною хитбоксы не являются полусферой, а типо квадратами (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
2. У нас есть прекрасная функция g_interfaces.m_debug_overlay->AddCapsuleOverlay(...), перед ее вызовом делаем проверку ( if (bbox->m_radius == -1.0f) return; ), чтобы выводить только капсульные хитбоксы. И как мы видим в итоге вывелось все кроме ног и кистей (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).
Либо сделать такое условие ( if (bbox->m_radius > 0.0f) return; ), чтобы вывести все кроме капсульных хитбоксов. И в итоге имеем такую картину (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Если я в чем-то не прав, прошу поправить.

Посмотреть вложение 207652Посмотреть вложение 207650
И еще не понял этого прикола auto g_VecCenter = (bbox->bbmin + bbox->bbmax) / 2.f; Всегда же было правильно умножать на 0.5, чтобы получить правильный центр точки хитбокса. Ты по факту эту точку опускаешь еще ниже, тем самым делаешь только хуже.
Как изначально в игре:
Зеленый крестик - позиция кости
Посмотреть вложение 207660
Чел ты кринж , x / 2 = x * 0.5. Тебе в 5 класс, а не в темы на югейме
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,553
Реакции[?]
518
Поинты[?]
189K
Дружище, а ты мне можешь рассказать откуда у тебя это условие с аимвара? Как мне известно, его у пастерков нету, но да ладно.

Посмотреть вложение 207652Посмотреть вложение 207650
А ты сильно уверен что я деф пастерок то? Мб я уже много времени там сидел плюсами занимался и движочек рассматривал, и собирал себе всякие штуки...
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2020
Сообщения
29
Реакции[?]
9
Поинты[?]
0
А ты сильно уверен что я деф пастерок то? Мб я уже много времени там сидел плюсами занимался и движочек рассматривал, и собирал себе всякие штуки...
по твоим постам.. я сомневаюсь что ты как то изучал сурс..
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,553
Реакции[?]
518
Поинты[?]
189K
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2020
Сообщения
29
Реакции[?]
9
Поинты[?]
0
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
А ты сильно уверен что я деф пастерок то? Мб я уже много времени там сидел плюсами занимался и движочек рассматривал, и собирал себе всякие штуки...
именно поэтому ты решил выкинуть на югейм репаст супримаси мультипоинтов назвав их better? :roflanPominki:
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,553
Реакции[?]
518
Поинты[?]
189K
именно поэтому ты решил выкинуть на югейм репаст супримаси мультипоинтов назвав их better? :roflanPominki:
чето ты зачастил отвечать где либо мне, обычно вообще не отвечал...
 
Сверху Снизу