Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 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>(VT_Indexes::DrawModelExecute);
  4.  
  5. static IMaterial* dogtag = g_MatSystem->FindMaterial("models/inventory_items/dogtags/dogtags_outline", TEXTURE_GROUP_OTHER);
  6. static IMaterial* arms = g_Chams.CreateMaterial(false, true, true);
  7.  
  8. if (info.pModel)
  9. {
  10. std::string modelName = g_MdlInfo->GetModelName(info.pModel);
  11.  
  12. if (g_Config.Visuals_ArmsChams && modelName.find("arms") != std::string::npos)
  13. {
  14. arms->AlphaModulate(g_Config.Visuals_ArmsChamsColor.clr[3]);
  15. g_pRenderView->ModulateColor(g_Config.Visuals_ArmsChamsColor);
  16.  
  17. g_MdlRender->ForcedMaterialOverride(arms);
  18. oDrawModelExecute(ecx, context, state, info, matrix);
  19. g_MdlRender->ForcedMaterialOverride(nullptr);
  20. return;
  21. }
  22. }
  23.  
  24. oDrawModelExecute(ecx, context, state, info, matrix);
  25.  
  26. if (info.entity_index == G::pLocalPlayer->EntIndex() && (g_Config.Visuals_FakeAngleChams || g_Config.Visuals_FakeLagChams) && g_Config.AntiAim_Enabled)
  27. {
  28. Vector vBonePos, vOutPos;
  29.  
  30. static matrix3x4_t LastNetworkedBoneMatrix[128];
  31. matrix3x4_t BoneMatrix[128];
  32.  
  33. Vector delta = Vector(0.f, g_AntiAim.GetBestDesyncDelta(), 0.f);
  34.  
  35. for (int i = 0; i < 128; i++)
  36. {
  37. g_Math.MatrixAngle(delta, BoneMatrix[i]);
  38. g_Math.MultiplyMatrix(BoneMatrix[i], matrix[i]);
  39.  
  40. vBonePos = Vector(matrix[i][0][3], matrix[i][1][3], matrix[i][2][3]) - G::pLocalPlayer->GetAbsOrigin();
  41. g_Math.RotateVector(vBonePos, delta, vOutPos);
  42.  
  43. vOutPos += G::pLocalPlayer->GetAbsOrigin();
  44.  
  45. BoneMatrix[i][0][3] = vOutPos.x;
  46. BoneMatrix[i][1][3] = vOutPos.y;
  47. BoneMatrix[i][2][3] = vOutPos.z;
  48. }
  49.  
  50. if (G::bSendPacket)
  51. {
  52. for(int i = 0; i < 128; i++) g_Math.MatrixCopy(BoneMatrix[i], LastNetworkedBoneMatrix[i]);
  53. }
  54.  
  55. if (g_Config.Visuals_FakeAngleChams && g_Config.AntiAim_DesyncAA)
  56. {
  57. dogtag->AlphaModulate(g_Config.Visuals_FakeAngleChamsColor.clr[3]);
  58. g_pRenderView->ModulateColor(g_Config.Visuals_FakeAngleChamsColor);
  59. g_MdlRender->ForcedMaterialOverride(dogtag);
  60. oDrawModelExecute(ecx, context, state, info, BoneMatrix);
  61. }
  62.  
  63. if (G::pLocalPlayer->GetVelocity().Length2D() > 1.f && g_Config.Misc_FakeLagLimit > 1.f && g_Config.Visuals_FakeLagChams)
  64. {
  65. dogtag->AlphaModulate(g_Config.Visuals_FakeLagChamsColor.clr[3]);
  66. g_pRenderView->ModulateColor(g_Config.Visuals_FakeLagChamsColor);
  67. g_MdlRender->ForcedMaterialOverride(dogtag);
  68. oDrawModelExecute(ecx, context, state, info, LastNetworkedBoneMatrix);
  69. }
  70.  
  71. g_MdlRender->ForcedMaterialOverride(nullptr);
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement