Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, IMatRenderContext* context, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4_t* matrix)
- {
- static auto oDrawModelExecute = g_Hooks.pModelHook->GetOriginal<DrawModelExecute_t>(vtable_indexes::dme);
- const char* ModelName = g_pModelInfo->GetModelName((model_t*)info.pModel);
- const std::string strModelName = g_pModelInfo->GetModelName((model_t*)info.pModel);
- static IMaterial* MetallicLitChams = nullptr;
- static IMaterial* PlasticLitChams = nullptr;
- static IMaterial* UnlitChams = nullptr;
- static bool ResetMaterial = false;
- if (!g::pLocalEntity || !g_pEngine->IsInGame() || !g_pEngine->IsConnected())
- {
- MetallicLitChams = nullptr;
- PlasticLitChams = nullptr;
- UnlitChams = nullptr;
- return;
- }
- if (MetallicLitChams == nullptr || PlasticLitChams == nullptr || UnlitChams == nullptr)
- {
- MetallicLitChams = g_pMaterialSys->FindMaterial("MetallicLitChams", "Model textures");
- PlasticLitChams = g_pMaterialSys->FindMaterial("PlasticLitChams", "Model textures");
- UnlitChams = g_pMaterialSys->FindMaterial("UnlitChams", "Model textures");
- return;
- }
- if (!g_pEngine->IsInGame() || !g_pEngine->IsConnected())
- {
- if (ResetMaterial)
- {
- MetallicLitChams = nullptr;
- PlasticLitChams = nullptr;
- UnlitChams = nullptr;
- ResetMaterial = false;
- }
- return;
- }
- else
- ResetMaterial = true;
- C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
- if (!g_pEngine->IsInGame() || !g_pEngine->IsConnected())
- return;
- if (g_Menu.Config.Nightmode)
- {
- if (strstr(ModelName, "models/props"))
- {
- g_pRenderView->SetBlend(g_Menu.Config.NightmodeBlend / 255.f);
- }
- }
- if (g_Menu.Config.SleeveChams && strstr(ModelName, "v_sleeve"))
- {
- ColorV2 SleeveColor = g_Menu.Config.SleeveChamsColor;
- switch (g_Menu.Config.SleeveChams)
- {
- case 1:
- if (g_Menu.Config.SleeveChamsIgnorez)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.SleeveChamsWireframe)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- MetallicLitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
- MetallicLitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
- break;
- case 2:
- if (g_Menu.Config.SleeveChamsIgnorez)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.SleeveChamsWireframe)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
- PlasticLitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- break;
- case 3:
- if (g_Menu.Config.SleeveChamsIgnorez)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.SleeveChamsWireframe)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- UnlitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
- UnlitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(UnlitChams);
- break;
- default:
- break;
- }
- }
- else if (g_Menu.Config.ArmsChams && strstr(ModelName, "arms"))
- {
- ColorV2 ArmsColor = g_Menu.Config.ArmsChamsColor;
- switch (g_Menu.Config.ArmsChams)
- {
- case 1:
- if (g_Menu.Config.ArmsChamsIgnorez)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.ArmsChamsWireframe)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- MetallicLitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
- MetallicLitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
- break;
- case 2:
- if (g_Menu.Config.ArmsChamsIgnorez)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.ArmsChamsWireframe)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
- PlasticLitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- break;
- case 3:
- if (g_Menu.Config.ArmsChamsIgnorez)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.ArmsChamsWireframe)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- UnlitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
- UnlitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(UnlitChams);
- break;
- default:
- break;
- }
- }
- else if (g_Menu.Config.WeaponChams && strModelName.find("models/weapons") != std::string::npos)
- {
- ColorV2 WeaponColor = g_Menu.Config.WeaponChamsColor;
- switch (g_Menu.Config.WeaponChams)
- {
- case 1:
- if (g_Menu.Config.WeaponChamsIgnorez)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.WeaponChamsWireframe)
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- MetallicLitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
- MetallicLitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
- break;
- case 2:
- if (g_Menu.Config.WeaponChamsIgnorez)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.WeaponChamsWireframe)
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
- PlasticLitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- break;
- case 3:
- if (g_Menu.Config.WeaponChamsIgnorez)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- if (g_Menu.Config.WeaponChamsWireframe)
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
- else
- UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- UnlitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
- UnlitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
- g_pModelRender->ForcedMaterialOverride(UnlitChams);
- break;
- default:
- break;
- }
- }
- else if(g_Menu.Config.Chams != 0 && strModelName.find("models/player/") != std::string::npos)
- {
- C_BaseEntity* pEnt = g_pEntityList->GetClientEntity(info.index);
- if (pEnt)
- {
- if (pEnt->IsAlive())
- {
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(255 / 255.f, 0 / 255.f, 0 / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- oDrawModelExecute(ecx, context, state, info, matrix);
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(0 / 255.f, 255 / 255.f, 0 / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- oDrawModelExecute(ecx, context, state, info, matrix);
- }
- else
- {
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
- PlasticLitChams->ColorModulate(255 / 255.f, 255 / 255.f, 255 / 255.f);
- g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
- }
- }
- }
- if (strstr(ModelName, "models/player") && g_Menu.Config.Aimbot && g_Menu.Config.IsThirdperson && g::pLocalEntity->IsScoped())
- {
- if ((info.index != g_pEngine->GetLocalPlayer()))
- return;
- g_pRenderView->SetBlend(0.5f);
- }
- oDrawModelExecute(ecx, context, state, info, matrix);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement