-
Автор темы
- #1
Add this in misc .cpp
hooked_painttraverse.cpp below GrenadePrediction::get().Paint();
hooks.cpp below Radar::get().Render();
ctx.hpp
hooked_painttraverse.cpp below g_ctx.globals.m_networkable = nullptr;
hooked_painttraverse.cpp below g_ctx.globals.should_update_radar = true;
menu.cpp
hooked_painttraverse.cpp
SS:
Пожалуйста тапками не бейте
Код:
int StringToWeapon(std::string weapon) {
if (!strcmp(weapon.c_str(), "smokegrenade"))
return 45;
if (!strcmp(weapon.c_str(), "flashbang"))
return 43;
if (!strcmp(weapon.c_str(), "incgrenade"))
return 46; // TODO: гавнокод
}
void misc::grenade_help()
{
if (!g_ctx.globals.should_updated_grenade_help)
return;
if (!g_cfg.misc.ingame_grenade)
return;
bool bTrueGrenade = g_ctx.globals.should_updated_grenade_help && m_engine()->IsInGame() && m_engine()->IsConnected();
if (!bTrueGrenade)
return;
for (int i = 0; i < cGrenade.GrenadeInfo.size(); i++)
{
GrenadeInfo_t info;
if (!cGrenade.GetInfo(i, &info))
continue;
int iGrenadeID = StringToWeapon(info.szWeapon);
if (!(g_ctx.globals.weapon->m_iItemDefinitionIndex() == iGrenadeID || (iGrenadeID == 46 && g_ctx.globals.weapon->m_iItemDefinitionIndex()== 48)))
continue;
Vector vecOnScreenOrigin, vecOnScreenAngles;
int iCenterY, iCenterX;
m_engine()->GetScreenSize(iCenterX, iCenterY);
iCenterX /= 2;
iCenterY /= 2;
Color Hint_Color(int(15 * 255.f), int(25 * 255.f), int(45 * 255.f));
float dist = sqrt(pow(g_ctx.local()->GetRenderOrigin().x - info.vecOrigin.x, 2) + pow(g_ctx.local()->GetRenderOrigin().y - info.vecOrigin.y, 2) + pow(g_ctx.local()->GetRenderOrigin().z - info.vecOrigin.z, 2)) * 0.0254f;
if (dist < 2.0f) {
if (math::world_to_screen(info.vecOrigin, vecOnScreenOrigin))
render::get().circle(vecOnScreenOrigin.x, vecOnScreenOrigin.y, 15, 15, Color::Red);
Vector vecAngles;
math::angle_vectors(info.vecViewangles, vecAngles);
vecAngles *= 9000;
if (math::world_to_screen(g_ctx.local()->GetAbsOrigin() + vecAngles, vecAngles))
{
if(iGrenadeID == 45)
render::get().text(fonts[GRENADES], vecAngles.x, vecAngles.y, Color::White, HFONT_CENTERED_X | HFONT_CENTERED_Y, "k");
else if (iGrenadeID == 46)
render::get().text(fonts[GRENADES], vecAngles.x, vecAngles.y, Color::White, HFONT_CENTERED_X | HFONT_CENTERED_Y, "l");
render::get().circle(vecAngles.x, vecAngles.y, 15, 15, Color::Blue);
}
if (info.szName.c_str())
{
auto box_width = render::get().text_width(fonts[GRENADE_HELP], info.szName.c_str());
render::get().text(fonts[GRENADE_HELP], vecAngles.x + 120, vecAngles.y, Color::White, HFONT_CENTERED_X | HFONT_CENTERED_Y, info.szName.c_str());
}
if (info.szDescription.c_str())
render::get().text(fonts[GRENADE_HELP],iCenterX, iCenterY, Color::White, HFONT_CENTERED_NONE, info.szDescription.c_str());
}
else {
if (math::world_to_screen(info.vecOrigin, vecOnScreenOrigin))
render::get().circle(vecOnScreenOrigin.x, vecOnScreenOrigin.y, 15, 15, Color::White);
}
}
}
Код:
if (weapon->is_grenade() && g_cfg.misc.ingame_grenade)
misc::get().grenade_help();
Код:
if (g_ctx.globals.should_update_grenade_help)
cGrenade.bUpdateGrenadeInfo(m_engine()->GetLevelNameShort());
Код:
bool should_update_grenade_help = false;
bool should_updated_grenade_help = false;
Код:
g_ctx.globals.should_update_grenade_help = false;
Код:
g_ctx.globals.should_update_grenade_help = true;
Код:
ImGui::Checkbox(crypt_str("Grenade Helper"), &g_cfg.misc.ingame_grenade);
Код:
fonts[GRENADE_HELP] = create_font(crypt_str("CrashNumberingGothic"), 15, FW_HEAVY, FONTFLAG_ANTIALIAS | FONTFLAG_DROPSHADOW);
Пожалуйста тапками не бейте
Пожалуйста, авторизуйтесь для просмотра ссылки.
Вложения
-
3.5 MB Просмотры: 271
Последнее редактирование: