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);
- C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
- C_BaseEntity* pLocal = Globals::LocalPlayer;
- float hand_chams[3] = { c_config::get().hand_chams_color_r / 255.f, c_config::get().hand_chams_color_g / 255.f, c_config::get().hand_chams_color_b / 255.f };
- 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 };
- static std::vector< IMaterial* > materials;
- static std::vector< IMaterial* > materialsWireframe;
- static std::vector< IMaterial*> materialsTestModels;
- static std::vector< IMaterial*> materialsTestHands;
- static bool once{ false };
- if (!once) {
- materials.push_back(create_material(false, false, false, 0)); // flat.
- materials.push_back(create_material(true, false, false)); // material.
- materials.push_back(g_pMaterialSys->FindMaterial("simple_regular_reflective", TEXTURE_GROUP_MODEL, true));
- //materials.push_back(create_material_metallic(false, false, false)); // metallic
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/dogtags/dogtags_outline", TEXTURE_GROUP_MODEL, true)); //pulsing shit from onetap
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("debug/debugambientcube", TEXTURE_GROUP_MODEL, true)); //some estrogenhook shit idk
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("debug/debugdrawflat", TEXTURE_GROUP_MODEL, true)); //idk what this is tbh
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/trophy_majors/gloss", TEXTURE_GROUP_MODEL, true)); //glass, This looks sick tbh. https://gyazo.com/62e5d52fc3730a1d9e3a442c5c15242f
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/trophy_majors/crystal_clear", TEXTURE_GROUP_MODEL, true)); // crystal
- materialsTestModels.push_back(g_pMaterialSys->FindMaterial("models/gibs/glass/glass", TEXTURE_GROUP_MODEL, true)); // dark chrome
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/dogtags/dogtags_outline", TEXTURE_GROUP_MODEL, true)); //pulsing shit from onetap
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("debug/debugambientcube", TEXTURE_GROUP_MODEL, true)); //some estrogenhook shit idk
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("debug/debugdrawflat", TEXTURE_GROUP_MODEL, true)); //idk what this is tbh
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/trophy_majors/gloss", TEXTURE_GROUP_MODEL, true)); //glass, This looks sick tbh. https://gyazo.com/62e5d52fc3730a1d9e3a442c5c15242f
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/trophy_majors/crystal_clear", TEXTURE_GROUP_MODEL, true)); // crystal
- materialsTestHands.push_back(g_pMaterialSys->FindMaterial("models/gibs/glass/glass", TEXTURE_GROUP_MODEL, true)); // dark chrome
- materialsWireframe.push_back(create_material(false, true, false, 0)); // flat.
- materialsWireframe.push_back(create_material(true, true, false)); // material.
- //materialsWireframe.push_back(create_material_metallic(false, false, true)); // metallic
- once = true;
- }
- IMaterial* chamsType;
- IMaterial* chamsTypeLocal;
- IMaterial* chamsTypeHands;
- //switch for enemy chams type
- switch (c_config::get().chams_enemies) {
- default:
- break;
- case 1: {
- if (!c_config::get().chams_enemies_wireframe)
- chamsType = materials.at(0);
- else
- chamsType = materialsWireframe.at(0);
- break;
- }
- case 2: {
- if (!c_config::get().chams_enemies_wireframe)
- chamsType = materials.at(1);
- else
- chamsType = materialsWireframe.at(1);
- break;
- }
- case 3: {
- /*if (!c_config::get().chams_enemies_wireframe)
- chamsType = materials.at(2);
- else*/
- chamsType = materials.at(2);
- break;
- }
- }
- //switch for local chams type
- switch (c_config::get().local_chams) {
- default:
- break;
- case 1: {
- if (!c_config::get().chams_local_wireframe)
- chamsTypeLocal = materials.at(0);
- else
- chamsTypeLocal = materialsWireframe.at(0);
- break;
- }
- case 2: {
- if (!c_config::get().chams_local_wireframe)
- chamsTypeLocal = materials.at(1);
- else
- chamsTypeLocal = materialsWireframe.at(1);
- break;
- }
- case 3: {
- /*if (!c_config::get().chams_local_wireframe)
- chamsTypeLocal = materials.at(2);
- else*/
- chamsTypeLocal = materials.at(2);
- break;
- }
- case 5: {
- chamsTypeLocal = materialsTestModels.at(0);
- }
- }
- switch (c_config::get().hand_chams) {
- default:
- break;
- case 1: {
- if (!c_config::get().hand_chams_wireframe)
- chamsTypeHands = materials.at(0);
- else
- chamsTypeHands = materialsWireframe.at(0);
- break;
- }
- case 2: {
- if (!c_config::get().hand_chams_wireframe)
- chamsTypeHands = materials.at(1);
- else
- chamsTypeHands = materialsWireframe.at(1);
- break;
- }
- case 3: {
- /*if (!c_config::get().hand_chams_wireframe)
- chamsTypeHands = materials.at(2);
- else*/
- chamsTypeHands = materials.at(2);
- break;
- }
- case 5: {
- chamsTypeHands = materialsTestHands.at(0);
- }
- }
- if (pPlayerEntity && pPlayerEntity->IsAlive() && !pPlayerEntity->IsDormant() && strstr(ModelName, "models/player") && Globals::LocalPlayer && pPlayerEntity == Globals::LocalPlayer) {
- if (Globals::LocalPlayer->IsScoped())
- {
- g_pRenderView->SetBlend(0.4f);
- }
- else if (c_config::get().local_chams != 0) {
- if (c_config::get().local_chams == 4) {
- g_pRenderView->SetBlend(0.f);
- }
- else {
- g_pRenderView->SetColorModulation(local_color);
- g_pRenderView->SetBlend(c_config::get().local_chams_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(chamsTypeLocal);
- }
- }
- oDrawModelExecute(ecx, context, state, info, matrix);
- }
- if (strstr(ModelName, "models/player") && pPlayerEntity && pLocal && !pPlayerEntity->IsDormant() && pPlayerEntity->IsAlive()) {
- if (c_config::get().chams_enemies != 0) {
- if (pPlayerEntity->GetTeam() != pLocal->GetTeam() && !pPlayerEntity->IsDormant() && pLocal && pPlayerEntity != pLocal) {
- if (!c_config::get().chams_xqz_enemies) {
- if (!chamsType || chamsType->IsErrorMaterial())
- return;
- g_pRenderView->SetColorModulation(vis_color);
- g_pRenderView->SetBlend(c_config::get().chams_esp_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(chamsType);
- }
- else {
- if (!chamsType || chamsType->IsErrorMaterial())
- return;
- if (pLocal->IsAlive())
- {
- g_pRenderView->SetColorModulation(hid_color);
- g_pRenderView->SetBlend(c_config::get().chams_esp_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(chamsType);
- chamsType->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- oDrawModelExecute(ecx, context, state, info, matrix);
- }
- chamsType->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
- g_pRenderView->SetColorModulation(vis_color);
- g_pRenderView->SetBlend(c_config::get().chams_xqz_esp_color_a / 100.f);
- g_pModelRender->ForcedMaterialOverride(chamsType);
- }
- }
- }
- }
- auto HandChams = c_config::get().hand_chams;
- if (strstr(ModelName, "arms") && c_config::get().hand_chams > 0) {
- if (HandChams == 4) {
- g_pRenderView->SetBlend(0.f);
- }
- else {
- g_pRenderView->SetBlend(c_config::get().hand_chams_color_a / 100.f);
- g_pRenderView->SetColorModulation(hand_chams);
- g_pModelRender->ForcedMaterialOverride(chamsTypeHands);
- }
- oDrawModelExecute(ecx, context, state, info, matrix);
- }
- oDrawModelExecute(ecx, context, state, info, matrix);
- g_pModelRender->ForcedMaterialOverride(NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement