Розыгрыш Premium и Уникальной юзергруппы на форуме! Перейти

Кривые хп, и арморы

off
Участник
Участник
Статус
Оффлайн
Регистрация
7 Сен 2017
Сообщения
713
Реакции
163
Имею CSGOSimple (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).
Дело в том, что мне нужно убрать разные расстояния от хп до бокса, и от бокса до армора.
Вот как это выглядит:
shit1.png
shit2.png
В ппхуде это выглядит так:
zz.png
Уже ночь ебусь со своим хаком, поэтому могу писать невнятно.
bool Visuals::Player::Begin(C_BasePlayer* pl) { if (pl->IsDormant() || !pl->IsAlive()) return false; ctx.pl = pl; ctx.is_enemy = g_LocalPlayer->m_iTeamNum() != pl->m_iTeamNum(); ctx.is_visible = g_LocalPlayer->CanSeePlayer(pl, HITBOX_CHEST); if (!ctx.is_enemy && g_Options.esp_enemies_only) return false; ctx.clr = ctx.is_enemy ? (ctx.is_visible ? g_Options.color_esp_enemy_visible : g_Options.color_esp_enemy_occluded) : (ctx.is_visible ? g_Options.color_esp_ally_visible : g_Options.color_esp_ally_occluded); auto head = pl->GetHitboxPos(HITBOX_HEAD); auto origin = pl->m_vecOrigin(); head.z += 6; if (!Math::WorldToScreen(head, ctx.head_pos) || !Math::WorldToScreen(origin, ctx.feet_pos)) return false; auto h = fabs(ctx.head_pos.y - ctx.feet_pos.y); auto w = h / 2.0f; ctx.bbox.left = static_cast<long>(ctx.feet_pos.x - w * 0.45f); ctx.bbox.right = static_cast<long>(ctx.bbox.left + w); ctx.bbox.bottom = static_cast<long>(ctx.feet_pos.y); ctx.bbox.top = static_cast<long>(ctx.head_pos.y); return true; } void Visuals::Player::RenderBox() { // Имитация обводки текста Render::Get().RenderBoxByType(ctx.bbox.left - 1, ctx.bbox.top - 1, ctx.bbox.right + 1, ctx.bbox.bottom + 1, Color(0, 0, 0, 255), 1); Render::Get().RenderBoxByType(ctx.bbox.left + 1, ctx.bbox.top + 1, ctx.bbox.right - 1, ctx.bbox.bottom - 1, Color(0, 0, 0, 255), 1); Render::Get().RenderBoxByType(ctx.bbox.left, ctx.bbox.top, ctx.bbox.right, ctx.bbox.bottom, ctx.clr, 1); } void Visuals::Player::RenderHealth() { auto hp = ctx.pl->m_iHealth(); float box_w = (float)fabs(ctx.bbox.right - ctx.bbox.left); float box_h = (float)fabs(ctx.bbox.bottom - ctx.bbox.top); float off = (box_h / 6.f); //float off = 8; int height = (box_h * hp) / 100; int green = int(hp * 2.55f); int red = 255 - green; int x = ctx.bbox.left - off; int y = ctx.bbox.top; int w = 4; int h = box_h; Render::Get().RenderBox(x, y, x + w, y + h, Color::Black, 1.f, true); Render::Get().RenderBox(x + 1, y + 1, x + w - 1, y + height - 2, Color(red, green, 0, 255), 1.f, true); } void Visuals::Player::RenderArmour() { auto armour = ctx.pl->m_ArmorValue(); float box_h = (float)fabs(ctx.bbox.bottom - ctx.bbox.top); float off = (box_h / 6.f); //float off = 4; int height = (((box_h * armour) / 100)); int x = ctx.bbox.right + 4; int y = ctx.bbox.top; int w = 4; int h = box_h; Render::Get().RenderBox(x, y, x + w, y + h, Color::Black, 1.f, true); Render::Get().RenderBox(x + 1, y + 1, x + w - 1, y + height - 2, Color(0, 50, 255, 255), 1.f, true); }
Нужно чтобы от смены расстояния (если я буду ходить назад, вперёд), расстояние от ХП до Бокса было одинаковым.
 
Назад
Сверху Снизу