Эксперт
-
Автор темы
- #1
Что нужно?
1.Brain(хоть чуть-чуть, чтобы нажать ctrl+C ctrl+V)
2.Сурс(ахуетб)
Шаг 1
Шаг 2
Шаг 3
Шаг 4
Шаг 5
Шаг 6
Шаг 7
1.Brain(хоть чуть-чуть, чтобы нажать ctrl+C ctrl+V)
2.Сурс(ахуетб)
Шаг 1
Найти в сурсе visuals.cpp, и PaintTraverse.cpp
открыть Visuals.cpp и Visuals.hpp
открыть Visuals.cpp и примерно после отрисовки боксов вставьте
C++:
const std::string currentDateTime( ) {
time_t now = time( 0 );
struct tm tstruct;
char buf[ 80 ];
tstruct = *localtime( &now );
strftime( buf, sizeof( buf ), "%X", &tstruct );
return buf;
}
void Visuals::GradientLine2(int x, int y, int w, int h, Color c1, Color color2)
{
filled_rect(x, y, w, h, c1);
BYTE first = color2.r();
BYTE second = color2.g();
BYTE third = color2.b();
for (int i = 0; i < w; i++)
{
float fi = i, fw = w;
float a = fi / fw;
DWORD ia = a * 255;
filled_rect(x + i, y, 1, h, Color(first, second, third, ia));
}
}
открыть Visuals.cpp и после GradientLine
C++:
RECT Visuals::GetTextSize( vgui::HFont font, const char* text )
{
size_t origsize = strlen(text) + 1;
const size_t newsize = 500;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, text, _TRUNCATE);
RECT rect;
rect.left = rect.right = rect.bottom = rect.top = 0;
wchar_t wbuf[ 1024 ];
if ( MultiByteToWideChar( CP_UTF8, 0, text, -1, wbuf, 256 ) > 0 ) {
int x, y;
g_VGuiSurface->GetTextSize( font, wbuf, x, y );
rect.left = x; rect.bottom = y;
rect.right = x; rect.top = y;
}
return rect;
}
открыть Visuals.cpp и после GetTextSize
C++:
void Visuals::watermark()
{
if (g_Options.Visuals.pwatermark) {
char path[MAX_PATH], * name = NULL;
GetEnvironmentVariable((LPCTSTR)"USERPROFILE", (LPSTR)path, (DWORD)MAX_PATH);
name = &path[std::strlen(path) - 1];
for (; *name != '\\'; --name);
++name;
//raimbow flex code
auto r = (floor(sin(g_pGlobalVars->realtime* 2) * 127 + 128)) / 255.f;
auto g = (floor(sin(g_pGlobalVars->realtime * 2 + 2) * 127 + 128)) / 255.f;
auto b = (floor(sin(g_pGlobalVars->realtime * 2 + 4) * 127 + 128)) / 255.f;
//Color line = Color::FromHSB(raimbow, 1.f, 1.f);
static int fps, old_tick_count;
if ((g_pGlobalVars->tickcount - old_tick_count) > 50) {
fps = static_cast<int>(1.f / g_pGlobalVars->frametime);
old_tick_count = g_pGlobalVars->tickcount;
}
int screen_x, screen_y;
g_EngineClient->GetScreenSize(screen_x, screen_y);
static float bar_width = 226.8;
std::stringstream ss;
auto local_player = reinterpret_cast<C_BaseEntity*>(g_EntityList->GetClientEntity(g_EngineClient->GetLocalPlayer()));
auto net_channel = g_EngineClient->GetNetChannelInfo();
std::string outgoing = local_player ? std::to_string((int)(net_channel->GetLatency(FLOW_OUTGOING) * 1000)) : "0";
ss << u8"Ваш софт| " <</* тут чит гетнит имя вашего пк*/ name << " | " << "PING: " << outgoing.c_str() << "ms" << " | FPS: " << fps << " | " << currentDateTime().c_str() << "";
int x, y, w, h;
RECT textsize = Visuals::GetTextSize(Render::Get().esp_font, ss.str().c_str());
//static int textsize = 280;
filled_rect(screen_x - (textsize.right + 10), 6, textsize.right + 20, 18, Color(15, 15, 15, 140));
GradientLine2(screen_x - (textsize.right + 10), 6, textsize.right + 20, 2, Color(r,g,b), Color(b, r, g));
Render::Get().DrawString(Render::Get().esp_font,screen_x - (textsize.right + 5), 15, Color(255, 255, 255), false, ss.str().c_str());
// GradientLine2(0,0, 2000,3, Color(r,g,b),Color(b,r,g));
}
}
после этого идём в PaintTraverse.cpp
и ищем где у нас отрисовывается бокс, и после вставляем
Visuals::Get().watermark();
и ищем где у нас отрисовывается бокс, и после вставляем
Visuals::Get().watermark();