Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. void __fastcall Hooks::SceneEnd(void *ecx, void *edx)
  2. {
  3. static auto oSceneEnd = g_Hooks.pRenderViewHook->GetOriginal<SceneEnd_t>(vtable_indexes::sceneEnd);
  4. oSceneEnd(ecx, edx);
  5.  
  6.  
  7.  
  8. for (int i = 1; i < g_pEngine->GetMaxClients(); ++i)
  9. {
  10. C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(i);
  11.  
  12. if (!pPlayerEntity
  13. || !pPlayerEntity->IsAlive()
  14. || pPlayerEntity->IsDormant()
  15. || !Globals::LocalPlayer)
  16. continue;
  17.  
  18. bool IsTeammate = pPlayerEntity->GetTeam() == Globals::LocalPlayer->GetTeam();
  19. bool IsEnemy = pPlayerEntity->GetTeam() != Globals::LocalPlayer->GetTeam();
  20. bool IsLocal = pPlayerEntity == Globals::LocalPlayer;
  21.  
  22.  
  23. static std::vector< IMaterial* > materials;
  24.  
  25. static bool once{ false };
  26. if (!once) {
  27. materials.push_back(create_material(true, false, false)); // material.
  28. materials.push_back(create_material(false, false, false, 0)); // flat.
  29. materials.push_back(create_material(true, false, true)); // material zignore.
  30. materials.push_back(create_material(false, false, true)); // flat zignore.
  31. once = true;
  32. }
  33.  
  34.  
  35. static std::vector< IMaterial* > materials2;
  36.  
  37. static bool once2{ false };
  38. if (!once2) {
  39. materials2.push_back(create_material(false, false, false, 0)); //Flat
  40. materials2.push_back(create_material(true, false, false)); // Material
  41. materials2.push_back(create_material(true, true, false)); // Wireframe
  42. materials2.push_back(g_pMaterialSys->FindMaterial("models/inventory_items/dogtags/dogtags_outline", "Model textures")); //Pulse
  43. once2 = true;
  44. }
  45.  
  46.  
  47. /*
  48. if (Globals::LocalPlayer) {
  49. float NormalColor[3] = { 1, 1, 1 };
  50. g_pRenderView->SetColorModulation(NormalColor);
  51. g_pModelRender->ForcedMaterialOverride(materials.at(0));
  52. Globals::LocalPlayer->DrawModel(1, 255);
  53. g_pModelRender->ForcedMaterialOverride(nullptr);
  54. }
  55. */
  56. 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 };
  57. 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 };
  58. 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 };
  59. 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 };
  60. 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 };
  61.  
  62. IMaterial* matEnemy = materials2.at(c_config::get().chamsenemies_model);
  63.  
  64. IMaterial* matLocal = materials2.at(c_config::get().localmodel);
  65.  
  66. if (IsEnemy) {
  67. if (c_config::get().chams_enemies) {
  68. if (c_config::get().chams_xqz_enemies) {
  69. g_pRenderView->SetBlend(c_config::get().chams_esp_color_a / 100.f);
  70. g_pModelRender->ForcedMaterialOverride(matEnemy);
  71. g_pRenderView->SetColorModulation(hid_color);
  72. pPlayerEntity->DrawModel(0x00000001, 255);
  73. }
  74.  
  75. g_pRenderView->SetBlend(c_config::get().chams_xqz_esp_color_a / 100.f);
  76. g_pModelRender->ForcedMaterialOverride(matEnemy);
  77. g_pRenderView->SetColorModulation(vis_color);
  78. pPlayerEntity->DrawModel(0x00000001, 255);
  79. }
  80. }
  81. else if (IsLocal && !Globals::LocalPlayer->IsScoped() && c_config::get().local_chams) {
  82. g_pRenderView->SetBlend(c_config::get().local_chams_color_a / 100.f);
  83. g_pModelRender->ForcedMaterialOverride(matLocal);
  84. g_pRenderView->SetColorModulation(local_color);
  85. pPlayerEntity->DrawModel(0x00000001, 255);
  86. }
  87.  
  88. #include "SDK/CEntity.h"
  89. }
  90.  
  91. g_pModelRender->ForcedMaterialOverride(nullptr);
  92.  
  93.  
  94.  
  95. for (auto i = 0; i < g_GlowManager->GetSize(); i++)
  96. {
  97. auto &glowObject = g_GlowManager->m_GlowObjectDefinitions[i];
  98. auto entity = reinterpret_cast<C_BaseEntity*>(glowObject.m_pEntity);
  99. auto m_pLocalPlayer = reinterpret_cast<C_BaseEntity*>(g_pEntityList->GetClientEntity(g_pEngine->GetLocalPlayer()));
  100.  
  101. if (!entity)
  102. continue;
  103.  
  104. if (!m_pLocalPlayer)
  105. continue;
  106.  
  107. if (glowObject.IsUnused())
  108. continue;
  109.  
  110. bool is_local_player = entity == m_pLocalPlayer;
  111. bool is_teammate = m_pLocalPlayer->GetTeam() == entity->GetTeam() && !is_local_player;
  112. bool IsEnemy = entity->GetTeam() != m_pLocalPlayer->GetTeam();
  113.  
  114. if (is_local_player) {
  115. if (c_config::get().glow_local && !m_pLocalPlayer->IsScoped()) {
  116. auto class_id = entity->GetClientClass()->ClassID;
  117.  
  118.  
  119. switch (class_id)
  120. {
  121. default:
  122. glowObject.m_flAlpha = 0.0f;
  123. break;
  124. case 40:
  125. glowObject.m_nGlowStyle = c_config::get().glow_mode_local;
  126. glowObject.m_flAlpha = c_config::get().local_glow_color_a / 255.f;
  127. break;
  128. }
  129.  
  130. glowObject.m_flRed = c_config::get().local_glow_color_r / 255.0f;
  131. glowObject.m_flGreen = c_config::get().local_glow_color_g / 255.0f;
  132. glowObject.m_flBlue = c_config::get().local_glow_color_b / 255.0f;
  133. glowObject.m_bRenderWhenOccluded = true;
  134. glowObject.m_bRenderWhenUnoccluded = false;
  135. }
  136. }
  137. else if (!is_teammate) {
  138. if (c_config::get().glow_enemies) {
  139. auto class_id = entity->GetClientClass()->ClassID;
  140.  
  141.  
  142. switch (class_id)
  143. {
  144. default:
  145. glowObject.m_flAlpha = 0.0f;
  146. break;
  147. case 40:
  148. glowObject.m_nGlowStyle = c_config::get().glow_mode;
  149. glowObject.m_flAlpha = c_config::get().glow_esp_color_a / 255.f;
  150. break;
  151. }
  152.  
  153. glowObject.m_flRed = c_config::get().glow_esp_color_r / 255.0f;
  154. glowObject.m_flGreen = c_config::get().glow_esp_color_g / 255.0f;
  155. glowObject.m_flBlue = c_config::get().glow_esp_color_b / 255.0f;
  156. glowObject.m_bRenderWhenOccluded = true;
  157. glowObject.m_bRenderWhenUnoccluded = false;
  158. }
  159. }
  160. else if (is_teammate) {
  161. if (c_config::get().glow_teammates) {
  162. auto class_id = entity->GetClientClass()->ClassID;
  163.  
  164.  
  165. switch (class_id)
  166. {
  167. default:
  168. glowObject.m_flAlpha = 0.0f;
  169. break;
  170. case 40:
  171. glowObject.m_nGlowStyle = 0;
  172. glowObject.m_flAlpha = c_config::get().glow_alpha_teammates / 255.f;
  173. break;
  174. }
  175.  
  176. glowObject.m_flRed = 180 / 255.0f;
  177. glowObject.m_flGreen = 60 / 255.0f;
  178. glowObject.m_flBlue = 120 / 255.0f;
  179. glowObject.m_bRenderWhenOccluded = true;
  180. glowObject.m_bRenderWhenUnoccluded = false;
  181. }
  182. }
  183.  
  184.  
  185.  
  186. }
  187.  
  188. if (c_config::get().removals[3]) {
  189. std::vector<const char*> vistasmoke_wireframe =
  190. {
  191. "particle/vistasmokev1/vistasmokev1_smokegrenade",
  192. };
  193.  
  194. std::vector<const char*> vistasmoke_nodraw =
  195. {
  196. "particle/vistasmokev1/vistasmokev1_fire",
  197. "particle/vistasmokev1/vistasmokev1_emods",
  198. "particle/vistasmokev1/vistasmokev1_emods_impactdust",
  199. };
  200.  
  201. for (auto mat_s : vistasmoke_wireframe)
  202. {
  203. IMaterial* mat = g_pMaterialSys->FindMaterial(mat_s, "Other textures");
  204. mat->SetMaterialVarFlag(MATERIAL_VAR_WIREFRAME, true); //wireframe
  205. }
  206.  
  207. for (auto mat_n : vistasmoke_nodraw)
  208. {
  209. IMaterial* mat = g_pMaterialSys->FindMaterial(mat_n, "Other textures");
  210. mat->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
  211. }
  212.  
  213. static auto smokecout = *(DWORD*)(linegoesthrusmoke + 0x8);
  214. *(int*)(smokecout) = 0;
  215. }
  216.  
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement