csgo-imgui-sdk
csgo-imgui-sdk copied to clipboard
painttraverse only draw if open game settings and console
get_interface(panel, "vgui2.dll", "VGUI_Panel");
get_interface(surface, "vguimatsurface.dll", "VGUI_Surface");
void Texto(const vfont font, std::string text, const float x, const float y, const Color clr)
{
if (!font.initialized)
return;
sdk::surface->DrawSetTextFont(font.hfont);
sdk::surface->DrawSetTextColor(clr);
sdk::surface->DrawSetTextPos(
static_cast<int> (x),
static_cast<int> (y)
);
sdk::surface->DrawPrintText(std::wstring(text.begin(), text.end()).data(), text.size());
}
void __fastcall painttraverse(i_panel* thisptr, PVOID, VPANEL vguiPanel, bool forceRepaint, bool allowForce) noexcept
{
if (!original::painttraverse) {
return;
}
original::painttraverse(thisptr, vguiPanel, forceRepaint, allowForce);
static VPANEL vpanel = 0;
if (!vpanel)
if (fnv::hash(thisptr->GetName(vguiPanel)) == HASH("MatSystemTopPanel")) {
vpanel = vguiPanel;
static auto inited = false;
if (!inited)
{
g_fonts.init();
inited = true;
}
}
if (vguiPanel == vpanel)
{
Texto(g_fonts.textoesp, "testttt", config::screen_monitor_x / -187, 5, Color(255, 255, 255, 255));
}
}
auto* const painttraverse_target = utilities::get_virtual(sdk::panel, 41);
MH_CreateHookSafe(painttraverse_target, &painttraverse, &original::painttraverse, "painttraverse");
I'm trying to draw a text inside the match using painttraverse . however it only works if I press esc + open the game console.