Advertisement
chiggalord

hooks.cpp

Dec 23rd, 2018
776
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 72.26 KB | None | 0 0
  1. #include "..\includes.h"
  2. #include "../ImGui/imgui.h"
  3. #include "../ImGui/imgui_internal.h"
  4. #include "../ImGui/dx9/imgui_impl_dx9.h"
  5. #include "hooks.h"
  6. #include "../UTILS/interfaces.h"
  7. #include "../UTILS/offsets.h"
  8. #include "../UTILS/NetvarHookManager.h"
  9. #include "../UTILS/render.h"
  10. #include "../FEATURES/NewEventLog.h"
  11. #include "../SDK/CInput.h"
  12. #include "../SDK/IClient.h"
  13. #include "../SDK/CPanel.h"
  14. #include "../SDK/ConVar.h"
  15. #include "../SDK/CGlowObjectManager.h"
  16. #include "../SDK/IEngine.h"
  17. #include "../SDK/CTrace.h"
  18. #include "../SDK/CClientEntityList.h"
  19. #include "../SDK/RecvData.h"
  20. #include "../SDK/CBaseAnimState.h"
  21. #include "../SDK/ModelInfo.h"
  22. #include "../SDK/ModelRender.h"
  23. #include "../SDK/RenderView.h"
  24. #include "../SDK/CTrace.h"
  25. #include "../SDK/CViewSetup.h"
  26. #include "../SDK/CGlobalVars.h"
  27. #include "../SDK/CPrediction.h"
  28.  
  29. #include "../FEATURES/Movement.h"
  30. #include "../FEATURES/Visuals.h"
  31. #include "../FEATURES/Chams.h"
  32. #include "../FEATURES/AntiAim.h"
  33. #include "../FEATURES/Aimbot.h"
  34. #include "../FEATURES/Resolver.h"
  35. #include "../FEATURES/Backtracking.h"
  36. #include "../FEATURES/FakeWalk.h"
  37. #include "../FEATURES/FakeLag.h"
  38. #include "../FEATURES/EnginePred.h"
  39. #include "../FEATURES/EventListener.h"
  40. #include "../FEATURES/GrenadePrediction.h"
  41. #include "../FEATURES/Legitbot.h"
  42. #include "../FEATURES/Flashlight.h"
  43. #include "../FEATURES/GloveChanger.h"
  44. #include "../FEATURES/SkinChanger.h"
  45. #include "../FEATURES/D9Visuals.h"
  46. #include "../shit.h"
  47. #include <intrin.h>
  48. #pragma comment (lib, "d3d9.lib")
  49. #pragma comment (lib, "d3dx9.lib")
  50. namespace INIT
  51. {
  52. HMODULE Dll;
  53. HWND Window;
  54. WNDPROC OldWindow;
  55. }
  56. static bool menu_open = false;
  57. static bool d3d_init = false;
  58. bool PressedKeys[256] = {};
  59. const char* merixids[] =
  60. {
  61. "1","2","3","4","5","6", "7", "8", "9",
  62. "Q","W","E","R","T","Y","U","I","O","P",
  63. "A","S","D","F","G","H","J","K","L",
  64. "Z","X","C","V","B","N","M",".","\\","|", "/","}","{","[","]",
  65. "<",">","?","'"
  66. };
  67. static char ConfigNamexd[64] = { 0 };
  68. namespace ImGui
  69. {
  70.  
  71. static auto vector_getterxd = [](void* vec, int idx, const char** out_text)
  72. {
  73. auto& vector = *static_cast<std::vector<std::string>*>(vec);
  74. if (idx < 0 || idx >= static_cast<int>(vector.size())) { return false; }
  75. *out_text = vector.at(idx).c_str();
  76. return true;
  77. };
  78.  
  79. IMGUI_API bool ComboBoxArrayxd(const char* label, int* currIndex, std::vector<std::string>& values)
  80. {
  81. if (values.empty()) { return false; }
  82. return Combo(label, currIndex, vector_getterxd,
  83. static_cast<void*>(&values), values.size());
  84. }
  85. }
  86. ImFont* bigmenu_font;
  87. ImFont* menu_font;
  88. ImFont* smallmenu_font;
  89. //--- Other Globally Used Variables ---///
  90. static bool tick = false;
  91. static int ground_tick;
  92. Vector vecAimPunch, vecViewPunch;
  93. Vector* pAimPunch = nullptr;
  94. Vector* pViewPunch = nullptr;
  95.  
  96. //--- Declare Signatures and Patterns Here ---///
  97. static auto CAM_THINK = UTILS::FindSignature("client_panorama.dll", "85 C0 75 30 38 86");
  98. static auto linegoesthrusmoke = UTILS::FindPattern("client_panorama.dll", (PBYTE)"\x55\x8B\xEC\x83\xEC\x08\x8B\x15\x00\x00\x00\x00\x0F\x57\xC0", "xxxxxxxx????xxx");
  99.  
  100. //--- Tick Counting ---//
  101. void ground_ticks()
  102. {
  103. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  104.  
  105. if (!local_player)
  106. return;
  107.  
  108. if (local_player->GetFlags() & FL_ONGROUND)
  109. ground_tick++;
  110. else
  111. ground_tick = 0;
  112. }
  113.  
  114. namespace HOOKS
  115. {
  116. CreateMoveFn original_create_move;
  117. PaintTraverseFn original_paint_traverse;
  118. PaintFn original_paint;
  119. FrameStageNotifyFn original_frame_stage_notify;
  120. DrawModelExecuteFn original_draw_model_execute;
  121. SceneEndFn original_scene_end;
  122. TraceRayFn original_trace_ray;
  123. OverrideViewFn original_override_view;
  124. RenderViewFn original_render_view;
  125. SvCheatsGetBoolFn original_get_bool;
  126. GetViewmodelFOVFn original_viewmodel_fov;
  127.  
  128. vfunc_hook fireevent;
  129. vfunc_hook directz;
  130.  
  131. VMT::VMTHookManager iclient_hook_manager;
  132. VMT::VMTHookManager panel_hook_manager;
  133. VMT::VMTHookManager paint_hook_manager;
  134. VMT::VMTHookManager model_render_hook_manager;
  135. VMT::VMTHookManager scene_end_hook_manager;
  136. VMT::VMTHookManager render_view_hook_manager;
  137. VMT::VMTHookManager trace_hook_manager;
  138. VMT::VMTHookManager net_channel_hook_manager;
  139. VMT::VMTHookManager override_view_hook_manager;
  140. VMT::VMTHookManager input_table_manager;
  141. VMT::VMTHookManager get_bool_manager;
  142. std::string sPanel = ("FocusOverlayPanel");
  143. bool __stdcall HookedCreateMove(float sample_input_frametime, SDK::CUserCmd* cmd)
  144. {
  145. if (!cmd || cmd->command_number == 0)
  146. return false;
  147.  
  148. uintptr_t* FPointer; __asm { MOV FPointer, EBP }
  149. byte* SendPacket = (byte*)(*FPointer - 0x1C);
  150. if (!SendPacket) return false;
  151.  
  152. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  153. if (!local_player) return false;
  154.  
  155. GLOBAL::should_send_packet = *SendPacket;
  156. GLOBAL::originalCMD = *cmd;
  157. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  158. {
  159. GrenadePrediction::instance().Tick(cmd->buttons);
  160. if (SETTINGS::settings.aim_type == 0)
  161. slidebitch->do_fakewalk(cmd);
  162.  
  163. if (!GetAsyncKeyState(0x56))
  164. fakelag->do_fakelag(cmd);
  165.  
  166. if (SETTINGS::settings.bhop_bool) movement->bunnyhop(cmd);
  167. if (SETTINGS::settings.duck_bool) movement->duckinair(cmd);
  168.  
  169. if (SETTINGS::settings.misc_clantag) visuals->Clantag();
  170. prediction->run_prediction(cmd);
  171. {
  172. if (SETTINGS::settings.strafe_bool) movement->autostrafer(cmd);
  173.  
  174. if (SETTINGS::settings.aim_type == 0 && SETTINGS::settings.aim_bool)
  175. {
  176. aimbot->run_aimbot(cmd);
  177. backtracking->backtrack_player(cmd);
  178. }
  179.  
  180. if (SETTINGS::settings.aim_type == 1 && SETTINGS::settings.aim_bool)
  181. {
  182. if (GetAsyncKeyState(UTILS::INPUT::input_handler.keyBindings(SETTINGS::settings.legittrigger_key)) && SETTINGS::settings.legittrigger_bool)
  183. legitbot->triggerbot(cmd);
  184. backtracking->run_legit(cmd);
  185. }
  186.  
  187. if (SETTINGS::settings.aa_bool)
  188. {
  189. antiaim->do_antiaim(cmd);
  190. antiaim->fix_movement(cmd);
  191. //ground_ticks();
  192. }
  193. }
  194. prediction->end_prediction(cmd);
  195.  
  196. if (!GLOBAL::should_send_packet)
  197. GLOBAL::real_angles = cmd->viewangles;
  198. else
  199. {
  200. GLOBAL::FakePosition = local_player->GetAbsOrigin();
  201. GLOBAL::fake_angles = cmd->viewangles;
  202. }
  203.  
  204. }
  205. *SendPacket = GLOBAL::should_send_packet;
  206. cmd->move = antiaim->fix_movement(cmd, GLOBAL::originalCMD);
  207. if (SETTINGS::settings.aa_pitch < 2 || SETTINGS::settings.aa_pitch1_type < 2 || SETTINGS::settings.aa_pitch2_type < 2)
  208. UTILS::ClampLemon(cmd->viewangles);
  209. return false;
  210. }
  211.  
  212. void __stdcall HookedPaintTraverse(int VGUIPanel, bool ForceRepaint, bool AllowForce)
  213. {
  214. std::string panel_name = INTERFACES::Panel->GetName(VGUIPanel);
  215. if (panel_name == "HudZoom" && SETTINGS::settings.scope_bool) return;
  216. if (panel_name == "FocusOverlayPanel")
  217. {
  218. if (FONTS::ShouldReloadFonts())
  219. FONTS::InitFonts();
  220.  
  221. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  222. {
  223. GrenadePrediction::instance().Paint();
  224. FEATURES::MISC::in_game_logger.Do();
  225. auto matpostprocess = INTERFACES::cvar->FindVar("mat_postprocess_enable");
  226. matpostprocess->fnChangeCallback = 0;
  227. matpostprocess->SetValue(SETTINGS::settings.matpostprocessenable);
  228.  
  229. visuals->ModulateWorld();
  230.  
  231. if (SETTINGS::settings.esp_bool)
  232. {
  233. visuals->Draw();
  234. visuals->ClientDraw();
  235. visuals->Drawmodels();
  236. }
  237. Flashlight.RunFrame();
  238. }
  239.  
  240. /*MENU::PPGUI_PP_GUI::Begin();
  241. MENU::Do();
  242. MENU::PPGUI_PP_GUI::End();
  243.  
  244. UTILS::INPUT::input_handler.Update();*/
  245.  
  246.  
  247.  
  248. // visuals->LogEvents();
  249. }
  250.  
  251.  
  252. for (int i = 0; i < 4; i++)
  253. {
  254. for (int j = 0; j < 4; j++)
  255. {
  256. viewMatrix[i][j] = INTERFACES::Engine->WorldToScreenMatrix()[i][j];
  257. }
  258. }
  259. original_paint_traverse(INTERFACES::Panel, VGUIPanel, ForceRepaint, AllowForce);
  260.  
  261. const char* pszPanelName = INTERFACES::Panel->GetName(VGUIPanel);
  262.  
  263. if (!strstr(pszPanelName, sPanel.data()))
  264. return;
  265.  
  266.  
  267. INTERFACES::Panel->SetMouseInputEnabled(VGUIPanel, menu_open);
  268. }
  269. void __fastcall HookedFrameStageNotify(void* ecx, void* edx, int stage)
  270. {
  271. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  272. if (!local_player) return;
  273. Vector vecAimPunch, vecViewPunch;
  274. Vector* pAimPunch = nullptr; Vector* pViewPunch = nullptr;
  275.  
  276. switch (stage)
  277. {
  278. case FRAME_NET_UPDATE_POSTDATAUPDATE_START:
  279. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  280. {
  281. GloveChanger();
  282. xdSkinchanger();
  283. for (int i = 1; i <= 65; i++)
  284. {
  285. auto entity = INTERFACES::ClientEntityList->GetClientEntity(i);
  286. if (!entity) continue;
  287.  
  288. bool is_local_player = entity == local_player;
  289. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  290.  
  291. if (is_local_player) continue;
  292. if (is_teammate) continue;
  293. if (entity->GetHealth() <= 0) continue;
  294. if (entity->GetIsDormant()) continue;
  295.  
  296. if (SETTINGS::settings.aim_type == 0 && SETTINGS::settings.resolve_bool)
  297. resolver->resolve(entity);
  298. }
  299. } break;
  300. case FRAME_NET_UPDATE_POSTDATAUPDATE_END:
  301. break;
  302. case FRAME_RENDER_START:
  303. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  304. {
  305. if (in_tp)
  306. {
  307. *(Vector*)((DWORD)local_player + 0x31C8) = Vector(GLOBAL::real_angles.x, GLOBAL::real_angles.y, 0.f);
  308.  
  309. INTERFACES::pPrediction->SetLocalViewAngles(GLOBAL::real_angles);
  310. local_player->UpdateClientSideAnimation();
  311. INTERFACES::pPrediction->SetLocalViewAngles(GLOBAL::fake_angles);
  312.  
  313. }
  314. for (int i = 1; i <= 65; i++)
  315. {
  316. auto entity = INTERFACES::ClientEntityList->GetClientEntity(i);
  317. if (!entity) continue;
  318. if (entity == local_player) continue;
  319.  
  320. *(int*)((uintptr_t)entity + 0xA30) = INTERFACES::Globals->framecount;
  321. *(int*)((uintptr_t)entity + 0xA28) = 0;
  322. }
  323. } break;
  324.  
  325. case FRAME_NET_UPDATE_START:
  326. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  327. {
  328. if (SETTINGS::settings.beam_bool)
  329. visuals->DrawBulletBeams();
  330. } break;
  331. case FRAME_NET_UPDATE_END:
  332. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  333. {
  334. for (int i = 1; i < 65; i++)
  335. {
  336. auto entity = INTERFACES::ClientEntityList->GetClientEntity(i);
  337.  
  338. if (!entity)
  339. continue;
  340.  
  341. if (!local_player)
  342. continue;
  343.  
  344. bool is_local_player = entity == local_player;
  345. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  346.  
  347. if (is_local_player)
  348. continue;
  349.  
  350. if (is_teammate)
  351. continue;
  352.  
  353. if (entity->GetHealth() <= 0)
  354. continue;
  355.  
  356. if (SETTINGS::settings.aim_type == 0)
  357. backtracking->DisableInterpolation(entity);
  358. }
  359. }
  360. break;
  361. }
  362. original_frame_stage_notify(ecx, stage);
  363. }
  364. void __fastcall HookedDrawModelExecute(void* ecx, void* edx, SDK::IMatRenderContext* context, const SDK::DrawModelState_t& state, const SDK::ModelRenderInfo_t& render_info, matrix3x4_t* matrix)
  365. {
  366. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  367. {
  368. std::string ModelName = INTERFACES::ModelInfo->GetModelName(render_info.pModel);
  369.  
  370. if (ModelName.find("v_sleeve") != std::string::npos)
  371. {
  372. SDK::IMaterial* material = INTERFACES::MaterialSystem->FindMaterial(ModelName.c_str(), TEXTURE_GROUP_MODEL);
  373. if (!material) return;
  374. material->SetMaterialVarFlag(SDK::MATERIAL_VAR_NO_DRAW, true);
  375. INTERFACES::ModelRender->ForcedMaterialOverride(material);
  376. }
  377.  
  378. }
  379. original_draw_model_execute(ecx, context, state, render_info, matrix);
  380. }
  381. void __fastcall HookedSceneEnd(void* ecx, void* edx)
  382. {
  383. original_scene_end(ecx);
  384. static SDK::IMaterial* ignorez = chams->CreateMaterialBasic(true, true, false);
  385. static SDK::IMaterial* notignorez = chams->CreateMaterialBasic(false, true, false);
  386. static SDK::IMaterial* ignorez_metallic = chams->CreateMaterialMetallic(true, true, false);
  387. static SDK::IMaterial* notignorez_metallic = chams->CreateMaterialMetallic(false, true, false);
  388.  
  389. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  390. {
  391. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  392. if (!local_player) return;
  393. CColor color = CColor(SETTINGS::settings.glow_col[0]*255, SETTINGS::settings.glow_col[1] * 255, SETTINGS::settings.glow_col[2] * 255, SETTINGS::settings.glow_col[3] * 255), colorTeam = CColor(SETTINGS::settings.teamglow_color[0]*255, SETTINGS::settings.teamglow_color[1] * 255, SETTINGS::settings.teamglow_color[2] * 255, SETTINGS::settings.teamglow_color[3] * 255), colorlocal = CColor(SETTINGS::settings.glowlocal_col[0]*255, SETTINGS::settings.glowlocal_col[1] * 255, SETTINGS::settings.glowlocal_col[2] * 255, SETTINGS::settings.glowlocal_col[3] * 255);
  394. for (int i = 1; i < 65; i++)
  395. {
  396. if (SETTINGS::settings.fakechams)
  397. {
  398. auto pLocal = reinterpret_cast<SDK::CBaseEntity*>(INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer()));
  399. if (pLocal && pLocal->IsAlive())
  400. {
  401. static SDK::IMaterial* mat = chams->CreateMaterialBasic(false, true, false);
  402. if (mat)
  403. {
  404. Vector OrigAng;
  405. OrigAng = pLocal->GetEyeAngles();
  406. pLocal->SetAngle2(Vector(0, GLOBAL::fake_angles.y, 0));
  407. bool LbyColor = false;
  408. mat->ColorModulate(CColor(SETTINGS::settings.fakechamscol[0]*255, SETTINGS::settings.fakechamscol[1] * 255, SETTINGS::settings.fakechamscol[2] * 255, SETTINGS::settings.fakechamscol[3] * 255));
  409. INTERFACES::ModelRender->ForcedMaterialOverride(mat);
  410. pLocal->DrawModel(0x1, 150);
  411. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  412. pLocal->SetAngle2(OrigAng);
  413. }
  414. }
  415. }
  416.  
  417. auto entity = INTERFACES::ClientEntityList->GetClientEntity(i);
  418.  
  419. if (!entity) continue;
  420. if (!local_player) continue;
  421.  
  422. bool is_local_player = entity == local_player;
  423. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  424. auto ignorezmaterial = SETTINGS::settings.chamstype == 0 ? ignorez_metallic : ignorez;
  425. auto notignorezmaterial = SETTINGS::settings.chamstype == 0 ? notignorez_metallic : notignorez;
  426. if (is_local_player)
  427. {
  428. switch (SETTINGS::settings.localchams)
  429. {
  430. case 0: continue; break;
  431. case 1:
  432. local_player->SetAbsOrigin(GLOBAL::FakePosition);
  433. local_player->DrawModel(0x1, 255);
  434. local_player->SetAbsOrigin(local_player->GetAbsOrigin());
  435. continue; break;
  436. case 2:
  437. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.localchams_col[0]*255, SETTINGS::settings.localchams_col[1] * 255, SETTINGS::settings.localchams_col[2] * 255, SETTINGS::settings.localchams_col[3] * 255));
  438. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  439. local_player->DrawModel(0x1, 255);
  440. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  441. continue; break;
  442. case 3:
  443. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.localchams_col[0] * 255, SETTINGS::settings.localchams_col[1] * 255, SETTINGS::settings.localchams_col[2] * 255, SETTINGS::settings.localchams_col[3] * 255));
  444. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  445. local_player->SetAbsOrigin(GLOBAL::FakePosition);
  446. local_player->DrawModel(0x1, 255);
  447. local_player->SetAbsOrigin(local_player->GetAbsOrigin());
  448. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  449. continue; break;
  450. }
  451. }
  452.  
  453. if (entity->GetHealth() <= 0) continue;
  454. if (entity->GetIsDormant()) continue;
  455. if (entity->GetClientClass()->m_ClassID != 38) continue;
  456.  
  457. if (is_teammate)
  458. {
  459. if (entity && SETTINGS::settings.chamsteam == 2)
  460. {
  461. ignorezmaterial->ColorModulate(CColor(SETTINGS::settings.teaminvis_color[0]*255, SETTINGS::settings.teaminvis_color[1] * 255, SETTINGS::settings.teaminvis_color[2] * 255, SETTINGS::settings.teaminvis_color[3] * 255));
  462. INTERFACES::ModelRender->ForcedMaterialOverride(ignorezmaterial);
  463. entity->DrawModel(0x1, 255);
  464.  
  465. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.teamvis_color[0] * 255, SETTINGS::settings.teamvis_color[1] * 255, SETTINGS::settings.teamvis_color[2] * 255, SETTINGS::settings.teamvis_color[3] * 255));
  466. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  467. entity->DrawModel(0x1, 255);
  468.  
  469. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  470. }
  471. else if (entity && SETTINGS::settings.chamsteam == 1)
  472. {
  473. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.teamvis_color[0]*255, SETTINGS::settings.teamvis_color[1] * 255, SETTINGS::settings.teamvis_color[2] * 255, SETTINGS::settings.teamvis_color[3] * 255));
  474. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  475. entity->DrawModel(0x1, 255);
  476.  
  477. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  478. } continue;
  479. }
  480. else if (is_teammate && SETTINGS::settings.chamsteam)
  481. continue;
  482.  
  483. if (entity && SETTINGS::settings.chams_type == 2)
  484. {
  485. ignorezmaterial->ColorModulate(CColor(SETTINGS::settings.imodel_col[0]*255, SETTINGS::settings.imodel_col[1] * 255, SETTINGS::settings.imodel_col[2] * 255, SETTINGS::settings.imodel_col[3] * 255));
  486. INTERFACES::ModelRender->ForcedMaterialOverride(ignorezmaterial);
  487. entity->DrawModel(0x1, 255);
  488.  
  489. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.vmodel_col[0]*255, SETTINGS::settings.vmodel_col[1] * 255, SETTINGS::settings.vmodel_col[2] * 255, SETTINGS::settings.vmodel_col[3] * 255));
  490. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  491. entity->DrawModel(0x1, 255);
  492.  
  493. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  494. }
  495. else if (entity && SETTINGS::settings.chams_type == 1)
  496. {
  497. notignorezmaterial->ColorModulate(CColor(SETTINGS::settings.vmodel_col[0] * 255, SETTINGS::settings.vmodel_col[1] * 255, SETTINGS::settings.vmodel_col[2] * 255, SETTINGS::settings.vmodel_col[3] * 255));
  498. INTERFACES::ModelRender->ForcedMaterialOverride(notignorezmaterial);
  499. entity->DrawModel(0x1, 255);
  500.  
  501. INTERFACES::ModelRender->ForcedMaterialOverride(nullptr);
  502. }
  503. }
  504.  
  505. for (auto i = 0; i < INTERFACES::GlowObjManager->GetSize(); i++)
  506. {
  507. auto &glowObject = INTERFACES::GlowObjManager->m_GlowObjectDefinitions[i];
  508. auto entity = reinterpret_cast<SDK::CBaseEntity*>(glowObject.m_pEntity);
  509.  
  510. if (!entity) continue;
  511. if (!local_player) continue;
  512.  
  513. if (glowObject.IsUnused()) continue;
  514.  
  515. bool is_local_player = entity == local_player;
  516. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  517.  
  518. if (is_local_player && in_tp && SETTINGS::settings.glowlocal)
  519. {
  520. glowObject.m_nGlowStyle = SETTINGS::settings.glowstylelocal;
  521. glowObject.m_flRed = colorlocal.RGBA[0] / 255.0f;
  522. glowObject.m_flGreen = colorlocal.RGBA[1] / 255.0f;
  523. glowObject.m_flBlue = colorlocal.RGBA[2] / 255.0f;
  524. glowObject.m_flAlpha = colorlocal.RGBA[3] / 255.0f;
  525. glowObject.m_bRenderWhenOccluded = true;
  526. glowObject.m_bRenderWhenUnoccluded = false;
  527. continue;
  528. }
  529. else if (!SETTINGS::settings.glowlocal && is_local_player)
  530. continue;
  531.  
  532. if (entity->GetHealth() <= 0) continue;
  533. if (entity->GetIsDormant()) continue;
  534. if (entity->GetClientClass()->m_ClassID != 38) continue;
  535.  
  536. if (is_teammate && SETTINGS::settings.glowteam)
  537. {
  538. glowObject.m_nGlowStyle = SETTINGS::settings.glowstyle; //0;
  539. glowObject.m_flRed = colorTeam.RGBA[0] / 255.0f;
  540. glowObject.m_flGreen = colorTeam.RGBA[1] / 255.0f;
  541. glowObject.m_flBlue = colorTeam.RGBA[2] / 255.0f;
  542. glowObject.m_flAlpha = colorTeam.RGBA[3] / 255.0f;
  543. glowObject.m_bRenderWhenOccluded = true;
  544. glowObject.m_bRenderWhenUnoccluded = false;
  545. continue;
  546. }
  547. else if (is_teammate && !SETTINGS::settings.glowteam)
  548. continue;
  549.  
  550. if (SETTINGS::settings.glowenable)
  551. {
  552. glowObject.m_nGlowStyle = SETTINGS::settings.glowstyle;//0;
  553. glowObject.m_flRed = color.RGBA[0] / 255.0f;
  554. glowObject.m_flGreen = color.RGBA[1] / 255.0f;
  555. glowObject.m_flBlue = color.RGBA[2] / 255.0f;
  556. glowObject.m_flAlpha = color.RGBA[3] / 255.0f;
  557. glowObject.m_bRenderWhenOccluded = true;
  558. glowObject.m_bRenderWhenUnoccluded = false;
  559. }
  560. }
  561.  
  562. if (SETTINGS::settings.smoke_bool)
  563. {
  564. std::vector<const char*> vistasmoke_wireframe = { "particle/vistasmokev1/vistasmokev1_smokegrenade" };
  565.  
  566. std::vector<const char*> vistasmoke_nodraw =
  567. {
  568. "particle/vistasmokev1/vistasmokev1_fire",
  569. "particle/vistasmokev1/vistasmokev1_emods",
  570. "particle/vistasmokev1/vistasmokev1_emods_impactdust",
  571. };
  572.  
  573. for (auto mat_s : vistasmoke_wireframe)
  574. {
  575. SDK::IMaterial* mat = INTERFACES::MaterialSystem->FindMaterial(mat_s, TEXTURE_GROUP_OTHER);
  576. mat->SetMaterialVarFlag(SDK::MATERIAL_VAR_WIREFRAME, true); //wireframe
  577. }
  578.  
  579. for (auto mat_n : vistasmoke_nodraw)
  580. {
  581. SDK::IMaterial* mat = INTERFACES::MaterialSystem->FindMaterial(mat_n, TEXTURE_GROUP_OTHER);
  582. mat->SetMaterialVarFlag(SDK::MATERIAL_VAR_NO_DRAW, true);
  583. }
  584.  
  585. static auto smokecout = *(DWORD*)(linegoesthrusmoke + 0x8);
  586. *(int*)(smokecout) = 0;
  587. }
  588. }
  589. }
  590. void __fastcall HookedOverrideView(void* ecx, void* edx, SDK::CViewSetup* pSetup)
  591. {
  592. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  593. if (!local_player) return;
  594.  
  595. auto animstate = local_player->GetAnimState();
  596. if (!animstate) return;
  597.  
  598. if (GetAsyncKeyState(UTILS::INPUT::input_handler.keyBindings(SETTINGS::settings.thirdperson_int)) & 1)
  599. in_tp = !in_tp;
  600.  
  601. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  602. {
  603. GrenadePrediction::instance().View(pSetup);
  604. auto GetCorrectDistance = [&local_player](float ideal_distance) -> float //lambda
  605. {
  606. Vector inverse_angles;
  607. INTERFACES::Engine->GetViewAngles(inverse_angles);
  608.  
  609. inverse_angles.x *= -1.f, inverse_angles.y += 180.f;
  610.  
  611. Vector direction;
  612. MATH::AngleVectors(inverse_angles, &direction);
  613.  
  614. SDK::CTraceWorldOnly filter;
  615. SDK::trace_t trace;
  616. SDK::Ray_t ray;
  617.  
  618. ray.Init(local_player->GetVecOrigin() + local_player->GetViewOffset(), (local_player->GetVecOrigin() + local_player->GetViewOffset()) + (direction * (ideal_distance + 5.f)));
  619. INTERFACES::Trace->TraceRay(ray, MASK_ALL, &filter, &trace);
  620.  
  621. return ideal_distance * trace.flFraction;
  622. };
  623.  
  624. if (SETTINGS::settings.tp_bool && in_tp)
  625. {
  626. if (local_player->GetHealth() <= 0)
  627. local_player->SetObserverMode(5);
  628.  
  629. if (!INTERFACES::Input->m_fCameraInThirdPerson)
  630. {
  631. INTERFACES::Input->m_fCameraInThirdPerson = true;
  632. INTERFACES::Input->m_vecCameraOffset = Vector(GLOBAL::real_angles.x, GLOBAL::real_angles.y, GetCorrectDistance(100));
  633.  
  634. Vector camForward;
  635. MATH::AngleVectors(Vector(INTERFACES::Input->m_vecCameraOffset.x, INTERFACES::Input->m_vecCameraOffset.y, 0), &camForward);
  636. }
  637. }
  638. else
  639. {
  640. INTERFACES::Input->m_fCameraInThirdPerson = false;
  641. INTERFACES::Input->m_vecCameraOffset = Vector(GLOBAL::real_angles.x, GLOBAL::real_angles.y, 0);
  642. }
  643. auto zoomsensration = INTERFACES::cvar->FindVar("zoom_sensitivity_ratio_mouse");
  644. if (SETTINGS::settings.fixscopesens)
  645. zoomsensration->SetValue("0");
  646. else
  647. zoomsensration->SetValue("1");
  648.  
  649. if (SETTINGS::settings.aim_type == 0)
  650. {
  651. if (!local_player->GetIsScoped())
  652. pSetup->fov = SETTINGS::settings.fov_val;
  653. else if (local_player->GetIsScoped() && SETTINGS::settings.removescoping)
  654. pSetup->fov = SETTINGS::settings.fov_val;
  655. }
  656. else if (!(SETTINGS::settings.aim_type == 0) && !local_player->GetIsScoped())
  657. pSetup->fov = 90;
  658. }
  659. original_override_view(ecx, pSetup);
  660. }
  661. void __fastcall HookedTraceRay(void *thisptr, void*, const SDK::Ray_t &ray, unsigned int fMask, SDK::ITraceFilter *pTraceFilter, SDK::trace_t *pTrace)
  662. {
  663. original_trace_ray(thisptr, ray, fMask, pTraceFilter, pTrace);
  664. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  665. pTrace->surface.flags |= SURF_SKY;
  666. }
  667. bool __fastcall HookedGetBool(void* pConVar, void* edx)
  668. {
  669. if ((uintptr_t)_ReturnAddress() == CAM_THINK)
  670. return true;
  671.  
  672. return original_get_bool(pConVar);
  673. }
  674. float __fastcall GetViewmodelFOV()
  675. {
  676. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  677. {
  678. float player_fov = original_viewmodel_fov();
  679.  
  680. if (SETTINGS::settings.esp_bool)
  681. player_fov = SETTINGS::settings.viewfov_val;
  682.  
  683. return player_fov;
  684. }
  685. }
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692. void OpenMenu()
  693. {
  694. static bool is_down = false;
  695. static bool is_clicked = false;
  696. if (GetAsyncKeyState(VK_INSERT))
  697. {
  698. is_clicked = false;
  699. is_down = true;
  700. }
  701. else if (!GetAsyncKeyState(VK_INSERT) && is_down)
  702. {
  703. is_clicked = true;
  704. is_down = false;
  705. }
  706. else
  707. {
  708. is_clicked = false;
  709. is_down = false;
  710. }
  711.  
  712. if (is_clicked)
  713. {
  714. menu_open = !menu_open;
  715.  
  716. }
  717. }
  718.  
  719.  
  720.  
  721.  
  722. LRESULT __stdcall Hooked_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  723. {
  724. switch (uMsg) {
  725. case WM_LBUTTONDOWN:
  726. PressedKeys[VK_LBUTTON] = true;
  727. break;
  728. case WM_LBUTTONUP:
  729. PressedKeys[VK_LBUTTON] = false;
  730. break;
  731. case WM_RBUTTONDOWN:
  732. PressedKeys[VK_RBUTTON] = true;
  733. break;
  734. case WM_RBUTTONUP:
  735. PressedKeys[VK_RBUTTON] = false;
  736. break;
  737. case WM_MBUTTONDOWN:
  738. PressedKeys[VK_MBUTTON] = true;
  739. break;
  740. case WM_MBUTTONUP:
  741. PressedKeys[VK_MBUTTON] = false;
  742. break;
  743. case WM_XBUTTONDOWN:
  744. {
  745. UINT button = GET_XBUTTON_WPARAM(wParam);
  746. if (button == XBUTTON1)
  747. {
  748. PressedKeys[VK_XBUTTON1] = true;
  749. }
  750. else if (button == XBUTTON2)
  751. {
  752. PressedKeys[VK_XBUTTON2] = true;
  753. }
  754. break;
  755. }
  756. case WM_XBUTTONUP:
  757. {
  758. UINT button = GET_XBUTTON_WPARAM(wParam);
  759. if (button == XBUTTON1)
  760. {
  761. PressedKeys[VK_XBUTTON1] = false;
  762. }
  763. else if (button == XBUTTON2)
  764. {
  765. PressedKeys[VK_XBUTTON2] = false;
  766. }
  767. break;
  768. }
  769. case WM_KEYDOWN:
  770. PressedKeys[wParam] = true;
  771. break;
  772. case WM_KEYUP:
  773. PressedKeys[wParam] = false;
  774. break;
  775. default: break;
  776. }
  777.  
  778. OpenMenu();
  779.  
  780. if (d3d_init && menu_open && ImGui_ImplDX9_WndProcHandler(hWnd, uMsg, wParam, lParam))
  781. return true;
  782.  
  783. return CallWindowProc(INIT::OldWindow, hWnd, uMsg, wParam, lParam);
  784. }
  785.  
  786.  
  787. void GUI_Init(IDirect3DDevice9* pDevice)
  788. {
  789. ImGui_ImplDX9_Init(INIT::Window, pDevice);
  790.  
  791.  
  792. ImGuiIO& io = ImGui::GetIO();
  793. io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\visitor2.ttf", 15.0f);
  794.  
  795.  
  796. ImGuiStyle &styled = ImGui::GetStyle();
  797. styled.Colors[ImGuiCol_Header] = ImVec4(0.92f, 0.18f, 0.29f, 0.76f);
  798. styled.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.92f, 0.18f, 0.29f, 0.86f);
  799. styled.Colors[ImGuiCol_HeaderActive] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  800. styled.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.09f, 0.15f, 0.16f, 1.00f);
  801. styled.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.92f, 0.18f, 0.29f, 0.78f);
  802. styled.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  803. styled.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.47f, 0.77f, 0.83f, 0.04f);
  804. styled.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.92f, 0.18f, 0.29f, 0.78f);
  805. styled.Colors[ImGuiCol_ResizeGripActive] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  806. styled.Colors[ImGuiCol_SelectedLine] = ImVec4(0.80f, 0.80f, 0.80f, 1.0f);
  807. styled.Colors[ImGuiCol_TitleBg] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  808. styled.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  809. styled.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  810. styled.Colors[ImGuiCol_WindowBg] = ImVec4(0.13f, 0.14f, 0.17f, 1.00f);
  811. styled.Colors[ImGuiCol_SliderGrab] = ImVec4(0.47f, 0.77f, 0.83f, 0.14f);
  812. styled.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  813. styled.Colors[ImGuiCol_CheckMark] = ImVec4(0.71f, 0.22f, 0.27f, 1.00f);
  814. styled.Colors[ImGuiCol_Border] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  815. styled.Colors[ImGuiCol_FrameBg] = ImVec4(0.1f, 0.1f, 0.1f, 1);
  816. styled.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.2f, 0.2f, 0.2f, 1);
  817. styled.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.3f, 0.3f, 0.3f, 1);
  818. styled.Colors[ImGuiCol_Button] = ImVec4(0.92f, 0.18f, 0.29f, 1.00f);
  819. styled.Colors[ImGuiCol_ButtonActive] = ImVec4(0.50f, 0.18f, 0.29f, 0.86f);
  820. styled.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.71f, 0.18f, 0.29f, 0.86f);
  821. styled.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.10f, 0.10f, 0.10f, 1.0f);
  822. styled.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.20f, 0.20f, 0.20f, 1.0f);
  823. styled.Colors[ImGuiCol_ResizeGripActive] = ImVec4(0.20f, 0.20f, 0.20f, 1.0f);
  824. styled.Colors[ImGuiCol_TextSelectedBg] = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
  825.  
  826.  
  827. styled.Colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 1.00f);
  828. styled.Colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
  829. styled.Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.70f);
  830. styled.Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
  831. styled.Colors[ImGuiCol_PopupBg] = ImVec4(0.05f, 0.05f, 0.10f, 0.90f);
  832. styled.Colors[ImGuiCol_Border] = ImVec4(0.70f, 0.70f, 0.70f, 0.65f);
  833. styled.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
  834. styled.Colors[ImGuiCol_FrameBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.30f); // Background of checkbox, radio button, plot, slider, text input
  835. styled.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.90f, 0.80f, 0.80f, 0.40f);
  836. styled.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.90f, 0.65f, 0.65f, 0.45f);
  837. styled.Colors[ImGuiCol_TitleBg] = ImVec4(0.27f, 0.27f, 0.54f, 0.83f);
  838. styled.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f);
  839. styled.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.32f, 0.32f, 0.63f, 0.87f);
  840. styled.Colors[ImGuiCol_MenuBarBg] = ImVec4(160.0f, 0.00f, 224.0f, 160.0f);
  841. styled.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.20f, 0.25f, 0.30f, 0.60f);
  842. styled.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.80f, 0.30f);
  843. styled.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.40f, 0.40f, 0.80f, 0.40f);
  844. styled.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 0.40f);
  845. styled.Colors[ImGuiCol_ComboBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.99f);
  846. styled.Colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.50f);
  847. styled.Colors[ImGuiCol_SliderGrab] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f);
  848. styled.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f);
  849. styled.Colors[ImGuiCol_Button] = ImVec4(0.67f, 0.40f, 0.40f, 0.60f);
  850. styled.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.67f, 0.40f, 0.40f, 1.00f);
  851. styled.Colors[ImGuiCol_ButtonActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f);
  852. styled.Colors[ImGuiCol_Header] = ImVec4(160.0f, 0.00f, 224.0f, 160.0f);
  853. styled.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.45f, 0.45f, 0.90f, 0.80f);
  854. styled.Colors[ImGuiCol_HeaderActive] = ImVec4(0.53f, 0.53f, 0.87f, 0.80f);
  855. styled.Colors[ImGuiCol_Column] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
  856. styled.Colors[ImGuiCol_ColumnHovered] = ImVec4(0.70f, 0.60f, 0.60f, 1.00f);
  857. styled.Colors[ImGuiCol_ColumnActive] = ImVec4(0.90f, 0.70f, 0.70f, 1.00f);
  858. styled.Colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f);
  859. styled.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f);
  860. styled.Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f);
  861. styled.Colors[ImGuiCol_CloseButton] = ImVec4(0.50f, 0.50f, 0.90f, 0.50f);
  862. styled.Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.70f, 0.70f, 0.90f, 0.60f);
  863. styled.Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.70f, 0.70f, 0.70f, 1.00f);
  864. styled.Colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
  865. styled.Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
  866. styled.Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
  867. styled.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
  868. styled.Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f);
  869. styled.Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f);
  870.  
  871.  
  872. pDevice->GetViewport(&Menuxd::viewPort);
  873. D3DXCreateFont(pDevice, 9, 0, FW_BOLD, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DRAFT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ("Verdana"), &Menuxd::fntVerdana9);
  874. D3DXCreateFont(pDevice, 10, 5, FW_NORMAL, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ("Verdana"), &Menuxd::fntVerdana10);
  875. D3DXCreateFont(pDevice, 11, 5, FW_NORMAL, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ("Verdana"), &Menuxd::fntVerdana11);
  876. //D3DXCreateFont(pDevice, 12, 5, FW_BOLD, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ("Verdana"), &Menuxd::fntVerdana12);
  877. D3DXCreateFont(pDevice, 11, 0, FW_NORMAL, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ("csgo_icons"), &Menuxd::fntWeaponIcon);
  878. bigmenu_font = ImGui::GetIO().Fonts->AddFontFromMemoryCompressedBase85TTF(rawData_compressed_data_base85, 70);
  879. menu_font = ImGui::GetIO().Fonts->AddFontFromMemoryCompressedBase85TTF(rawData_compressed_data_base85, 18);
  880. smallmenu_font = ImGui::GetIO().Fonts->AddFontFromMemoryCompressedBase85TTF(smalll_compressed_data_base85, 13);
  881. d3d_init = true;
  882. }
  883.  
  884. struct hud_weapons_t {
  885. std::int32_t* get_weapon_count() {
  886. return reinterpret_cast<std::int32_t*>(std::uintptr_t(this) + 0x80);
  887. }
  888. };
  889. template<class T>
  890. static T* FindHudElement(const char* name)
  891. {
  892. static auto pThis = *reinterpret_cast<DWORD**>(UTILS::FindSignature("client_panorama.dll", "B9 ? ? ? ? E8 ? ? ? ? 8B 5D 08") + 1);
  893.  
  894. static auto find_hud_element = reinterpret_cast<DWORD(__thiscall*)(void*, const char*)>(UTILS::FindSignature("client_panorama.dll", "55 8B EC 53 8B 5D 08 56 57 8B F9 33 F6 39 77 28"));
  895. return (T*)find_hud_element(pThis, name);
  896. }
  897. void KnifeApplyCallbk()
  898. {
  899.  
  900. static auto clear_hud_weapon_icon_fn =
  901. reinterpret_cast<std::int32_t(__thiscall*)(void*, std::int32_t)>(
  902. UTILS::FindSignature("client_panorama.dll", "55 8B EC 51 53 56 8B 75 08 8B D9 57 6B FE 2C 89 5D FC"));
  903.  
  904. auto element = FindHudElement<std::uintptr_t*>("CCSGO_HudWeaponSelection");
  905.  
  906. auto hud_weapons = reinterpret_cast<hud_weapons_t*>(std::uintptr_t(element) - 0xA0);
  907. if (hud_weapons == nullptr)
  908. return;
  909.  
  910. if (!*hud_weapons->get_weapon_count())
  911. return;
  912.  
  913. for (std::int32_t i = 0; i < *hud_weapons->get_weapon_count(); i++)
  914. i = clear_hud_weapon_icon_fn(hud_weapons, i);
  915.  
  916. static SDK::ConVar* Meme = INTERFACES::cvar->FindVar("cl_fullupdate");
  917. Meme->nFlags &= ~FCVAR_CHEAT;
  918. INTERFACES::Engine->ClientCmd_Unrestricted("cl_fullupdate");
  919.  
  920. }
  921. SDK::CBaseWeapon* xd(SDK::CBaseEntity* xz)
  922. {
  923. if (!INTERFACES::Engine->IsConnected())
  924. return nullptr;
  925. if (!xz->IsAlive())
  926. return nullptr;
  927.  
  928. HANDLE weaponData = *(HANDLE*)((DWORD)xz + OFFSETS::m_hActiveWeapon);
  929. return (SDK::CBaseWeapon*)INTERFACES::ClientEntityList->GetClientEntityFromHandle(weaponData);
  930. }
  931.  
  932. short SafeWeaponID()
  933. {
  934. SDK::CBaseEntity* local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  935. if (!(local_player))
  936. return 0;
  937.  
  938. SDK::CBaseWeapon* WeaponC = xd(local_player);
  939.  
  940. if (!(WeaponC))
  941. return 0;
  942.  
  943. return WeaponC->GetItemDefenitionIndex();
  944. }
  945. long __stdcall Hooked_EndScene(IDirect3DDevice9* pDevice)
  946. {
  947. static auto ofunc = directz.get_original<EndSceneFn>(42);
  948.  
  949. D3DCOLOR rectColor = D3DCOLOR_XRGB(107, 1, 119);
  950. D3DRECT BarRect = { 1, 1, 1, 1 };
  951. ImGuiStyle& style = ImGui::GetStyle();
  952. pDevice->Clear(1, &BarRect, D3DCLEAR_TARGET | D3DCLEAR_TARGET, rectColor, 0, 0);
  953.  
  954. if (!d3d_init)
  955. GUI_Init(pDevice);
  956.  
  957. //ImGui::GetIO().MouseDrawCursor = menu_open;
  958.  
  959. static const D3DRENDERSTATETYPE backupStates[] = { D3DRS_COLORWRITEENABLE, D3DRS_ALPHABLENDENABLE, D3DRS_SRCBLEND, D3DRS_DESTBLEND, D3DRS_BLENDOP, D3DRS_FOGENABLE };
  960. static const int size = sizeof(backupStates) / sizeof(DWORD);
  961.  
  962. DWORD oldStates[size] = { 0 };
  963.  
  964. for (int i = 0; i < size; i++)
  965. pDevice->GetRenderState(backupStates[i], &oldStates[i]);
  966.  
  967. pDevice->SetRenderState(D3DRS_COLORWRITEENABLE, 0xFFFFFFFF);
  968.  
  969. ImGui_ImplDX9_NewFrame();
  970.  
  971.  
  972.  
  973.  
  974.  
  975. //if (tImage == nullptr)D3DXCreateTextureFromFileInMemoryEx(pDevice, &NameArry, sizeof(NameArry), 564, 845, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &tImage);
  976.  
  977. if (menu_open)
  978. {
  979.  
  980. POINT mp;
  981.  
  982. GetCursorPos(&mp);
  983. ImGuiIO& io = ImGui::GetIO();
  984. io.MousePos.x = mp.x;
  985. io.MousePos.y = mp.y;
  986.  
  987. ImGui::Begin("##Stackhackrecode", &menu_open, ImVec2(1000, 400), 1, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoTitleBar);
  988. {
  989.  
  990. const char* key_binds[] = { "none", "mouse1", "mouse2", "mouse3", "mouse4", "mouse5", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12" };
  991. static int page = 0;
  992. const char* tabs[] = {
  993. "Ragebot",
  994. "Visuals",
  995. "Misc",
  996. "Changer",
  997. "Config",
  998. };
  999.  
  1000. for (int i = 0; i < ARRAYSIZE(tabs); i++)
  1001. {
  1002. int distance = i == page ? 0 : i > page ? i - page : page - i;
  1003.  
  1004. if (ImGui::Button(tabs[i], ImVec2(ImGui::GetWindowSize().x / ARRAYSIZE(tabs) - 9, 37)))
  1005. page = i;
  1006.  
  1007. if (i < ARRAYSIZE(tabs) - 1)
  1008. ImGui::SameLine();
  1009. }
  1010.  
  1011. // ImGui::Separator();
  1012.  
  1013.  
  1014.  
  1015. switch (page)
  1016. {
  1017. case 0: {
  1018.  
  1019. ImGui::BeginChild("5e6gtvref", ImVec2(350, 0), true);
  1020. {
  1021. ImGui::PushFont(smallmenu_font);
  1022. {
  1023.  
  1024. const char* aim_mode[] = { "rage", "legit" };
  1025. const char* acc_mode[] = { "head", "body aim", "hitscan" };
  1026.  
  1027. const char* delay_shot[] = { "off", "lag compensation" };
  1028. const char* override_method[] = { "set", "key-press" };
  1029. ImGui::Checkbox(("Enable aimbot"), &SETTINGS::settings.aim_bool);
  1030. ImGui::Combo(("Aimbot Type"), &SETTINGS::settings.aim_type, aim_mode, ARRAYSIZE(aim_mode));
  1031. if (SETTINGS::settings.aim_type == 0)
  1032. {
  1033. ImGui::Combo(("Aimbot Mode"), &SETTINGS::settings.acc_type, acc_mode, ARRAYSIZE(acc_mode));
  1034.  
  1035. ImGui::SliderFloat("Hit-chance", &SETTINGS::settings.chance_val, 0, 100);
  1036. ImGui::SliderFloat("Damage", &SETTINGS::settings.damage_val, 1, 110);
  1037. ImGui::Checkbox(("More Aimpoints"), &SETTINGS::settings.multi_bool);
  1038. if (SETTINGS::settings.multi_bool)
  1039. {
  1040. ImGui::SliderFloat("Head Scale", &SETTINGS::settings.point_val, 0, 1);
  1041. ImGui::SliderFloat("Body Scale", &SETTINGS::settings.body_val, 0, 1);
  1042. }
  1043. ImGui::Checkbox(("Auto Stop"), &SETTINGS::settings.stop_bool);
  1044. ImGui::Checkbox(("Lagcompensator"), &SETTINGS::settings.rage_lagcompensation);
  1045.  
  1046.  
  1047.  
  1048. ImGui::Checkbox(("Resolver"), &SETTINGS::settings.resolve_bool);
  1049. ImGui::Checkbox(("Override Enable"), &SETTINGS::settings.overrideenable);
  1050. ImGui::Combo(("Override Key"), &SETTINGS::settings.overridekey, key_binds, ARRAYSIZE(key_binds));
  1051. ImGui::Combo(("Override Method"), &SETTINGS::settings.overridemethod, override_method, ARRAYSIZE(override_method));
  1052. ImGui::Combo(("Override Method"), &SETTINGS::settings.delay_shot, delay_shot, ARRAYSIZE(delay_shot));
  1053. }
  1054. else
  1055. {
  1056. ImGui::Checkbox(("Triggerbot"), &SETTINGS::settings.legittrigger_bool);
  1057. ImGui::Combo(("Triggerbot key"), &SETTINGS::settings.legittrigger_key, key_binds, ARRAYSIZE(key_binds));
  1058. ImGui::Checkbox(("Backtrack Legit"), &SETTINGS::settings.back_bool);
  1059. }
  1060.  
  1061. }
  1062. ImGui::PopFont();
  1063. }
  1064. ImGui::EndChild();
  1065. ImGui::SameLine();
  1066. ImGui::BeginChild("wrqwerfadf", ImVec2(250, 0), true);
  1067. {
  1068. ImGui::PushFont(smallmenu_font);
  1069. {
  1070. const char* antiaimmode[] = { "standing", "moving", "jumping" };
  1071. const char* aa_pitch[] = { "none", "emotion", "fake down", "fake up", "fake zero" };
  1072. const char* aa_mode[] = { "none", "backwards", "sideways", "backjitter", "lowerbody", "legit troll", "rotational", "freestanding" };
  1073. const char* aa_fake[] = { "none", "backjitter", "random", "local view", "opposite", "rotational" };
  1074.  
  1075. ImGui::Checkbox(("Enable Antiaim"), &SETTINGS::settings.aa_bool);
  1076. ImGui::Combo(("Mode##AA"), &SETTINGS::settings.aa_mode, antiaimmode, ARRAYSIZE(antiaimmode));
  1077.  
  1078. switch (SETTINGS::settings.aa_mode)
  1079. {
  1080. case 0:
  1081.  
  1082. ImGui::Combo(("Antiaim Pitch##st"), &SETTINGS::settings.aa_pitch_type, aa_pitch, ARRAYSIZE(aa_pitch));
  1083.  
  1084. ImGui::Combo(("Antiaim Real##st"), &SETTINGS::settings.aa_real_type, aa_mode, ARRAYSIZE(aa_mode));
  1085.  
  1086. ImGui::Combo(("Antiaim Fake##st"), &SETTINGS::settings.aa_fake_type, aa_fake, ARRAYSIZE(aa_fake));
  1087.  
  1088.  
  1089. break;
  1090. case 1:
  1091. ImGui::Combo(("Antiaim Pitch##moving"), &SETTINGS::settings.aa_pitch1_type, aa_pitch, ARRAYSIZE(aa_pitch));
  1092.  
  1093. ImGui::Combo(("Antiaim Real##moving"), &SETTINGS::settings.aa_real1_type, aa_mode, ARRAYSIZE(aa_mode));
  1094.  
  1095. ImGui::Combo(("Antiaim Fake##moving"), &SETTINGS::settings.aa_fake1_type, aa_fake, ARRAYSIZE(aa_fake));
  1096.  
  1097.  
  1098.  
  1099. break;
  1100. case 2:
  1101. ImGui::Combo(("Antiaim Pitch##jumping"), &SETTINGS::settings.aa_pitch2_type, aa_pitch, ARRAYSIZE(aa_pitch));
  1102.  
  1103. ImGui::Combo(("Antiaim Real##jumping"), &SETTINGS::settings.aa_real2_type, aa_mode, ARRAYSIZE(aa_mode));
  1104.  
  1105. ImGui::Combo(("Antiaim Fake##jumping"), &SETTINGS::settings.aa_fake2_type, aa_fake, ARRAYSIZE(aa_fake));
  1106.  
  1107.  
  1108. break;
  1109. }
  1110.  
  1111.  
  1112.  
  1113.  
  1114. }
  1115. ImGui::PopFont();
  1116. }
  1117. ImGui::EndChild();
  1118.  
  1119. ImGui::SameLine();
  1120. ImGui::BeginChild("sadfasd", ImVec2(360, 0), true);
  1121. {
  1122. ImGui::PushFont(smallmenu_font);
  1123. {
  1124. ImGui::Checkbox(("Anti-Aim Arrows"), &SETTINGS::settings.rifk_arrow);
  1125. ImGui::Combo(("Flip Key"), &SETTINGS::settings.flip_int, key_binds, ARRAYSIZE(key_binds));
  1126. switch (SETTINGS::settings.aa_mode)
  1127. {
  1128. case 0:
  1129.  
  1130. ImGui::SliderFloat("Real Additive##st", &SETTINGS::settings.aa_realadditive_val, -180, 180);
  1131. ImGui::SliderFloat("Fake Additive##st", &SETTINGS::settings.aa_fakeadditive_val, -180, 180);
  1132. ImGui::SliderFloat("Lowerbodyyaw Delta##st", &SETTINGS::settings.delta_val, -119.9, 119.9);
  1133. break;
  1134. case 1:
  1135.  
  1136. ImGui::SliderFloat("Real Additive##mv", &SETTINGS::settings.aa_realadditive1_val, -180, 180);
  1137. ImGui::SliderFloat("Fake Additive##mv", &SETTINGS::settings.aa_fakeadditive1_val, -180, 180);
  1138. ImGui::SliderFloat("Lowerbodyyaw Delta##mv", &SETTINGS::settings.delta1_val, -119.9, 119.9);
  1139. break;
  1140. case 2:
  1141.  
  1142. ImGui::SliderFloat("Real Additive##ar", &SETTINGS::settings.aa_realadditive2_val, -180, 180);
  1143. ImGui::SliderFloat("Fake Additive##ar", &SETTINGS::settings.aa_fakeadditive2_val, -180, 180);
  1144. ImGui::SliderFloat("Lowerbodyyaw Delta##ar", &SETTINGS::settings.delta2_val, -119.9, 119.9);
  1145. break;
  1146. }
  1147.  
  1148.  
  1149. switch (SETTINGS::settings.aa_mode)
  1150. {
  1151. case 0:
  1152. ImGui::SliderFloat("Rotate Standing Β°", &SETTINGS::settings.spinangle, 0, 180);
  1153. ImGui::SliderFloat("Rotate Standing %", &SETTINGS::settings.spinspeed, 0, 100);
  1154. break;
  1155. case 1:
  1156. ImGui::SliderFloat("Rotate Moving Β°", &SETTINGS::settings.spinangle1, 0, 180);
  1157. ImGui::SliderFloat("Rotate Moving %", &SETTINGS::settings.spinspeed1, 0, 100);
  1158. break;
  1159. case 2:
  1160. ImGui::SliderFloat("Rotate Jumping Β°", &SETTINGS::settings.spinangle2, 0, 180);
  1161. ImGui::SliderFloat("Rotate Jumping %", &SETTINGS::settings.spinspeed2, 0, 100);
  1162. break;
  1163. }
  1164.  
  1165.  
  1166. ImGui::SliderFloat("Rotate Fake Β°", &SETTINGS::settings.spinanglefake, 0, 180);
  1167. ImGui::SliderFloat("Rotate Fake %", &SETTINGS::settings.spinspeedfake, 0, 100);
  1168.  
  1169. }
  1170. ImGui::PopFont();
  1171. }
  1172. ImGui::EndChild();
  1173.  
  1174.  
  1175. }break;
  1176. case 1: {
  1177.  
  1178. ImGui::BeginChild("5e6gtvref", ImVec2(300, 0), true);
  1179. {
  1180. ImGui::PushFont(smallmenu_font);
  1181. {
  1182. const char* weptype[] =
  1183. {
  1184. "type1",
  1185. "type2"
  1186.  
  1187. };
  1188. ImGui::Checkbox(("Enabled"), &SETTINGS::settings.Visuals.Enabled);
  1189. ImGui::Checkbox(("Box"), &SETTINGS::settings.Visuals.Visuals_BoxEnabled);
  1190. ImGui::Combo(("Box Type"), &SETTINGS::settings.Visuals.Visuals_BoxType, weptype, ARRAYSIZE(weptype));
  1191. ImGui::Checkbox(("Esp team"), &SETTINGS::settings.Visuals.Visuals_EspTeam);
  1192. ImGui::Checkbox(("Name"), &SETTINGS::settings.Visuals.Visuals_Name);
  1193. ImGui::Checkbox(("Health"), &SETTINGS::settings.Visuals.Visuals_HealthBar);
  1194. ImGui::Combo(("Health Type"), &SETTINGS::settings.Visuals.Visuals_HealthBarType, weptype, ARRAYSIZE(weptype));
  1195.  
  1196. // ImGui::Checkbox(("AimLines"), &SETTINGS::settings.Visuals.Visuals_AimLines);
  1197. // ImGui::Checkbox(("Weapons"), &SETTINGS::settings.Visuals.Visuals_Weapons);
  1198. // ImGui::Combo(("WeaponType"), &SETTINGS::settings.Visuals.Visuals_WeaponsType, weptype, ARRAYSIZE(weptype));
  1199. // ImGui::Checkbox(("Ammo"), &SETTINGS::settings.Visuals.Visuals_AmmoESP);
  1200. // ImGui::Combo(("AmmoType"), &SETTINGS::settings.Visuals.Visuals_AmmoESPType, weptype, ARRAYSIZE(weptype));
  1201.  
  1202. ImGui::Checkbox(("DamageEsp"), &SETTINGS::settings.Visuals.Visuals_DamageESP);
  1203. ImGui::SameLine(ImGui::GetWindowWidth() - 25);
  1204. ImGui::ColorEdit4(("##DamageEspColor"), SETTINGS::settings.Visuals.DamageESPColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1205. ImGui::Checkbox(("Fov Arrows"), &SETTINGS::settings.fov_bool);
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211. }
  1212. ImGui::PopFont();
  1213. }
  1214. ImGui::EndChild();
  1215. ImGui::SameLine();
  1216.  
  1217. ImGui::BeginChild("agarwegwqerg", ImVec2(300, 0), true);
  1218. {
  1219. ImGui::PushFont(smallmenu_font);
  1220. {
  1221. const char* chams_type[] = { "metallic", "basic" };
  1222. const char* chams_mode[] = { "none", "visible", "invisible" };
  1223. const char* glow_styles[] = { "regular", "pulsing", "outline" };
  1224. ImGui::Combo(("enemy coloured models"), &SETTINGS::settings.chams_type, chams_mode, ARRAYSIZE(chams_mode));
  1225. ImGui::Combo(("team coloured models"), &SETTINGS::settings.chamsteam, chams_mode, ARRAYSIZE(chams_mode));
  1226. ImGui::Combo(("type chams"), &SETTINGS::settings.chamstype, chams_type, ARRAYSIZE(chams_type));
  1227. const char* local_chams[] = { "none","sim fakelag: normal", "non-sim fakelag", "sim fakelag: color" };
  1228. ImGui::Combo(("local chams"), &SETTINGS::settings.localchams, local_chams, ARRAYSIZE(local_chams));
  1229.  
  1230. ImGui::Checkbox(("Fake chams"), &SETTINGS::settings.fakechams);
  1231.  
  1232.  
  1233.  
  1234. ImGui::Checkbox(("enemy glow enable"), &SETTINGS::settings.glowenable);
  1235. ImGui::Checkbox(("team glow enable"), &SETTINGS::settings.glowteam);
  1236. ImGui::Combo(("glow style"), &SETTINGS::settings.glowstyle, glow_styles, ARRAYSIZE(glow_styles));
  1237. ImGui::Checkbox(("local glow"), &SETTINGS::settings.glowlocal);
  1238. ImGui::Combo(("local glow style"), &SETTINGS::settings.glowstylelocal, glow_styles, ARRAYSIZE(glow_styles));
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244. }
  1245. ImGui::PopFont();
  1246. }
  1247. ImGui::EndChild();
  1248.  
  1249.  
  1250. ImGui::SameLine();
  1251.  
  1252. ImGui::BeginChild("zcxvxbhtydjrtfd", ImVec2(300, 0), true);
  1253. {
  1254. ImGui::PushFont(smallmenu_font);
  1255. {
  1256.  
  1257.  
  1258. const char* crosshair_select[] = { "none", "static", "recoil" };
  1259. const char* hitmarker[] = { "none", "gamesense", "bameware", "custom" };
  1260. const char* spreadshit[] = {"off", "standart", "another", "rainbow" };
  1261.  
  1262. ImGui::SliderFloat("night value", &SETTINGS::settings.daytimevalue, 0, 100);
  1263. ImGui::Checkbox(("bullet tracers"), &SETTINGS::settings.beam_bool);
  1264.  
  1265. ImGui::SliderFloat("bullet life", &SETTINGS::settings.bulletlife, 0, 30);
  1266. ImGui::SliderFloat("bullet size", &SETTINGS::settings.bulletsize, 0, 20);
  1267.  
  1268.  
  1269. ImGui::Checkbox(("thirdperson"), &SETTINGS::settings.tp_bool);
  1270. ImGui::Combo(("thirdperson key"), &SETTINGS::settings.thirdperson_int, key_binds, ARRAYSIZE(key_binds));
  1271. ImGui::Combo(("crosshair"), &SETTINGS::settings.xhair_type, crosshair_select, ARRAYSIZE(crosshair_select));
  1272.  
  1273.  
  1274.  
  1275. ImGui::Combo(("Spread circle"), &SETTINGS::settings.spread_bool, spreadshit, ARRAYSIZE(spreadshit));
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281. ImGui::Checkbox(("remove smoke"), &SETTINGS::settings.smoke_bool);
  1282. ImGui::Checkbox(("remove scope"), &SETTINGS::settings.scope_bool);
  1283. ImGui::Checkbox(("remove zoom"), &SETTINGS::settings.removescoping);
  1284. ImGui::Checkbox(("fix zoom sensitivity"), &SETTINGS::settings.fixscopesens);
  1285. ImGui::Checkbox(("enable postprocessing"), &SETTINGS::settings.matpostprocessenable);
  1286. ImGui::Combo(("flashlight key"), &SETTINGS::settings.flashlightkey, key_binds, ARRAYSIZE(key_binds));
  1287. ImGui::SliderFloat("render fov", &SETTINGS::settings.fov_val, 0, 179);
  1288. ImGui::SliderFloat("viewmodel fov", &SETTINGS::settings.viewfov_val, 0, 179);
  1289. ImGui::Combo(("hitmarker sound"), &SETTINGS::settings.hitmarker_val, hitmarker, ARRAYSIZE(hitmarker));
  1290. ImGui::Checkbox(("lby indicator"), &SETTINGS::settings.lbyenable);
  1291.  
  1292.  
  1293.  
  1294.  
  1295. }
  1296. ImGui::PopFont();
  1297. }
  1298. ImGui::EndChild();
  1299.  
  1300. }break;
  1301. case 2: {
  1302.  
  1303.  
  1304.  
  1305. ImGui::BeginChild("sa3rqewfadfwe", ImVec2(500, 0), true);
  1306. {
  1307. ImGui::PushFont(smallmenu_font);
  1308. {
  1309. const char* fakelag_mode[] = { "factor", "adaptive" };
  1310. ImGui::Checkbox(("Enable Misc"), &SETTINGS::settings.misc_bool);
  1311. ImGui::Checkbox(("Auto Bunnyhop"), &SETTINGS::settings.bhop_bool);
  1312. ImGui::Checkbox(("Auto Strafer"), &SETTINGS::settings.strafe_bool);
  1313. ImGui::Checkbox(("Duck in air"), &SETTINGS::settings.duck_bool);
  1314.  
  1315.  
  1316.  
  1317. ImGui::Combo(("circle strafe"), &SETTINGS::settings.circlestrafekey, key_binds, ARRAYSIZE(key_binds));
  1318.  
  1319. ImGui::Checkbox(("Enable FakeLag"), &SETTINGS::settings.lag_bool);
  1320. ImGui::Combo(("Fakelag Type"), &SETTINGS::settings.lag_type, fakelag_mode, ARRAYSIZE(fakelag_mode));
  1321.  
  1322. ImGui::SliderFloat("standing lag", &SETTINGS::settings.stand_lag, 1, 14);
  1323. ImGui::SliderFloat("moving lag", &SETTINGS::settings.move_lag, 1, 14);
  1324. ImGui::SliderFloat("jumping lag", &SETTINGS::settings.jump_lag, 1, 14);
  1325.  
  1326.  
  1327.  
  1328. }
  1329. ImGui::PopFont();
  1330. }
  1331. ImGui::EndChild();
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337. }break;
  1338. case 3: {
  1339.  
  1340.  
  1341. ImGui::BeginChild(("Skinsxd1"), ImVec2(ImGui::GetWindowWidth() / 3 - 10, 0), true, true ? ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoTitleBar : ImGuiWindowFlags_NoResize | ImGuiWindowFlags_ShowBorders);
  1342. {
  1343. ImGui::PushFont(smallmenu_font);
  1344. {
  1345.  
  1346. ImGui::Checkbox("skinchanger", &SETTINGS::settings.skinenabled);
  1347. ImGui::Checkbox("glovechanger", &SETTINGS::settings.glovesenabled);
  1348. ImGui::Checkbox("modelchanger", &SETTINGS::settings.CUSTOMMODEL);
  1349. if (SETTINGS::settings.CUSTOMMODEL)
  1350. {
  1351. ImGui::Combo(("ct"), &SETTINGS::settings.customct, playermodels, ARRAYSIZE(playermodels));
  1352. ImGui::Combo(("t"), &SETTINGS::settings.customtt, playermodels, ARRAYSIZE(playermodels));
  1353. }
  1354. if (ImGui::Button(("Force update")))
  1355. {
  1356. KnifeApplyCallbk();
  1357.  
  1358. }
  1359.  
  1360.  
  1361. }
  1362. ImGui::PopFont();
  1363.  
  1364. }ImGui::EndChild();
  1365.  
  1366.  
  1367. ImGui::SameLine();
  1368. ImGui::BeginChild(("Skinsxd2"), ImVec2(320, 0), true, true ? ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoTitleBar : ImGuiWindowFlags_NoResize | ImGuiWindowFlags_ShowBorders);
  1369. {
  1370. ImGui::PushFont(smallmenu_font);
  1371. {
  1372.  
  1373. static bool Main = true;
  1374. static bool Colors = false;
  1375.  
  1376. static int Page = 0;
  1377.  
  1378. ImGuiStyle& style = ImGui::GetStyle();
  1379.  
  1380.  
  1381. style.ItemSpacing = ImVec2(1, 1);
  1382. ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(160.0f, 0.0f, 224.0f, 160.0f));
  1383. ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(160.0f, 0.0f, 224.0f, 160.0f));
  1384. ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(160.0f, 0.0f, 224.0f, 160.0f));
  1385.  
  1386. const char* meme = "page : error";
  1387. switch (Page)
  1388. {
  1389. case 0: meme = "page : 1"; break;
  1390. case 1: meme = "page : 2"; break;
  1391. case 2: meme = "page : 3"; break;
  1392. case 3: meme = "page : 4"; break;
  1393. case 4: meme = "page : 5"; break;
  1394. default: break;
  1395. }
  1396.  
  1397. ImGui::Text(meme); ImGui::SameLine(); ImGui::Text((" ")); ImGui::SameLine();
  1398. if (ImGui::Button(("-"), ImVec2(22, 22)))
  1399. {
  1400. if (Page != 0)
  1401. Page--;
  1402. };
  1403. ImGui::SameLine();
  1404. if (ImGui::Button(("+"), ImVec2(22, 22)))
  1405. {
  1406. if (Page != 3)
  1407. Page++;
  1408. };
  1409.  
  1410. ImGui::Text((" "));
  1411.  
  1412. ImGui::PopStyleColor(); ImGui::PopStyleColor(); ImGui::PopStyleColor();
  1413. style.ItemSpacing = ImVec2(8, 4);
  1414. switch (Page)
  1415. {
  1416. case 0:
  1417. {
  1418.  
  1419. ImGui::PushItemWidth(150.0f);
  1420. ImGui::Combo(("Knife Model"), &SETTINGS::settings.Knife, KnifeModel, ARRAYSIZE(KnifeModel));
  1421. ImGui::PushItemWidth(150.0f);
  1422. ImGui::Combo(("Knife Skin"), &SETTINGS::settings.KnifeSkin, knifeskins, ARRAYSIZE(knifeskins));
  1423. ImGui::PushItemWidth(150.0f);
  1424. ImGui::Combo(("glove model"), &SETTINGS::settings.gloves, GloveModel, ARRAYSIZE(GloveModel));
  1425. ImGui::PushItemWidth(150.0f);
  1426. if (SETTINGS::settings.gloves == 1)
  1427. {
  1428.  
  1429. const char* glovesskins[] =
  1430. {
  1431. "charred",
  1432. "snakebite",
  1433. "bronzed",
  1434. "guerilla"
  1435. };
  1436.  
  1437. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1438. }
  1439. else
  1440. if (SETTINGS::settings.gloves == 2)
  1441. {
  1442. const char* glovesskins[] =
  1443. {
  1444. "hedge maze",
  1445. "andoras box",
  1446. "superconductor",
  1447. "arid",
  1448. "omega",
  1449. "amphibious",
  1450. "bronze morph"
  1451. };
  1452.  
  1453. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1454. }
  1455. else
  1456. if (SETTINGS::settings.gloves == 3)
  1457. {
  1458. const char* glovesskins[] =
  1459. {
  1460. "lunar weave",
  1461. "convoy",
  1462. "crimson weave",
  1463. "diamondback",
  1464. "overtake",
  1465. "racing green",
  1466. "king snake",
  1467. "imperial plaid"
  1468. };
  1469.  
  1470. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1471.  
  1472. }
  1473. else
  1474. if (SETTINGS::settings.gloves == 4)
  1475. {
  1476. const char* glovesskins[] =
  1477. {
  1478. "leather",
  1479. "spruce ddpat",
  1480. "slaughter",
  1481. "cobalt skulls",
  1482. "overprint",
  1483. "duct tape",
  1484. "arboreal"
  1485. };
  1486.  
  1487. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1488.  
  1489. }
  1490. else
  1491. if (SETTINGS::settings.gloves == 5)
  1492. {
  1493. const char* glovesskins[] =
  1494. {
  1495. "eclipse",
  1496. "spearmint",
  1497. "boom",
  1498. "cool mint",
  1499. "turtle",
  1500. "transport",
  1501. "polygon",
  1502. "pow"
  1503. };
  1504.  
  1505. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1506.  
  1507. }
  1508. else
  1509. if (SETTINGS::settings.gloves == 6)
  1510. {
  1511. const char* glovesskins[] =
  1512. {
  1513. "forest ddpat",
  1514. "crimson kimono",
  1515. "emerald web",
  1516. "foundation",
  1517. "crimson web",
  1518. "buckshot",
  1519. "fade",
  1520. "mogul"
  1521. };
  1522.  
  1523. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1524.  
  1525. }
  1526. else
  1527. if (SETTINGS::settings.gloves == 7)
  1528. {
  1529. const char* glovesskins[] =
  1530. {
  1531. "emerald",
  1532. "mangrove",
  1533. "rattler",
  1534. "case hardened"
  1535. };
  1536.  
  1537. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1538.  
  1539. }
  1540. else
  1541. if (SETTINGS::settings.gloves == 0)
  1542. {
  1543. const char* glovesskins[] = { "" };
  1544.  
  1545. ImGui::Combo(("glove skin"), &SETTINGS::settings.skingloves, glovesskins, ARRAYSIZE(glovesskins));
  1546.  
  1547. }
  1548.  
  1549.  
  1550.  
  1551.  
  1552. }break;
  1553. case 1:
  1554. {
  1555. ImGui::Combo(("AK-47"), &SETTINGS::settings.AK47Skin, ak47, ARRAYSIZE(ak47));
  1556. ImGui::Combo(("M4A1-S"), &SETTINGS::settings.M4A1SSkin, m4a1s, ARRAYSIZE(m4a1s));
  1557. ImGui::Combo(("M4A4"), &SETTINGS::settings.M4A4Skin, m4a4, ARRAYSIZE(m4a4));
  1558. ImGui::Combo(("Galil AR"), &SETTINGS::settings.GalilSkin, galil, ARRAYSIZE(galil));
  1559. ImGui::Combo(("AUG"), &SETTINGS::settings.AUGSkin, aug, ARRAYSIZE(aug));
  1560. ImGui::Combo(("FAMAS"), &SETTINGS::settings.FAMASSkin, famas, ARRAYSIZE(famas));
  1561. ImGui::Combo(("Sg553"), &SETTINGS::settings.Sg553Skin, sg553, ARRAYSIZE(sg553));
  1562. ImGui::Combo(("UMP45"), &SETTINGS::settings.UMP45Skin, ump45, ARRAYSIZE(ump45));
  1563. ImGui::Combo(("MAC-10"), &SETTINGS::settings.Mac10Skin, mac10, ARRAYSIZE(mac10));
  1564. ImGui::Combo(("PP-Bizon"), &SETTINGS::settings.BizonSkin, bizon, ARRAYSIZE(bizon));
  1565. ImGui::Combo(("TEC-9"), &SETTINGS::settings.tec9Skin, tec9, ARRAYSIZE(tec9));
  1566. ImGui::Combo(("P2000"), &SETTINGS::settings.P2000Skin, p2000, ARRAYSIZE(p2000));
  1567. ImGui::Combo(("P250"), &SETTINGS::settings.P250Skin, p250, ARRAYSIZE(p250));
  1568. ImGui::Combo(("Dual-Barettas"), &SETTINGS::settings.DualSkin, dual, ARRAYSIZE(dual));
  1569. ImGui::Combo(("Cz75-Auto"), &SETTINGS::settings.Cz75Skin, cz75, ARRAYSIZE(cz75));
  1570. ImGui::Combo(("Nova"), &SETTINGS::settings.NovaSkin, nova, ARRAYSIZE(nova));
  1571.  
  1572.  
  1573. }break;
  1574. case 2:
  1575. {
  1576. ImGui::Combo(("XM1014"), &SETTINGS::settings.XmSkin, xm, ARRAYSIZE(xm));
  1577. ImGui::Combo(("AWP"), &SETTINGS::settings.AWPSkin, awp, ARRAYSIZE(awp));
  1578. ImGui::Combo(("SSG08"), &SETTINGS::settings.SSG08Skin, ssg08, ARRAYSIZE(ssg08));
  1579. ImGui::Combo(("SCAR20"), &SETTINGS::settings.SCAR20Skin, scar20, ARRAYSIZE(scar20));
  1580. ImGui::Combo(("G3SG1"), &SETTINGS::settings.G3sg1Skin, g3sg1, ARRAYSIZE(g3sg1));
  1581. ImGui::Combo(("MP9"), &SETTINGS::settings.Mp9Skin, mp9, ARRAYSIZE(mp9));
  1582. ImGui::Combo(("Glock-18"), &SETTINGS::settings.GlockSkin, glock, ARRAYSIZE(glock));
  1583. ImGui::Combo(("USP-S"), &SETTINGS::settings.USPSkin, usp, ARRAYSIZE(usp));
  1584. ImGui::Combo(("Deagle"), &SETTINGS::settings.DeagleSkin, deagle, ARRAYSIZE(deagle));
  1585. ImGui::Combo(("Five-Seven"), &SETTINGS::settings.FiveSkin, five, ARRAYSIZE(five));
  1586. ImGui::Combo(("Revolver"), &SETTINGS::settings.RevolverSkin, revolver, ARRAYSIZE(revolver));
  1587. ImGui::Combo(("Negev"), &SETTINGS::settings.NegevSkin, negev, ARRAYSIZE(negev));
  1588. ImGui::Combo(("M249"), &SETTINGS::settings.M249Skin, m249, ARRAYSIZE(m249));
  1589. ImGui::Combo(("Sawed-Off"), &SETTINGS::settings.SawedSkin, sawed, ARRAYSIZE(sawed));
  1590. ImGui::Combo(("Mag-7"), &SETTINGS::settings.MagSkin, mag, ARRAYSIZE(mag));
  1591. }break;
  1592. case 3:
  1593. {
  1594. short cw = SafeWeaponID();
  1595. // ImGui::InputText(XorStr("yourshit"), SETTINGS::settings.weapons[cw].ChangerName, 128);
  1596. if (cw == 59 || cw == 500 || cw == 42 || cw == 507 || cw == 506 || cw == 508 || cw == 509 || cw == 515 || cw == 516 || cw == 505 || cw == 512 || cw == 523 || cw == 519 || cw == 521 || cw == 520 || cw == 522)
  1597. {
  1598.  
  1599. }
  1600. else
  1601. {
  1602. ImGui::InputInt(("Stikers1"), &SETTINGS::settings.weapons[cw].Stikers1);
  1603. ImGui::InputInt(("Stikers2"), &SETTINGS::settings.weapons[cw].Stikers2);
  1604. ImGui::InputInt(("Stikers3"), &SETTINGS::settings.weapons[cw].Stikers3);
  1605. ImGui::InputInt(("Stikers4"), &SETTINGS::settings.weapons[cw].Stikers4);
  1606. }
  1607.  
  1608.  
  1609. }break;
  1610.  
  1611. default:break;
  1612. }
  1613.  
  1614.  
  1615. }
  1616. ImGui::PopFont();
  1617.  
  1618. }
  1619. ImGui::EndChild();
  1620.  
  1621.  
  1622. }break;
  1623. case 4: {
  1624.  
  1625. ImGui::BeginChild("qwerq23rew", ImVec2(400, 0), true);
  1626. {
  1627. ImGui::PushFont(smallmenu_font);
  1628. {
  1629. ImGui::InputText("##CFG", ConfigNamexd, 64);
  1630. static int sel;
  1631. std::string config;
  1632. std::vector<std::string> configs = SETTINGS::settings.GetConfigs();
  1633. if (configs.size() > 0) {
  1634. ImGui::ComboBoxArrayxd("Configs", &sel, configs);
  1635. ImGui::Spacing();
  1636. ImGui::Separator();
  1637. ImGui::Spacing();
  1638. ImGui::PushItemWidth(220.f);
  1639. config = configs[SETTINGS::settings.config_sel];
  1640. }
  1641. SETTINGS::settings.config_sel = sel;
  1642.  
  1643. if (configs.size() > 0) {
  1644. if (ImGui::Button("Load", ImVec2(50, 20)))
  1645. {
  1646.  
  1647. SETTINGS::settings.Load(config);
  1648. GLOBAL::Msg("[Shonax] Configuration loaded. \n");
  1649. }
  1650. }
  1651. ImGui::SameLine();
  1652.  
  1653. if (configs.size() >= 1) {
  1654. if (ImGui::Button("Save", ImVec2(50, 20)))
  1655. {
  1656. SETTINGS::settings.Save(config);
  1657. GLOBAL::Msg("[Shonax] Configuration saved. \n");
  1658. }
  1659. }
  1660. ImGui::SameLine();
  1661. if (ImGui::Button("Create", ImVec2(50, 20)))
  1662. {
  1663. std::string ConfigFileName = ConfigNamexd;
  1664. if (ConfigFileName.size() < 1)
  1665. {
  1666. ConfigFileName = "settings";
  1667. }
  1668. SETTINGS::settings.CreateConfig(ConfigFileName);
  1669. GLOBAL::Msg("[Shonax] Configuration created. \n");
  1670. }
  1671. ImGui::SameLine();
  1672. if (config.size() >= 1) {
  1673. if (ImGui::Button("Delete", ImVec2(50, 20)))
  1674. {
  1675. SETTINGS::settings.Remove(config);
  1676. GLOBAL::Msg("[Shonax] Configuration removed. \n");
  1677. }
  1678. }
  1679.  
  1680.  
  1681. }
  1682. ImGui::PopFont();
  1683. }
  1684. ImGui::EndChild();
  1685. ImGui::SameLine();
  1686.  
  1687.  
  1688. ImGui::BeginChild("asdasdasfsdfgsdf", ImVec2(500, 0), true);
  1689. {
  1690. ImGui::PushFont(smallmenu_font);
  1691.  
  1692. ImGui::Text(("Box Colors"));
  1693. ImGui::ColorEdit4(("CT Visible##box"), SETTINGS::settings.Visuals.BoxColorPickCTVIS, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1694. ImGui::ColorEdit4(("CT invisible##box"), SETTINGS::settings.Visuals.BoxColorPickCTINVIS, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1695. ImGui::ColorEdit4(("T Visible##box"), SETTINGS::settings.Visuals.BoxColorPickTVIS, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1696. ImGui::ColorEdit4(("T invisible##box"), SETTINGS::settings.Visuals.BoxColorPickTINVIS, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1697.  
  1698.  
  1699. ImGui::Text(("Chams"));
  1700. ImGui::ColorEdit4(("Enemy visible##chams"), SETTINGS::settings.vmodel_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1701. ImGui::ColorEdit4(("Enemy invisible##chams"), SETTINGS::settings.imodel_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1702. ImGui::ColorEdit4(("Team visible##chams"), SETTINGS::settings.teamvis_color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1703. ImGui::ColorEdit4(("Team invisible##chams"), SETTINGS::settings.teaminvis_color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1704. ImGui::ColorEdit4(("Local##chams"), SETTINGS::settings.localchams_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1705.  
  1706.  
  1707. ImGui::Text(("Glows"));
  1708. ImGui::ColorEdit4(("Enemy##glow"), SETTINGS::settings.glow_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1709. ImGui::ColorEdit4(("Team##glow"), SETTINGS::settings.teamglow_color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1710. ImGui::ColorEdit4(("Local##glow"), SETTINGS::settings.glowlocal_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1711. ImGui::Text(("Bullet Tracers"));
  1712.  
  1713.  
  1714. ImGui::ColorEdit4(("Local##tracer"), SETTINGS::settings.bulletlocal_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1715. ImGui::ColorEdit4(("Enemy##tracer"), SETTINGS::settings.bulletenemy_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1716. ImGui::ColorEdit4(("Team##tracer"), SETTINGS::settings.bulletteam_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724. ImGui::Text(("Other"));
  1725. ImGui::ColorEdit4(("Grenade prediction##xd"), SETTINGS::settings.grenadepredline_col, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1726. ImGui::ColorEdit4(("Spread circle##xd"), SETTINGS::settings.spreadcirclecol, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1727. ImGui::ColorEdit4(("Fake chams##xd"), SETTINGS::settings.fakechamscol, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_AlphaBar);
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733. ImGui::PopFont();
  1734. }
  1735. ImGui::EndChild();
  1736.  
  1737.  
  1738.  
  1739. }break;
  1740. }
  1741.  
  1742. }
  1743. ImGui::End();
  1744. }
  1745.  
  1746. /*ImGui::SetNextWindowSize(ImVec2(543.3, 543.3));
  1747. style.Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.0f);
  1748. style.Colors[ImGuiCol_Border] = ImVec4(0.0f, 0.0f, 0.0f, SETTINGS::settings.sanadrawborder);
  1749. ImGui::Begin("##PharxdamcyTabs", &_xd, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoTitleBar);
  1750. {
  1751. if (SETTINGS::settings.sanaenabled) ImGui::Image(tImage, ImVec2(SETTINGS::settings.picturesw, SETTINGS::settings.picturesh));
  1752. }
  1753. ImGui::End();*/
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760. ImGui::Render();
  1761.  
  1762.  
  1763. if (SETTINGS::settings.Visuals.Enabled)
  1764. D9Visuals::Render(pDevice);
  1765.  
  1766. if (SETTINGS::settings.spread_bool == 3)
  1767. Menuxd::drawfatalpricel(pDevice);
  1768.  
  1769.  
  1770.  
  1771.  
  1772. if (INTERFACES::Engine->IsConnected() && INTERFACES::Engine->IsInGame())
  1773. {
  1774. Menuxd::DrawFilledRectangle(Menuxd::viewPort.Width - 205, 3, 17, 105, D3DCOLOR_ARGB(230, 15, 15, 15), pDevice);
  1775. Menuxd::DrawStringWithFont(Menuxd::fntVerdana11, Menuxd::viewPort.Width - 200, 5, D3D_COLOR_BLACK(240), (" Stackhack recode"));
  1776. Menuxd::DrawStringWithFont(Menuxd::fntVerdana10, Menuxd::viewPort.Width - 201, 6, D3D_COLOR_WHITE(240), (" Stackhack recode"));
  1777. }
  1778.  
  1779.  
  1780. for (int i = 0; i < size; i++)
  1781. pDevice->SetRenderState(backupStates[i], oldStates[i]);
  1782.  
  1783. return ofunc(pDevice);
  1784. }
  1785.  
  1786. long __stdcall Hooked_EndScene_Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
  1787. {
  1788. static auto ofunc = directz.get_original<EndSceneResetFn>(16);
  1789.  
  1790. if (!d3d_init)
  1791. return ofunc(pDevice, pPresentationParameters);
  1792.  
  1793. ImGui_ImplDX9_InvalidateDeviceObjects();
  1794.  
  1795. auto hr = ofunc(pDevice, pPresentationParameters);
  1796.  
  1797. ImGui_ImplDX9_CreateDeviceObjects();
  1798.  
  1799. return hr;
  1800. }
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806. typedef bool(__thiscall *FireEventClientSide)(void*, SDK::IGameEvent*);
  1807.  
  1808. bool __fastcall Hooked_FireEventClientSide(void *ecx, void* edx, SDK::IGameEvent* pEvent) {
  1809.  
  1810. static auto ofunct = fireevent.get_original<FireEventClientSide>(9);
  1811.  
  1812. if (!pEvent)
  1813. return ofunct(ecx, pEvent);
  1814.  
  1815. DamageESP::HandleGameEvent(pEvent);
  1816.  
  1817. /*
  1818. if (g_Options.NewLegitbot.Aimbot.bKillDelay && g_Options.NewLegitbot.Aimbot.Enabled)
  1819. {
  1820.  
  1821. if (strcmp(pEvent->GetName(), "player_death") == 0)
  1822. {
  1823. int attacker = Interfaces.pEngine->GetPlayerForUserID(pEvent->GetInt("attacker"));
  1824. int iLocalPlayer = Interfaces.pEngine->GetLocalPlayer();
  1825. if (attacker == iLocalPlayer)
  1826. {
  1827. G::KillStopDelay = Interfaces.pGlobalVars->curtime + g_Options.NewLegitbot.Aimbot.iKillDelay;
  1828. }
  1829. }
  1830. }
  1831. */
  1832.  
  1833. return ofunct(ecx, pEvent);
  1834. }
  1835.  
  1836.  
  1837.  
  1838.  
  1839. void InitHooks()
  1840. {
  1841. iclient_hook_manager.Init(INTERFACES::Client);
  1842. original_frame_stage_notify = reinterpret_cast<FrameStageNotifyFn>(iclient_hook_manager.HookFunction<FrameStageNotifyFn>(37, HookedFrameStageNotify));
  1843.  
  1844. panel_hook_manager.Init(INTERFACES::Panel);
  1845. original_paint_traverse = reinterpret_cast<PaintTraverseFn>(panel_hook_manager.HookFunction<PaintTraverseFn>(41, HookedPaintTraverse));
  1846.  
  1847. model_render_hook_manager.Init(INTERFACES::ModelRender);
  1848. original_draw_model_execute = reinterpret_cast<DrawModelExecuteFn>(model_render_hook_manager.HookFunction<DrawModelExecuteFn>(21, HookedDrawModelExecute));
  1849.  
  1850. scene_end_hook_manager.Init(INTERFACES::RenderView);
  1851. original_scene_end = reinterpret_cast<SceneEndFn>(scene_end_hook_manager.HookFunction<SceneEndFn>(9, HookedSceneEnd));
  1852.  
  1853. trace_hook_manager.Init(INTERFACES::Trace);
  1854. original_trace_ray = reinterpret_cast<TraceRayFn>(trace_hook_manager.HookFunction<TraceRayFn>(5, HookedTraceRay));
  1855.  
  1856. override_view_hook_manager.Init(INTERFACES::ClientMode);
  1857. original_override_view = reinterpret_cast<OverrideViewFn>(override_view_hook_manager.HookFunction<OverrideViewFn>(18, HookedOverrideView));
  1858. original_create_move = reinterpret_cast<CreateMoveFn>(override_view_hook_manager.HookFunction<CreateMoveFn>(24, HookedCreateMove));
  1859. original_viewmodel_fov = reinterpret_cast<GetViewmodelFOVFn>(override_view_hook_manager.HookFunction<GetViewmodelFOVFn>(35, GetViewmodelFOV));
  1860.  
  1861. auto sv_cheats = INTERFACES::cvar->FindVar("sv_cheats");
  1862. get_bool_manager = VMT::VMTHookManager(reinterpret_cast<DWORD**>(sv_cheats));
  1863. original_get_bool = reinterpret_cast<SvCheatsGetBoolFn>(get_bool_manager.HookFunction<SvCheatsGetBoolFn>(13, HookedGetBool));
  1864.  
  1865.  
  1866.  
  1867. fireevent.setup(INTERFACES::GameEventManager);
  1868. fireevent.hook_index(9, Hooked_FireEventClientSide);
  1869.  
  1870.  
  1871. while (!(INIT::Window = FindWindowA("Valve001", nullptr)))
  1872. Sleep(100);
  1873. if (INIT::Window)
  1874. INIT::OldWindow = (WNDPROC)SetWindowLongPtr(INIT::Window, GWL_WNDPROC, (LONG_PTR)Hooked_WndProc);
  1875. DWORD DeviceStructureAddress = **(DWORD**)(UTILS::FindSignature("shaderapidx9.dll", "A1 ?? ?? ?? ?? 50 8B 08 FF 51 0C") + 1);
  1876. if (DeviceStructureAddress) {
  1877. directz.setup((DWORD**)DeviceStructureAddress);
  1878. directz.hook_index(16, Hooked_EndScene_Reset);
  1879. directz.hook_index(42, Hooked_EndScene);
  1880.  
  1881. }
  1882. }
  1883. void EyeAnglesPitchHook(const SDK::CRecvProxyData *pData, void *pStruct, void *pOut)
  1884. {
  1885. *reinterpret_cast<float*>(pOut) = pData->m_Value.m_Float;
  1886.  
  1887. auto entity = reinterpret_cast<SDK::CBaseEntity*>(pStruct);
  1888. if (!entity)
  1889. return;
  1890.  
  1891. }
  1892. void EyeAnglesYawHook(const SDK::CRecvProxyData *pData, void *pStruct, void *pOut)
  1893. {
  1894. *reinterpret_cast<float*>(pOut) = pData->m_Value.m_Float;
  1895.  
  1896. auto entity = reinterpret_cast<SDK::CBaseEntity*>(pStruct);
  1897. if (!entity)
  1898. return;
  1899. }
  1900. void InitNetvarHooks()
  1901. {
  1902. UTILS::netvar_hook_manager.Hook("DT_CSPlayer", "m_angEyeAngles[0]", EyeAnglesPitchHook);
  1903. UTILS::netvar_hook_manager.Hook("DT_CSPlayer", "m_angEyeAngles[1]", EyeAnglesYawHook);
  1904. }
  1905. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement