Advertisement
Guest User

Untitled

a guest
May 26th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.58 KB | None | 0 0
  1. void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, IMatRenderContext* context, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4_t* matrix)
  2. {
  3.     static auto oDrawModelExecute = g_Hooks.pModelHook->GetOriginal<DrawModelExecute_t>(vtable_indexes::dme);
  4.  
  5.     const char* ModelName = g_pModelInfo->GetModelName((model_t*)info.pModel);
  6.     const std::string strModelName = g_pModelInfo->GetModelName((model_t*)info.pModel);
  7.  
  8.     static IMaterial* MetallicLitChams = nullptr;
  9.     static IMaterial* PlasticLitChams = nullptr;
  10.     static IMaterial* UnlitChams = nullptr;
  11.  
  12.     static bool ResetMaterial = false;
  13.  
  14.     if (!g::pLocalEntity || !g_pEngine->IsInGame() || !g_pEngine->IsConnected())
  15.     {
  16.         MetallicLitChams = nullptr;
  17.         PlasticLitChams = nullptr;
  18.         UnlitChams = nullptr;
  19.         return;
  20.     }
  21.  
  22.     if (MetallicLitChams == nullptr || PlasticLitChams == nullptr || UnlitChams == nullptr)
  23.     {
  24.         MetallicLitChams = g_pMaterialSys->FindMaterial("MetallicLitChams", "Model textures");
  25.         PlasticLitChams = g_pMaterialSys->FindMaterial("PlasticLitChams", "Model textures");
  26.         UnlitChams = g_pMaterialSys->FindMaterial("UnlitChams", "Model textures");
  27.         return;
  28.     }
  29.  
  30.     if (!g_pEngine->IsInGame() || !g_pEngine->IsConnected())
  31.     {
  32.         if (ResetMaterial)
  33.         {
  34.             MetallicLitChams = nullptr;
  35.             PlasticLitChams = nullptr;
  36.             UnlitChams = nullptr;
  37.             ResetMaterial = false;
  38.         }
  39.  
  40.         return;
  41.     }
  42.     else
  43.         ResetMaterial = true;
  44.  
  45.     C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
  46.  
  47.     if (!g_pEngine->IsInGame() || !g_pEngine->IsConnected())
  48.         return;
  49.  
  50.     if (g_Menu.Config.Nightmode)
  51.     {
  52.         if (strstr(ModelName, "models/props"))
  53.         {
  54.             g_pRenderView->SetBlend(g_Menu.Config.NightmodeBlend / 255.f);
  55.         }
  56.     }
  57.  
  58.     if (g_Menu.Config.SleeveChams && strstr(ModelName, "v_sleeve"))
  59.     {
  60.         ColorV2 SleeveColor = g_Menu.Config.SleeveChamsColor;
  61.         switch (g_Menu.Config.SleeveChams)
  62.         {
  63.         case 1:
  64.             if (g_Menu.Config.SleeveChamsIgnorez)
  65.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  66.             else
  67.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  68.             if (g_Menu.Config.SleeveChamsWireframe)
  69.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  70.             else
  71.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  72.             MetallicLitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
  73.             MetallicLitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
  74.             g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
  75.             break;
  76.         case 2:
  77.             if (g_Menu.Config.SleeveChamsIgnorez)
  78.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  79.             else
  80.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  81.             if (g_Menu.Config.SleeveChamsWireframe)
  82.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  83.             else
  84.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  85.             PlasticLitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
  86.             PlasticLitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
  87.             g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  88.             break;
  89.         case 3:
  90.             if (g_Menu.Config.SleeveChamsIgnorez)
  91.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  92.             else
  93.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  94.             if (g_Menu.Config.SleeveChamsWireframe)
  95.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  96.             else
  97.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  98.             UnlitChams->ColorModulate(SleeveColor.red / 255.f, SleeveColor.green / 255.f, SleeveColor.blue / 255.f);
  99.             UnlitChams->AlphaModulate(g_Menu.Config.SleeveChamsTransparency / 255.f);
  100.             g_pModelRender->ForcedMaterialOverride(UnlitChams);
  101.             break;
  102.         default:
  103.             break;
  104.         }
  105.     }
  106.     else if (g_Menu.Config.ArmsChams && strstr(ModelName, "arms"))
  107.     {
  108.         ColorV2 ArmsColor = g_Menu.Config.ArmsChamsColor;
  109.         switch (g_Menu.Config.ArmsChams)
  110.         {
  111.         case 1:
  112.             if (g_Menu.Config.ArmsChamsIgnorez)
  113.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  114.             else
  115.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  116.             if (g_Menu.Config.ArmsChamsWireframe)
  117.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  118.             else
  119.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  120.             MetallicLitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
  121.             MetallicLitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
  122.             g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
  123.             break;
  124.         case 2:
  125.             if (g_Menu.Config.ArmsChamsIgnorez)
  126.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  127.             else
  128.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  129.             if (g_Menu.Config.ArmsChamsWireframe)
  130.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  131.             else
  132.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  133.             PlasticLitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
  134.             PlasticLitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
  135.             g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  136.             break;
  137.         case 3:
  138.             if (g_Menu.Config.ArmsChamsIgnorez)
  139.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  140.             else
  141.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  142.             if (g_Menu.Config.ArmsChamsWireframe)
  143.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  144.             else
  145.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  146.             UnlitChams->ColorModulate(ArmsColor.red / 255.f, ArmsColor.green / 255.f, ArmsColor.blue / 255.f);
  147.             UnlitChams->AlphaModulate(g_Menu.Config.ArmsChamsTransparency / 255.f);
  148.             g_pModelRender->ForcedMaterialOverride(UnlitChams);
  149.             break;
  150.         default:
  151.             break;
  152.         }
  153.        
  154.     }
  155.     else if (g_Menu.Config.WeaponChams && strModelName.find("models/weapons") != std::string::npos)
  156.     {
  157.         ColorV2 WeaponColor = g_Menu.Config.WeaponChamsColor;
  158.         switch (g_Menu.Config.WeaponChams)
  159.         {
  160.         case 1:
  161.             if (g_Menu.Config.WeaponChamsIgnorez)
  162.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  163.             else
  164.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  165.             if (g_Menu.Config.WeaponChamsWireframe)
  166.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  167.             else
  168.                 MetallicLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  169.             MetallicLitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
  170.             MetallicLitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
  171.             g_pModelRender->ForcedMaterialOverride(MetallicLitChams);
  172.             break;
  173.         case 2:
  174.             if (g_Menu.Config.WeaponChamsIgnorez)
  175.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  176.             else
  177.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  178.             if (g_Menu.Config.WeaponChamsWireframe)
  179.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  180.             else
  181.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  182.             PlasticLitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
  183.             PlasticLitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
  184.             g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  185.             break;
  186.         case 3:
  187.             if (g_Menu.Config.WeaponChamsIgnorez)
  188.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  189.             else
  190.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  191.             if (g_Menu.Config.WeaponChamsWireframe)
  192.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true);
  193.             else
  194.                 UnlitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  195.             UnlitChams->ColorModulate(WeaponColor.red / 255.f, WeaponColor.green / 255.f, WeaponColor.blue / 255.f);
  196.             UnlitChams->AlphaModulate(g_Menu.Config.WeaponChamsTransparency / 255.f);
  197.             g_pModelRender->ForcedMaterialOverride(UnlitChams);
  198.             break;
  199.         default:
  200.             break;
  201.         }
  202.     }
  203.     else if(g_Menu.Config.Chams != 0 && strModelName.find("models/player/") != std::string::npos)
  204.     {
  205.         C_BaseEntity* pEnt = g_pEntityList->GetClientEntity(info.index);
  206.         if (pEnt)
  207.         {
  208.             if (pEnt->IsAlive())
  209.             {
  210.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
  211.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  212.                 PlasticLitChams->ColorModulate(255 / 255.f, 0 / 255.f, 0 / 255.f);
  213.                 g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  214.                 oDrawModelExecute(ecx, context, state, info, matrix);
  215.  
  216.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  217.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  218.                 PlasticLitChams->ColorModulate(0 / 255.f, 255 / 255.f, 0 / 255.f);
  219.                 g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  220.                 oDrawModelExecute(ecx, context, state, info, matrix);
  221.             }
  222.             else
  223.             {
  224.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
  225.                 PlasticLitChams->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, false);
  226.                 PlasticLitChams->ColorModulate(255 / 255.f, 255 / 255.f, 255 / 255.f);
  227.                 g_pModelRender->ForcedMaterialOverride(PlasticLitChams);
  228.             }
  229.         }
  230.     }
  231.  
  232.     if (strstr(ModelName, "models/player") && g_Menu.Config.Aimbot && g_Menu.Config.IsThirdperson && g::pLocalEntity->IsScoped())
  233.     {
  234.         if ((info.index != g_pEngine->GetLocalPlayer()))
  235.             return;
  236.         g_pRenderView->SetBlend(0.5f);
  237.     }
  238.  
  239.     oDrawModelExecute(ecx, context, state, info, matrix);
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement