Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __fastcall Hooks::SceneEnd(void *ecx, void *edx)
- {
- static auto oSceneEnd = g_Hooks.pRenderViewHook->GetOriginal<SceneEnd_t>(vtable_indexes::sceneEnd);
- oSceneEnd(ecx, edx);
- for (int i = 1; i < g_pEngine->GetMaxClients(); ++i)
- {
- C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(i);
- if (!pPlayerEntity
- || !pPlayerEntity->IsAlive()
- || pPlayerEntity->IsDormant()
- || !Globals::LocalPlayer)
- continue;
- bool IsTeammate = pPlayerEntity->GetTeam() == Globals::LocalPlayer->GetTeam();
- bool IsEnemy = pPlayerEntity->GetTeam() != Globals::LocalPlayer->GetTeam();
- bool IsLocal = pPlayerEntity == Globals::LocalPlayer;
- static std::vector< IMaterial* > materials;
- static bool once{ false };
- if (!once) {
- materials.push_back(create_material(true, false, false)); // material.
- materials.push_back(create_material(false, false, false, 0)); // flat.
- materials.push_back(create_material(true, false, true)); // material zignore.
- materials.push_back(create_material(false, false, true)); // flat zignore.
- once = true;
- }
- static std::vector< IMaterial* > materials2;
- static bool once2{ false };
- if (!once2) {
- materials2.push_back(create_material(false, false, false, 0)); //Flat
- materials2.push_back(create_material(true, false, false)); // Material
- materials2.push_back(create_material(true, true, false)); // Wireframe
- materials2.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/dogtags/dogtags_outline", "Model textures")); //Pulse
- once2 = true;
- }
- /*
- if (Globals::LocalPlayer) {
- float NormalColor[3] = { 1, 1, 1 };
- g_pRenderView->SetColorModulation(NormalColor);
- g_pModelRender->ForcedMaterialOverride(materials.at(0));
- Globals::LocalPlayer->DrawModel(1, 255);
- g_pModelRender->ForcedMaterialOverride(nullptr);
- }
- */
- float vis_color[3] = { c_config::get().chams_esp_color_r / 255.f, c_config::get().chams_esp_color_g / 255.f, c_config::get().chams_esp_color_b / 255.f };
- float hid_color[3] = { c_config::get().chams_xqz_esp_color_r / 255.f, c_config::get().chams_xqz_esp_color_g / 255.f, c_config::get().chams_xqz_esp_color_b / 255.f };
- float local_color[3] = { c_config::get().local_chams_color_r / 255.f, c_config::get().local_chams_color_g / 255.f, c_config::get().local_chams_color_b / 255.f };
- float lag_color[3] = { c_config::get().lag_color_r / 255.f, c_config::get().lag_color_g / 255.f, c_config::get().lag_color_b / 255.f };
- float fake_color[3] = { c_config::get().desync_chams_color_r / 255.f, c_config::get().desync_chams_color_g / 255.f, c_config::get().desync_chams_color_b / 255.f };
- IMaterial* matEnemy = materials2.at(c_config::get().chamsenemies_model);
- IMaterial* matLocal = materials2.at(c_config::get().localmodel);
- if (IsEnemy) {
- if (c_config::get().chams_enemies) {
- if (c_config::get().chams_xqz_enemies) {
- g_pRenderView->SetBlend(c_config::get().chams_esp_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(matEnemy);
- g_pRenderView->SetColorModulation(hid_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- g_pRenderView->SetBlend(c_config::get().chams_xqz_esp_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(matEnemy);
- g_pRenderView->SetColorModulation(vis_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- }
- else if (IsLocal && !Globals::LocalPlayer->IsScoped() && c_config::get().local_chams) {
- g_pRenderView->SetBlend(c_config::get().local_chams_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(matLocal);
- g_pRenderView->SetColorModulation(local_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- #include "SDK/CEntity.h"
- }
- g_pModelRender->ForcedMaterialOverride(nullptr);
- for (auto i = 0; i < g_GlowManager->GetSize(); i++)
- {
- auto &glowObject = g_GlowManager->m_GlowObjectDefinitions[i];
- auto entity = reinterpret_cast<C_BaseEntity*>(glowObject.m_pEntity);
- auto m_pLocalPlayer = reinterpret_cast<C_BaseEntity*>(g_pEntityList->GetClientEntity(g_pEngine->GetLocalPlayer()));
- if (!entity)
- continue;
- if (!m_pLocalPlayer)
- continue;
- if (glowObject.IsUnused())
- continue;
- bool is_local_player = entity == m_pLocalPlayer;
- bool is_teammate = m_pLocalPlayer->GetTeam() == entity->GetTeam() && !is_local_player;
- bool IsEnemy = entity->GetTeam() != m_pLocalPlayer->GetTeam();
- if (is_local_player) {
- if (c_config::get().glow_local && !m_pLocalPlayer->IsScoped()) {
- auto class_id = entity->GetClientClass()->ClassID;
- switch (class_id)
- {
- default:
- glowObject.m_flAlpha = 0.0f;
- break;
- case 40:
- glowObject.m_nGlowStyle = c_config::get().glow_mode_local;
- glowObject.m_flAlpha = c_config::get().local_glow_color_a / 255.f;
- break;
- }
- glowObject.m_flRed = c_config::get().local_glow_color_r / 255.0f;
- glowObject.m_flGreen = c_config::get().local_glow_color_g / 255.0f;
- glowObject.m_flBlue = c_config::get().local_glow_color_b / 255.0f;
- glowObject.m_bRenderWhenOccluded = true;
- glowObject.m_bRenderWhenUnoccluded = false;
- }
- }
- else if (!is_teammate) {
- if (c_config::get().glow_enemies) {
- auto class_id = entity->GetClientClass()->ClassID;
- switch (class_id)
- {
- default:
- glowObject.m_flAlpha = 0.0f;
- break;
- case 40:
- glowObject.m_nGlowStyle = c_config::get().glow_mode;
- glowObject.m_flAlpha = c_config::get().glow_esp_color_a / 255.f;
- break;
- }
- glowObject.m_flRed = c_config::get().glow_esp_color_r / 255.0f;
- glowObject.m_flGreen = c_config::get().glow_esp_color_g / 255.0f;
- glowObject.m_flBlue = c_config::get().glow_esp_color_b / 255.0f;
- glowObject.m_bRenderWhenOccluded = true;
- glowObject.m_bRenderWhenUnoccluded = false;
- }
- }
- else if (is_teammate) {
- if (c_config::get().glow_teammates) {
- auto class_id = entity->GetClientClass()->ClassID;
- switch (class_id)
- {
- default:
- glowObject.m_flAlpha = 0.0f;
- break;
- case 40:
- glowObject.m_nGlowStyle = 0;
- glowObject.m_flAlpha = c_config::get().glow_alpha_teammates / 255.f;
- break;
- }
- glowObject.m_flRed = 180 / 255.0f;
- glowObject.m_flGreen = 60 / 255.0f;
- glowObject.m_flBlue = 120 / 255.0f;
- glowObject.m_bRenderWhenOccluded = true;
- glowObject.m_bRenderWhenUnoccluded = false;
- }
- }
- }
- if (c_config::get().removals[3]) {
- std::vector<const char*> vistasmoke_wireframe =
- {
- "particle/vistasmokev1/vistasmokev1_smokegrenade",
- };
- std::vector<const char*> vistasmoke_nodraw =
- {
- "particle/vistasmokev1/vistasmokev1_fire",
- "particle/vistasmokev1/vistasmokev1_emods",
- "particle/vistasmokev1/vistasmokev1_emods_impactdust",
- };
- for (auto mat_s : vistasmoke_wireframe)
- {
- IMaterial* mat = g_pMaterialSys->FindMaterial(mat_s, "Other textures");
- mat->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true); //wireframe
- }
- for (auto mat_n : vistasmoke_nodraw)
- {
- IMaterial* mat = g_pMaterialSys->FindMaterial(mat_n, "Other textures");
- mat->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
- }
- static auto smokecout = *(DWORD*)(linegoesthrusmoke + 0x8);
- *(int*)(smokecout) = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement