хочу кекать!
-
Автор темы
- #1
2.21. Запрещено редактировать название темы или своё сообщение на «/del» во всех случаях (продажа аккаунта, получение ответа на свой вопрос и так далее), кроме флуда.
Хочу я сделать новомодный прицел из одной луахи скейта
ну так вот...
У меня получаетсявот такая поебота:
ну так вот...
У меня получаетсявот такая поебота:
C++:
if (g_cfg.player.enable && g_cfg.esp.removals[REMOVALS_SCOPE] && g_ctx.globals.scoped && weapon->is_sniper())
{
auto start_color = g_cfg.esp.zoom_crosshair_rectile;
static int w, h;
m_engine()->GetScreenSize(w, h); //w - ШИРИНА, h - ВЫСОТА
render::get().gradient(w/4, h/2, 0.45*w, 1, Color(g_cfg.esp.zoom_crosshair_rectile.r(), g_cfg.esp.zoom_crosshair_rectile.g(), g_cfg.esp.zoom_crosshair_rectile.b(), 0), start_color, GRADIENT_HORIZONTAL); //left line
render::get().gradient(0.55*w, h/2, 0.75*w, 1, start_color, Color(g_cfg.esp.zoom_crosshair_rectile.r(), g_cfg.esp.zoom_crosshair_rectile.g(), g_cfg.esp.zoom_crosshair_rectile.b(), 0), GRADIENT_HORIZONTAL); //right line
render::get().gradient(0+(0.25*h), w/2, 1, h/2, Color(g_cfg.esp.zoom_crosshair_rectile.r(), g_cfg.esp.zoom_crosshair_rectile.g(), g_cfg.esp.zoom_crosshair_rectile.b(), 0), start_color, GRADIENT_VERTICAL); //up line
render::get().gradient(0+(0.75*h), w/2, 1, h/2, start_color, Color(g_cfg.esp.zoom_crosshair_rectile.r(), g_cfg.esp.zoom_crosshair_rectile.g(), g_cfg.esp.zoom_crosshair_rectile.b(), 0), GRADIENT_VERTICAL); //down line
}
C++:
void render::gradient(int x, int y, int w, int h, Color first, Color second, GradientType type)
{
if (!m_surface())
return;
first.SetAlpha(static_cast<int>(first.a() * alpha_factor));
second.SetAlpha(static_cast<int>(second.a() * alpha_factor));
auto filled_rect_fade = [&](bool reversed, float alpha) {
using Fn = void(__thiscall*)(VOID*, int, int, int, int, unsigned int, unsigned int, bool);
call_virtual< Fn >(m_surface(), g_ctx.indexes.at(17)) (
m_surface(), x, y, x + w, y + h,
reversed ? alpha : 0,
reversed ? 0 : alpha,
type == GRADIENT_HORIZONTAL);
};
static auto blend = [](const Color & first, const Color & second, float t) -> Color {
return Color(
first.r() + t * (second.r() - first.r()),
first.g() + t * (second.g() - first.g()),
first.b() + t * (second.b() - first.b()),
first.a() + t * (second.a() - first.a()));
};
if (first.a() == 255 || second.a() == 255) {
m_surface()->DrawSetColor(blend(first, second, 0.5f));
m_surface()->DrawFilledRect(x, y, x + w, y + h);
}
m_surface()->DrawSetColor(first);
filled_rect_fade(true, first.a());
m_surface()->DrawSetColor(second);
filled_rect_fade(false, second.a());
}