-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делал давно ,работает криво,но работает.
В хуке DrawModel:
Если подогнать вьюмодел по хуz,то результат :
Иначе :
Есть еще баг что подсвечивает руки от 3 лица.
В прицнипе,если кто-нибудь пофиксит - дропайте работягам в комментах (дополню тему).
А так,можно сделать костыльно,чтобы при включении хуз менялся под нужный.
В хуке DrawModel:
Код:
static std::vector<std::pair<int, int>> CustomGlowEntities;
if (auto renderable = pInfo->m_pClientEntity)
{
if (auto entity = reinterpret_cast<C_BasePlayer*>(uintptr_t(renderable) - 0x4))
{
auto i = entity->EntIndex();
if (auto mdl = entity->GetModel())
{
bool is_arm = strstr(mdl->szName, "arms") != nullptr;
bool is_player = strstr(mdl->szName, "models/player") != nullptr;
bool is_sleeve = strstr(mdl->szName, "sleeve") != nullptr;
bool is_weapon = strstr(mdl->szName, "weapons/v_") != nullptr;
if ((is_sleeve || is_weapon) && !is_player)
{
//Entity is valid, check if we want to glow it
if (!g_GlowObjManager->HasGlowEffect(entity))
{
auto pos = g_GlowObjManager->RegisterGlowObject(
entity,
g_Options.color_glow_enemy,
1.0f,
false,
false,
GlowObjectDefinition_t::END_OF_FREE_LIST
);
//Append it to the vector
CustomGlowEntities.emplace_back(i, pos);
}
}
}
else {
//
// The entity is invalid.
// Check if the entity on this index was glowing before it was removed by the game
//
auto it = std::find_if(
CustomGlowEntities.begin(),
CustomGlowEntities.end(),
[&](const std::pair<int, int>& p) {
return p.first == i;
});
if (it != CustomGlowEntities.end()) {
// It was glowing. Unregister it and remove from our vector.
g_GlowObjManager->UnregisterGlowObject(it->second);
CustomGlowEntities.erase(it);
}
}
}
}
for (auto i = 0; i < g_GlowObjManager->m_GlowObjectDefinitions.Count(); i++)
{
auto& glowObject = g_GlowObjManager->m_GlowObjectDefinitions[i];
auto entity = reinterpret_cast<C_BasePlayer*>(glowObject.m_pEntity);
if (!entity || glowObject.IsUnused())
{
continue;
}
if (auto mdl = entity->GetModel())
{
bool is_arm = strstr(mdl->szName, "arms") != nullptr;
bool is_player = strstr(mdl->szName, "models/player") != nullptr;
bool is_sleeve = strstr(mdl->szName, "sleeve") != nullptr;
bool is_weapon = strstr(mdl->szName, "weapons/v_") != nullptr;
if ((is_sleeve || is_weapon) && !is_player)
{
glowObject.m_flRed = g_Options.color_glow_enemy[0];
glowObject.m_flGreen = g_Options.color_glow_enemy[1];
glowObject.m_flBlue = g_Options.color_glow_enemy[2];
glowObject.m_bRenderWhenOccluded = false;
glowObject.m_bRenderWhenUnoccluded = false;
glowObject.m_nRenderStyle = g_Options.glow_style;
}
}
}
Иначе :
Есть еще баг что подсвечивает руки от 3 лица.
В прицнипе,если кто-нибудь пофиксит - дропайте работягам в комментах (дополню тему).
А так,можно сделать костыльно,чтобы при включении хуз менялся под нужный.