Thunder-Menu

Gta5 Clouds Color

Jan 10th, 2023 (edited)
1,326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 73.97 KB | Gaming | 0 0
  1.     char* m_zenith_patch;
  2.     char* m_zenith_transition_patch;
  3.     char* m_east_azimuth_patch;
  4.     char* m_west_azimuth_patch;
  5.     char* m_azimuth_transition_patch;
  6.     char* m_cloud_base_patch;
  7.     PVOID shitter_crash;
  8.     float* red_zenith;
  9.     float* green_zenith;
  10.     float* blue_zenith;
  11.     float* red_transition;
  12.     float* green_transition;
  13.     float* blue_transition;
  14.     float* red_cloud;
  15.     float* green_cloud;
  16.     float* blue_cloud;
  17.     float* m_azimuth_west_red;
  18.     float* m_azimuth_west_green;
  19.     float* m_azimuth_west_blue;
  20.     float* m_azimuth_est_red;
  21.     float* m_azimuth_est_green;
  22.     float* m_azimuth_est_blue;
  23.  
  24.     m_zenith_patch(Signature("0F 29 A2 B0 00 00 00 8B 81 58 03 00 00").Scan().As<decltype(m_zenith_patch)>()),//GTA5.exe+E3FF77
  25.     m_zenith_transition_patch(Signature("0F 29 A2 E0 00 00 00").Scan().As<decltype(m_zenith_transition_patch)>()),//GTA5.exe+E3FFB1
  26.     m_east_azimuth_patch(Signature("0F 29 62 20").Scan().As<decltype(m_east_azimuth_patch)>()),//GTA5.exe+E3FEC9
  27.     m_west_azimuth_patch(Signature("0F 29 62 50 8B 81 9C 03 00 00").Scan().As<decltype(m_west_azimuth_patch)>()),//GTA5.exe+E3FEFD
  28.     m_azimuth_transition_patch(Signature("0F 29 A2 80 00 00 00").Scan().As<decltype(m_azimuth_transition_patch)>()),//GTA5.exe+E3FF31
  29.     m_cloud_base_patch(Signature("0F 29 A2 80 03 00 00").Scan().As<decltype(m_cloud_base_patch)>()),//GTA5.exe+E402F1
  30.     red_zenith(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? 3E ? ? ? 3F ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? ? 3F ? ? ? 3F 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C0 35 3F ? C0 35 3F ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 80 42 ? ? ? 43 ? ? 80 3C ? ? ? ? 24 ?").Scan().As<float*>()),//GTA5.exe+26BB960
  31.     green_zenith(Signature("? ? ? ? ? ? ? ? ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? 3E ? ? ? 3F ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? ? 3F ? ? ? 3F 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C0 35 3F ? C0 35 3F ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 80 42 ? ? ? 43 ? ? 80 3C ? ? ? ? 24 ?").Scan().As<float*>()),//GTA5.exe+26BB964
  32.     blue_zenith(Signature("? ? ? ? ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? 3E ? ? ? 3F ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? ? 3F ? ? ? 3F 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C0 35 3F ? C0 35 3F ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 80 42 ? ? ? 43 ? ? 80 3C ? ? ? ? 24 ?").Scan().As<float*>()),//GTA5.exe+26BB968
  33.     red_transition(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25").Scan().As<float*>()),//GTA5.exe+26BB990
  34.     green_transition(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25").Scan().As<float*>()),//GTA5.exe+26BB994
  35.     blue_transition(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 27 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 26 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 44 ? ? 80 42 ? ? ? 43 ? ? ? ? 25").Scan().As<float*>()),//GTA5.exe+26BB998
  36.     red_cloud(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? B8 ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? 17 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3C 16 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3C ?").Scan().As<float*>()),//GTA5.exe+26BBC30
  37.     green_cloud(Signature("? ? ? ? ? ? ? ? ? ? ? ? 1B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? B8 ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? 17 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3C 16 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3C ?").Scan().As<float*>()),//GTA5.exe+26BBC34
  38.     blue_cloud(Signature("? ? ? ? ? ? ? ? 1B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? B8 ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? 17 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 40 ? ? ? ? ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3C 16 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3C ?").Scan().As<float*>()),//GTA5.exe+26BBC38
  39.     m_azimuth_west_red(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? 80 3F 2A ? ? ? ? ? ? 3F ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB900
  40.     m_azimuth_west_green(Signature("? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? 80 3F 2A ? ? ? ? ? ? 3F ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB904
  41.     m_azimuth_west_blue(Signature("? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3E ? ? ? ? ? ? 80 3F 2A ? ? ? ? ? ? 3F ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3D ? ? ? 3D ? E0 B0 3C ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB908
  42.     m_azimuth_est_red(Signature("? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 2C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB8D0
  43.     m_azimuth_est_green(Signature("? ? ? ? ? ? ? ? ? ? ? 3D ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 2C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB8D4
  44.     m_azimuth_est_blue(Signature("? ? ? ? ? ? ? 3D ? ? 80 3F ? ? ? ? ? ? ? ? ? ? ? ? 2C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3D ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 2B ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 29 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? E0 B0 3C ? ? ? 3F ? ? ? ? ? ? ? ? ? ? ? ? 28").Scan().As<float*>()),//GTA5.exe+26BB8D8
  45.  
  46. std::size_t element_id = 0;
  47. const char* cloud_type[] = {
  48.  
  49.         "shower", "Snowy 01", "Stormy 01", "Stratoscumulus", "Stripey", "Wispy", "Altostratus", "Cirrocumulus", "Altostratus", "Clear 01", "Cloudy 01" ,"Contrails", "NoClouds", "Puffs", "Rain", "Snow"
  50. }; std::size_t cloud_id = 0;
  51.  
  52. void set_clouds(const char* texture)
  53. {
  54.     GAMEPLAY::LOAD_CLOUD_HAT((char*)texture, 3.f);
  55. }
  56.  
  57. int m_function::changeclouds()
  58. {
  59.     for (int i = 0; i < ARRAYSIZE(cloud_type); i++)
  60.     {
  61.         if (Menu::Option(cloud_type[i]))
  62.         {
  63.             set_clouds(cloud_type[i]);
  64.         }
  65.     }
  66.     return 0;
  67. };
  68.  
  69. namespace engine
  70. {
  71.     inline void nop(uint64_t address, uint32_t size) {
  72.         uint32_t old;
  73.         VirtualProtect((void*)address, size, PAGE_EXECUTE_READWRITE, (DWORD*)&old);
  74.         memset((void*)address, 0x90, size);
  75.         VirtualProtect((void*)address, size, old, (DWORD*)&old);
  76.     }
  77.  
  78.     inline uintptr_t scan_address(uintptr_t ptr, std::vector<unsigned int> offsets)
  79.     {
  80.         uintptr_t addr = ptr;
  81.         for (unsigned int i = 0; i < offsets.size(); ++i)
  82.         {
  83.             addr = *(uintptr_t*)addr;
  84.             addr += offsets[i];
  85.         }
  86.         return addr;
  87.     }
  88. }
  89. #pragma region azimuthz
  90.         case azimuthz:
  91.         {
  92.             Menu::Title("Change Color");
  93.             headers::thunderheaders();
  94.             Menu::Float("zenith_red value", g_Settings.zenith_red, 0.f, 255.0f, 1.f);
  95.             Menu::Float("zenith_green value", g_Settings.zenith_green, 0.f, 255.0f, 1.f);
  96.             Menu::Float("zenith_blue value", g_Settings.zenith_blue, 0.f, 255.0f, 1.f);
  97.             Menu::Float("zenith_intensity value", m_vars.m_zenith_intensity, 0.f, 255.0f, 1.f);
  98.             if (Menu::Option("Color Pattern1"))
  99.             {
  100.                 std::fill_n(g_GameVariables->m_zenith_patch, 7, '\x90');
  101.                 *(float*)g_GameVariables->red_zenith = (g_Settings.zenith_red / 255.f) * m_vars.m_azimuth_transition_intensity;
  102.                 *(float*)g_GameVariables->green_zenith = (g_Settings.zenith_green / 255.f) * m_vars.m_azimuth_transition_intensity;
  103.                 *(float*)g_GameVariables->blue_zenith = (g_Settings.zenith_blue / 255.f) * m_vars.m_azimuth_transition_intensity;
  104.             }
  105.             if (Menu::Option("Color Pattern2"))
  106.             {
  107.                 std::fill_n(g_GameVariables->m_zenith_patch, 7, '\x90');
  108.                 DWORD hash_code = (((int)m_vars.m_zenith_intensity & 0xFF) << 24) + (((int)g_Settings.zenith_red & 0xFF) << 16) + (((int)g_Settings.zenith_green & 0xFF) << 8) + ((int)g_Settings.zenith_blue & 0xFF);
  109.                 g_Settings.m_SkyAlpha = (hash_code & 0xFF000000) >> 24;
  110.                 g_Settings.m_SkyRed = (hash_code & 0x00FF0000) >> 16;
  111.                 g_Settings.m_SkyGreen = (hash_code & 0x0000FF00) >> 8;
  112.                 g_Settings.m_SkyBlue = (hash_code & 0x000000FF);
  113.                 *(float*)g_GameVariables->red_zenith = (g_Settings.m_SkyRed / 255.f) * g_Settings.m_SkyAlpha;
  114.                 *(float*)g_GameVariables->green_zenith = (g_Settings.m_SkyGreen / 255.f) * g_Settings.m_SkyAlpha;
  115.                 *(float*)g_GameVariables->blue_zenith = (g_Settings.m_SkyBlue / 255.f) * g_Settings.m_SkyAlpha;
  116.             }
  117.             if (Menu::Option("Color Pattern3"))
  118.             {
  119.                 std::fill_n(g_GameVariables->m_zenith_patch, 7, '\x90');
  120.                 DWORD hash_code = (((int)m_vars.m_zenith_intensity & 0xFF) << 24) + (((int)g_Settings.zenith_red & 0xFF) << 16) + (((int)g_Settings.zenith_green & 0xFF) << 8) + ((int)g_Settings.zenith_blue & 0xFF);
  121.                 g_Settings.m_SkyAlpha = (hash_code & 0xFF000000) >> 24;
  122.                 g_Settings.m_SkyRed = (hash_code & 0x00FF0000) >> 16;
  123.                 g_Settings.m_SkyGreen = (hash_code & 0x0000FF00) >> 8;
  124.                 g_Settings.m_SkyBlue = (hash_code & 0x000000FF);
  125.                 *(float*)g_GameVariables->red_zenith = g_Settings.m_SkyRed;
  126.                 *(float*)g_GameVariables->green_zenith = g_Settings.m_SkyGreen;
  127.                 *(float*)g_GameVariables->blue_zenith = g_Settings.m_SkyBlue;
  128.             }
  129.             Menu::Float("m_zenith_transition_red value", m_vars.m_zenith_transition_red, 0.f, 255.0f, 1.f);
  130.             Menu::Float("m_zenith_transition_green value", m_vars.m_zenith_transition_green, 0.f, 255.0f, 1.f);
  131.             Menu::Float("m_zenith_transition_blue value", m_vars.m_zenith_transition_blue, 0.f, 255.0f, 1.f);
  132.             Menu::Float("zenith_intensity value", m_vars.m_zenith_intensity, 0.f, 255.0f, 1.f);
  133.             if (Menu::Option("Color Transition"))
  134.             {
  135.                 std::fill_n(g_GameVariables->m_zenith_transition_patch, 7, '\x90');
  136.                 uintptr_t base_address = uintptr_t(GetModuleHandleA(nullptr));
  137.                 uintptr_t zenith_transition_red = engine::scan_address(base_address + 0x26BB990, {});
  138.                 uintptr_t zenith_transition_green = engine::scan_address(base_address + 0x26BB994, {});
  139.                 uintptr_t zenith_transition_blue = engine::scan_address(base_address + 0x26BB998, {});
  140.  
  141.                 *(float*)zenith_transition_red = (m_vars.m_zenith_transition_red / 255.f) * m_vars.m_zenith_transition_intensity;
  142.                 *(float*)zenith_transition_green = (m_vars.m_zenith_transition_green / 255.f) * m_vars.m_zenith_transition_intensity;
  143.                 *(float*)zenith_transition_blue = (m_vars.m_zenith_transition_blue / 255.f) * m_vars.m_zenith_transition_intensity;
  144.             }
  145.             if (Menu::Option("Color Transition Pattern"))
  146.             {
  147.                 std::fill_n(g_GameVariables->m_zenith_transition_patch, 7, '\x90');
  148.                 DWORD hash_code = (((int)m_vars.m_zenith_intensity & 0xFF) << 24) + (((int)g_Settings.zenith_red & 0xFF) << 16) + (((int)g_Settings.zenith_green & 0xFF) << 8) + ((int)g_Settings.zenith_blue & 0xFF);
  149.                 g_Settings.m_SkyAlpha = (hash_code & 0xFF000000) >> 24;
  150.                 g_Settings.m_SkyRed = (hash_code & 0x00FF0000) >> 16;
  151.                 g_Settings.m_SkyGreen = (hash_code & 0x0000FF00) >> 8;
  152.                 g_Settings.m_SkyBlue = (hash_code & 0x000000FF);
  153.                 *(float*)g_GameVariables->red_transition = g_Settings.m_SkyRed;
  154.                 *(float*)g_GameVariables->green_transition = g_Settings.m_SkyGreen;
  155.                 *(float*)g_GameVariables->blue_transition = g_Settings.m_SkyBlue;
  156.             }
  157.             if (Menu::Option("Reset"))
  158.             {
  159.                 std::copy_n("\x0F\x29\xA2\xE0", 7, g_GameVariables->m_zenith_transition_patch);
  160.             }
  161.             headers::thunderbackgrounds();
  162.             backgrounds::casefourteen();
  163.         }
  164.         break;
  165. #pragma endregion
  166. #pragma region azimuthwest
  167.         case azimuthwest:
  168.         {
  169.             Menu::Title("Change Color");
  170.             headers::thunderheaders();
  171.             Menu::Float("m_azimuth_west_red value", m_vars.m_azimuth_west_red, 0.f, 255.0f, 1.f);
  172.             Menu::Float("m_azimuth_west_green value", m_vars.m_azimuth_west_green, 0.f, 255.0f, 1.f);
  173.             Menu::Float("m_azimuth_west_blue value", m_vars.m_azimuth_west_blue, 0.f, 255.0f, 1.f);
  174.             Menu::Float("m_azimuth_west_intensity value", m_vars.m_azimuth_west_intensity, 0.f, 255.0f, 1.f);
  175.             if (Menu::Option("m_azimuth_west"))
  176.             {
  177.                 std::fill_n(g_GameVariables->m_west_azimuth_patch, 4, '\x90');
  178.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  179.                 uintptr_t west_red = engine::scan_address(g_base_address + 0x26BB900, {});
  180.                 uintptr_t west_green = engine::scan_address(g_base_address + 0x26BB904, {});
  181.                 uintptr_t west_blue = engine::scan_address(g_base_address + 0x26BB908, {});
  182.                 *(float*)west_red = (m_vars.m_azimuth_west_red / 255.f) * m_vars.m_azimuth_west_intensity;
  183.                 *(float*)west_green = (m_vars.m_azimuth_west_green / 255.f) * m_vars.m_azimuth_west_intensity;
  184.                 *(float*)west_blue = (m_vars.m_azimuth_west_blue / 255.f) * m_vars.m_azimuth_west_intensity;
  185.             }
  186.             if (Menu::Option("m_azimuth_west Pattern"))
  187.             {
  188.                 std::fill_n(g_GameVariables->m_west_azimuth_patch, 4, '\x90');
  189.                 *(float*)g_GameVariables->m_azimuth_west_red = (m_vars.m_azimuth_west_red / 255.f) * m_vars.m_azimuth_west_intensity;
  190.                 *(float*)g_GameVariables->m_azimuth_west_green = (m_vars.m_azimuth_west_green / 255.f) * m_vars.m_azimuth_west_intensity;
  191.                 *(float*)g_GameVariables->m_azimuth_west_blue = (m_vars.m_azimuth_west_blue / 255.f) * m_vars.m_azimuth_west_intensity;
  192.             }
  193.             if (Menu::Option("Reset"))
  194.             {
  195.                 std::copy_n("\x0F\x29\x62\x50", 4, g_GameVariables->m_west_azimuth_patch);
  196.             }
  197.             headers::thunderbackgrounds();
  198.             backgrounds::caseseven();
  199.         }
  200.         break;
  201. #pragma endregion
  202. #pragma region azimuthtransition
  203.         case azimuthtransition:
  204.         {          
  205.             Menu::Title("Change Color");
  206.             headers::thunderheaders();
  207.             Menu::Float("m_azimuth_transition_red value", m_vars.m_azimuth_transition_red, 0.f, 255.0f, 1.f);
  208.             Menu::Float("m_azimuth_transition_green value", m_vars.m_azimuth_transition_green, 0.f, 255.0f, 1.f);
  209.             Menu::Float("m_azimuth_transition_blue value", m_vars.m_azimuth_transition_blue, 0.f, 255.0f, 1.f);
  210.             Menu::Float("m_azimuth_transition_intensity value", m_vars.m_azimuth_transition_intensity, 0.f, 255.0f, 1.f);
  211.             if (Menu::Option("m_azimuth_transition"))
  212.             {
  213.                 std::fill_n(g_GameVariables->m_azimuth_transition_patch, 7, '\x90');
  214.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  215.                 uintptr_t azi_trans_red = engine::scan_address(g_base_address + 0x26BB930, {});
  216.                 uintptr_t azi_trans_green = engine::scan_address(g_base_address + 0x26BB934, {});
  217.                 uintptr_t azi_trans_blue = engine::scan_address(g_base_address + 0x26BB938, {});
  218.                 *(float*)azi_trans_red = (m_vars.m_azimuth_transition_red / 255.f) * m_vars.m_azimuth_transition_intensity;
  219.                 *(float*)azi_trans_green = (m_vars.m_azimuth_transition_green / 255.f) * m_vars.m_azimuth_transition_intensity;
  220.                 *(float*)azi_trans_blue = (m_vars.m_azimuth_transition_blue / 255.f) * m_vars.m_azimuth_transition_intensity;
  221.             }
  222.             if (Menu::Option("Reset"))
  223.             {
  224.                 std::copy_n("\x0F\x29\xA2\x80", 7, g_GameVariables->m_azimuth_transition_patch);
  225.             }
  226.             headers::thunderbackgrounds();
  227.             backgrounds::casesix();
  228.         }
  229.         break;
  230. #pragma endregion
  231. #pragma region zenith
  232.         case zenith:
  233.         {
  234.             Menu::Title("Change Color");
  235.             headers::thunderheaders();
  236.             Menu::Float("zenith_red value", m_vars.m_zenith_red, 0.f, 255.0f, 1.f);
  237.             Menu::Float("zenith_green value", m_vars.m_zenith_green, 0.f, 255.0f, 1.f);
  238.             Menu::Float("zenith_blue value", m_vars.m_zenith_blue, 0.f, 255.0f, 1.f);
  239.             Menu::Float("zenith_intensity value", m_vars.m_zenith_intensity, 0.f, 255.0f, 1.f);
  240.             if (Menu::Option("Clouds Color"))
  241.             {
  242.                 std::fill_n(g_GameVariables->m_zenith_patch, 7, '\x90');
  243.                 uintptr_t base_address = uintptr_t(GetModuleHandleA(nullptr));
  244.                 uintptr_t zenith_red = engine::scan_address(base_address + 0x26BB960, {});
  245.                 uintptr_t zenith_green = engine::scan_address(base_address + 0x26BB964, {});
  246.                 uintptr_t zenith_blue = engine::scan_address(base_address + 0x26BB968, {});
  247.                 *(float*)zenith_red = (m_vars.m_zenith_red / 255.f) * m_vars.m_zenith_intensity;
  248.                 *(float*)zenith_green = (m_vars.m_zenith_green / 255.f) * m_vars.m_zenith_intensity;
  249.                 *(float*)zenith_blue = (m_vars.m_zenith_blue / 255.f) * m_vars.m_zenith_intensity;
  250.             }
  251.             headers::thunderbackgrounds();
  252.             backgrounds::caseseven();
  253.         }
  254.         break;
  255. #pragma endregion
  256. #pragma region azimutheast
  257.         case azimutheast:
  258.         {
  259.             Menu::Title("Change Color");
  260.             headers::thunderheaders();
  261.             Menu::Float("m_azimuth_east_red value", m_vars.m_azimuth_east_red, 0.f, 255.0f, 1.f);
  262.             Menu::Float("m_azimuth_east_green value", m_vars.m_azimuth_east_green, 0.f, 255.0f, 1.f);
  263.             Menu::Float("m_azimuth_east_blue value", m_vars.m_azimuth_east_blue, 0.f, 255.0f, 1.f);
  264.             Menu::Float("m_azimuth_east_intensity value", m_vars.m_azimuth_east_intensity, 0.f, 255.0f, 1.f);
  265.             if (Menu::Option("m_azimuth_east "))
  266.             {
  267.                 std::fill_n(g_GameVariables->m_east_azimuth_patch, 4, '\x90');
  268.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  269.                 uintptr_t east_red = engine::scan_address(g_base_address + 0x26BB8D0, {});
  270.                 uintptr_t east_green = engine::scan_address(g_base_address + 0x26BB8D4, {});
  271.                 uintptr_t east_blue = engine::scan_address(g_base_address + 0x26BB8D8, {});
  272.                 *(float*)east_red = (m_vars.m_azimuth_east_red / 255.f) * m_vars.m_azimuth_east_intensity;
  273.                 *(float*)east_green = (m_vars.m_azimuth_east_green / 255.f) * m_vars.m_azimuth_east_intensity;
  274.                 *(float*)east_blue = (m_vars.m_azimuth_east_blue / 255.f) * m_vars.m_azimuth_east_intensity;
  275.             }
  276.             if (Menu::Option("m_azimuth_east Pattern"))
  277.             {
  278.                 std::fill_n(g_GameVariables->m_east_azimuth_patch, 4, '\x90');
  279.                 *(float*)g_GameVariables->m_azimuth_est_red = (m_vars.m_azimuth_east_red / 255.f) * m_vars.m_azimuth_east_intensity;
  280.                 *(float*)g_GameVariables->m_azimuth_est_green = (m_vars.m_azimuth_east_green / 255.f) * m_vars.m_azimuth_east_intensity;
  281.                 *(float*)g_GameVariables->m_azimuth_est_blue = (m_vars.m_azimuth_east_blue / 255.f) * m_vars.m_azimuth_east_intensity;
  282.             }
  283.             if (Menu::Option("Reset "))
  284.             {
  285.                 std::copy_n("\x0F\x29\x62\x20", 4, g_GameVariables->m_east_azimuth_patch);
  286.             }
  287.             headers::thunderbackgrounds();
  288.             backgrounds::caseseven();
  289.         }
  290.         break;
  291. #pragma endregion
  292. #pragma region azimutheast
  293.         case cloudbase:
  294.         {
  295.             Menu::Title("Change Color");
  296.             headers::thunderheaders();
  297.             Menu::Float("m_cloud_base_red value", m_vars.m_cloud_base_red, 0.f, 255.0f, 1.f);
  298.             Menu::Float("m_cloud_base_green value", m_vars.m_cloud_base_green, 0.f, 255.0f, 1.f);
  299.             Menu::Float("m_cloud_base_blue value", m_vars.m_cloud_base_blue, 0.f, 255.0f, 1.f);
  300.             Menu::Float("m_cloud_base_intensity value", m_vars.m_cloud_base_intensity, 0.f, 255.0f, 1.f);
  301.             if (Menu::Option("cloud_base "))
  302.             {
  303.                 std::fill_n(g_GameVariables->m_cloud_base_patch, 7, '\x90');
  304.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  305.                 uintptr_t cloud_base_red = engine::scan_address(g_base_address + 0x26BBC30, {});
  306.                 uintptr_t cloud_base_green = engine::scan_address(g_base_address + 0x26BBC34, {});
  307.                 uintptr_t cloud_base_blue = engine::scan_address(g_base_address + 0x26BBC38, {});
  308.                 *(float*)cloud_base_red = (m_vars.m_cloud_base_red / 255.f) * m_vars.m_cloud_base_intensity;
  309.                 *(float*)cloud_base_green = (m_vars.m_cloud_base_green / 255.f) * m_vars.m_cloud_base_intensity;
  310.                 *(float*)cloud_base_blue = (m_vars.m_cloud_base_blue / 255.f) * m_vars.m_cloud_base_intensity;
  311.             }
  312.             if (Menu::Option("cloud_base Pattern"))
  313.             {
  314.                 std::fill_n(g_GameVariables->m_cloud_base_patch, 7, '\x90');
  315.                 *(float*)g_GameVariables->red_cloud = (m_vars.m_cloud_base_red / 255.f) * m_vars.m_cloud_base_intensity;
  316.                 *(float*)g_GameVariables->green_cloud = (m_vars.m_cloud_base_green / 255.f) * m_vars.m_cloud_base_intensity;
  317.                 *(float*)g_GameVariables->blue_cloud = (m_vars.m_cloud_base_blue / 255.f) * m_vars.m_cloud_base_intensity;
  318.             }
  319.             if (Menu::Option("Reset"))
  320.             {
  321.                 std::copy_n("\x0F\x29\xA2\x80\x03", 7, g_GameVariables->m_cloud_base_patch);
  322.             }
  323.             headers::thunderbackgrounds();
  324.             backgrounds::caseseven();
  325.         }
  326.         break;
  327. #pragma endregion
  328.  
  329.             bool getwaterpointer;
  330.                 if (Menu::Option("Get Water Pointer")) {
  331.                     auto WaterPtr2 = Memory::pattern("48 8B D9 48 6B DB 1C 48 2B F9 48 8B 05 ? ? ? ?");
  332.                     DWORD64* d_location = nullptr;
  333.                     d_location = (DWORD64*)WaterPtr2.count(1).get(0).get<DWORD64*>(0);
  334.                     std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  335.                     DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  336.                     Log::Msg((char*)datar.c_str());
  337.                     Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  338.                     std::stringstream myStrm(datar);
  339.                     DWORD64 x;
  340.                     myStrm >> x;
  341.                     std::string address2;
  342.                     stringstream addrs2;
  343.                     addrs2 << hex << "0x" << x;
  344.                     address2 = addrs2.str();
  345.                     Log::Msg((char*)address2.c_str());
  346.  
  347.                     std::string address;
  348.                     stringstream addrs;
  349.                     addrs << hex << "0x" << base_address;
  350.                     address = addrs.str();
  351.                     Log::Msg((char*)address.c_str());
  352.                     std::stringstream myStrm1;
  353.                     myStrm1 << base_address;
  354.                     DWORD64 x1;
  355.                     myStrm1 >> x1;
  356.                     std::stringstream myStrm2(datar);
  357.                     DWORD64 x2;
  358.                     myStrm2 >> x2;
  359.                     DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  360.                     Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  361.                     std::string address3;
  362.                     stringstream addrs3;
  363.                     addrs3 << hex << "0x" << in2;
  364.                     address3 = addrs3.str();
  365.                     Log::Msg((char*)address3.c_str());
  366.                     Addresss::AddressPTR2 = new char[address3.size() + 1];
  367.                     strcpy(Addresss::AddressPTR2, address3.c_str());
  368.                     Addresss::AddressPTR1 = in2;
  369.                     getwaterpointer = 1;
  370.                 }
  371.                 if (getwaterpointer)
  372.                 {
  373.                     Menu::Toggle("Swim Anywhere", anywhere::swimbool);
  374.    
  375.                 Menu::Float("m_WaterOpacity value", g_Settings.m_WaterOpacity, 0.f, 255.0f, 1.f);
  376.                 Menu::Int("m_WaterLevel value", g_Settings.m_WaterLevel, -1000, 1000, 1);
  377.                 Menu::Int("m_WaterLevel Height value", g_Settings.m_WaterLevel, -1000, 1000, 10);
  378.                 if (Menu::Option("Water Level From Address")) {
  379.                     static DWORD64 water_address, water_pointer = 0;
  380.                     DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  381.                     if (water_address == 0)
  382.                         water_address = engine::scan_address(base_address + 0x58a695, {}) + 0xA;
  383.                     Log::Msg((char*)std::string(std::to_string(water_address)).c_str());
  384.                     if (water_pointer == 0 && water_address != 0)
  385.                         water_pointer = ((water_address + *(DWORD*)(water_address + 0x3)) + 0x7);
  386.                     for (int i = 0; i < 821; i++)
  387.                     {
  388.                         CWaterDataItem* Water = (CWaterDataItem*)(*(DWORD64*)water_pointer + (i * 0x1c));
  389.                         Water->fHeight = g_Settings.m_WaterLevel;
  390.                         Water->iAlphaNE = g_Settings.m_WaterOpacity;
  391.                         Water->iAlphaNW = g_Settings.m_WaterOpacity;
  392.                         Water->iAlphaSE = g_Settings.m_WaterOpacity;
  393.                         Water->iAlphaSW = g_Settings.m_WaterOpacity;
  394.                     }
  395.                 }
  396.                 if (Menu::Option("Change Water Level From GetPointer")) {
  397.                     static DWORD64 water_address, water_pointer = 0;
  398.                     DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  399.                     if (water_address == 0)
  400.                         water_address = engine::scan_address(base_address + Addresss::AddressPTR1, {}) + 0xA;
  401.                     Log::Msg((char*)std::string(std::to_string(water_address)).c_str());
  402.                     if (water_pointer == 0 && water_address != 0)
  403.                         water_pointer = ((water_address + *(DWORD*)(water_address + 0x3)) + 0x7);
  404.                     for (int i = 0; i < 821; i++)
  405.                     {
  406.                         CWaterDataItem* Water = (CWaterDataItem*)(*(DWORD64*)water_pointer + (i * 0x1c));
  407.                         Water->fHeight = g_Settings.m_WaterLevel;
  408.                         Water->iAlphaNE = g_Settings.m_WaterOpacity;
  409.                         Water->iAlphaNW = g_Settings.m_WaterOpacity;
  410.                         Water->iAlphaSE = g_Settings.m_WaterOpacity;
  411.                         Water->iAlphaSW = g_Settings.m_WaterOpacity;
  412.                     }
  413.                 }
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.                 bool watertunes;
  425.                 if (Menu::Option("WaterTunes GetPointer")) {
  426.                     Log::Msg("Water Tune");
  427.                     auto WaterPtr2 = Memory::pattern("0F B6 05 ? ? ? ? 0F 28 4C 24 ?");
  428.                     DWORD64* d_location = nullptr;
  429.                     d_location = (DWORD64*)WaterPtr2.count(1).get(0).get<DWORD64*>(0);
  430.                     std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  431.                     DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  432.                     Log::Msg((char*)datar.c_str());
  433.                     Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  434.                     std::stringstream myStrm(datar);
  435.                     DWORD64 x;
  436.                     myStrm >> x;
  437.                     std::string address2;
  438.                     stringstream addrs2;
  439.                     addrs2 << hex << "0x" << x;
  440.                     address2 = addrs2.str();
  441.                     Log::Msg((char*)address2.c_str());
  442.  
  443.                     std::string address;
  444.                     stringstream addrs;
  445.                     addrs << hex << "0x" << base_address;
  446.                     address = addrs.str();
  447.                     Log::Msg((char*)address.c_str());
  448.                     std::stringstream myStrm1;
  449.                     myStrm1 << base_address;
  450.                     DWORD64 x1;
  451.                     myStrm1 >> x1;
  452.                     std::stringstream myStrm2(datar);
  453.                     DWORD64 x2;
  454.                     myStrm2 >> x2;
  455.                     DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  456.                     Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  457.                     std::string address3;
  458.                     stringstream addrs3;
  459.                     addrs3 << hex << "0x" << in2;
  460.                     address3 = addrs3.str();
  461.                     Log::Msg((char*)address3.c_str());
  462.                     Addresss::AddressPTR01 = in2;
  463.                     watertunes = 1;
  464.                 }
  465.                 if (watertunes)
  466.                 {
  467.                     Menu::Float("spec value", g_Settings.spec, -255.0f, 255.0f, 1.f);
  468.                     if (Menu::Option("fSpecularFalloff from address")) {
  469.                         static DWORD64 water_address, water_pointer = 0;
  470.                         uintptr_t base_address = uintptr_t(GetModuleHandleA(nullptr));
  471.                         water_address = engine::scan_address(base_address + 0x585C28, {});
  472.                         water_pointer = ((water_address + *(DWORD*)(water_address + 0x3)) + 0x4);
  473.                         CWaterTune* WaterTune = (CWaterTune*)water_pointer;
  474.                         WaterTune->fSpecularFalloff = g_Settings.spec;
  475.                     }
  476.                     if (Menu::Option("fSpecularFalloff from getpointer")) {
  477.                         static DWORD64 water_address, water_pointer = 0;
  478.                         uintptr_t base_address = uintptr_t(GetModuleHandleA(nullptr));
  479.                         water_address = engine::scan_address(base_address + Addresss::AddressPTR01, {});
  480.                         water_pointer = ((water_address + *(DWORD*)(water_address + 0x3)) + 0x4);
  481.                         CWaterTune* WaterTune = reinterpret_cast<CWaterTune*>(water_pointer);
  482.                         WaterTune->fSpecularFalloff = g_Settings.spec;
  483.                     }
  484.  
  485.                 Menu::Int("red value water", g_Settings.red, 0, 255, 1);
  486.                 Menu::Int("green value", g_Settings.green, 0, 255, 1);
  487.                 Menu::Int("blue value", g_Settings.blue, 0, 255, 1);
  488.                 Menu::Int("alpha value", g_Settings.alpha, 0, 255, 1);
  489.  
  490.  
  491.  
  492.                 if (Menu::Option("m_Water Color")) {
  493.                     static DWORD64 water_address, water_pointer = 0;
  494.                     uintptr_t base_address = uintptr_t(GetModuleHandleA(nullptr));
  495.                     if (water_address == 0)
  496.                         water_address = engine::scan_address(base_address + 0x585C28, {});
  497.                     if (water_pointer == 0 && water_address != 0)
  498.                         water_pointer = ((water_address + *(DWORD*)(water_address + 0x3)) + 0x4);
  499.                     std::string watercolor;
  500.                     DWORD value = ((g_Settings.red & 0xFF) << 24) + ((g_Settings.green & 0xFF) << 16) + ((g_Settings.blue & 0xFF) << 8) + (g_Settings.alpha & 0xFF);
  501.                     stringstream hcolor;
  502.                     hcolor << hex << value;
  503.                     watercolor = hcolor.str();
  504.                     std::stringstream myStrm2(watercolor);
  505.                     /*std::stringstream myStrm2;
  506.  
  507.                     myStrm2 << "0x" << value;*/
  508.                     DWORD64 x2;
  509.                     myStrm2 >> x2;
  510.  
  511.                     CWaterTune* water = (CWaterTune*)water_pointer;
  512.                     water->dwWaterColor = x2;
  513.                 }
  514.  
  515.                 }
  516.                  }
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. bool antispamming[32] = { 0 };
  530.  
  531. int GiveVehicle::transactionerror()
  532. {
  533.     DWORD ticks10 = GetTickCount64();
  534.     DWORD milliseconds10 = ticks10 % 1000;
  535.     ticks10 /= 1000;
  536.     DWORD seconds10 = ticks10 % 60;
  537.     int getTimer10 = seconds10;
  538.     if (getTimer10 % 1 == 0)
  539.     {
  540.         for (int i = 0; i < 32; i++)
  541.         {
  542.             if (Features::errorsend[i])
  543.             {
  544.                 if (ENTITY::DOES_ENTITY_EXIST(Hooking::get_player_ped(i)))
  545.                 {
  546.                     unsigned int playerBit = (1 << i);
  547.                     auto var0 = globalHandle(1894573 + 1 + i * 608 + 510).As<std::uint64_t>();
  548.                     auto var1 = globalHandle(1923597 + 9).As<std::uint64_t>();
  549.                     int ssplay = PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(i);
  550.                     int zero0 = -492741651;
  551.                     int numberzero = 0;
  552.                     int tenk = 10000;
  553.                     uint64_t zerofoo = (uint64_t)numberzero;
  554.                     uint64_t kten = (uint64_t)tenk;
  555.                     uint64_t sssplay = (uint64_t)ssplay;
  556.                     uint64_t foozero = (uint64_t)zero0;
  557.                     uint64_t errortransaction[8] = { foozero, sssplay, kten, zerofoo, zerofoo, var0, var1, var1 };
  558.                     RtlSecureZeroMemory(errortransaction, sizeof(errortransaction));
  559.                     errortransaction[0] = foozero;
  560.                     errortransaction[1] = sssplay;
  561.                     errortransaction[2] = kten;
  562.                     errortransaction[3] = zerofoo;
  563.                     errortransaction[4] = zerofoo;
  564.                     errortransaction[5] = var0;
  565.                     errortransaction[6] = var1;
  566.                     errortransaction[7] = var1;
  567.                     Hooking::trigger_script_event(1, &errortransaction[0], 8, playerBit);
  568.                 }
  569.                 else {
  570.                     Features::errorsend[i] = 0;
  571.                 }
  572.             }
  573.         }
  574.     }
  575.     return 0;
  576. }
  577. bool GiveVehicle::antispambool = 0;
  578. int GiveVehicle::antispam()
  579. {
  580.     std::uint64_t args_1[3] = { -904555865, net_playerm_player_id, 1 };
  581.     std::uint64_t args_2[3] = { 879177392, net_playerm_player_id, 1 };
  582.     std::uint64_t args_3[3] = { -168599209, net_playerm_player_id, 1 };
  583.     std::uint64_t args_4[3] = { 1192608757, net_playerm_player_id, 1 };
  584.     std::uint64_t args_5[3] = { 1124104301, net_playerm_player_id, 1 };
  585.     std::uint64_t args_6[3] = { -904555865, net_playerm_player_id, 1 };
  586.     std::uint64_t args_7[10] = { -904555865, net_playerm_player_id, 0,  1229879414 , 1742796505 , -1794944145 , -480124848 , 439776191 , -2062014584 , 2120444344 };
  587.     std::uint64_t args_8[12] = { 879177392, net_playerm_player_id, -72614, 63007, 59027, -12012, -26996, 33398, 33398, 63007, -72614, 59027 };
  588.     std::uint64_t args_9[46] = { -904555865, net_playerm_player_id, -2147483647, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534 };
  589.     std::uint64_t args_10[46] = { 879177392, net_playerm_player_id, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 2147483647, 65534, 65534,65534, 65534, 65534, 65534, 2147483647, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, 65534, -2147483647, 65534, 65534, 65534, -2147483647 };
  590.     std::uint64_t args_11[46] = { 548471420, net_playerm_player_id, -904555865, -989654618, 879177392, -2113023004, 548471420, 1249026189, 1033875141, 315658550, 1124104301, -601625146 - 2043109205, -989654618, 879177392, -2113023004, 548471420, 1249026189, 1033875141, 315658550, -877212109, -601625146 - 2043109205, -989654618, 879177392, -2113023004, 548471420, 1249026189, 1033875141, 315658550, 1124104301, -601625146 - 2043109205, -989654618, 879177392, -1881357102, 548471420, 1249026189, 1033875141, 315658550, 1124104301, -601625146 };
  591.     std::uint64_t args_12[46] = { 879177392, net_playerm_player_id, 868904806, 262276366, -747991709, 1545080914, -51510646, 1790326295, 389113600, -617567498, -601391132, -564503258, -601625146 - 2043109205, -989654618, 879177392, -2113023004, 548471420, 1249026189, 1033875141, 315658550, -601625146 - 2043109205, -989654618, 879177392, -2113023004, 548471420, 1249026189, 1033875141, 315658550 };
  592.     Hooking::trigger_script_event(1, args_1, 3, 1 << net_playerm_player_id);
  593.     Hooking::trigger_script_event(1, args_2, 3, 1 << net_playerm_player_id);
  594.     Hooking::trigger_script_event(1, args_3, 3, 1 << net_playerm_player_id);
  595.     Hooking::trigger_script_event(1, args_4, 3, 1 << net_playerm_player_id);
  596.     Hooking::trigger_script_event(1, args_5, 3, 1 << net_playerm_player_id);
  597.     Hooking::trigger_script_event(1, args_6, 3, 1 << net_playerm_player_id);
  598.     Hooking::trigger_script_event(1, args_6, 3, 1 << net_playerm_player_id);
  599.     Hooking::trigger_script_event(1, args_7, 10, 1 << net_playerm_player_id);
  600.     Hooking::trigger_script_event(1, args_8, 12, 1 << net_playerm_player_id);
  601.     Hooking::trigger_script_event(1, args_9, 46, 1 << net_playerm_player_id);
  602.     Hooking::trigger_script_event(1, args_10, 46, 1 << net_playerm_player_id);
  603.     Hooking::trigger_script_event(1, args_11, 46, 1 << net_playerm_player_id);
  604.     Hooking::trigger_script_event(1, args_12, 46, 1 << net_playerm_player_id);
  605.     GiveVehicle::antispambool = 0;
  606.     Log::Msg("Anti Spam");
  607.     if (!Features::errorsend[net_playerm_player_id])
  608.     Features::errorsend[net_playerm_player_id] = !Features::errorsend[net_playerm_player_id];
  609.     GiveVehicle::transactionerror();
  610.     Log::Msg("Event Send Complet");
  611.     return 0;
  612. }
  613.  
  614. string convertToString(char* a, int size)
  615. {
  616.     int i;
  617.     string s = "";
  618.     for (i = 0; i < size; i++) {
  619.         s = s + a[i];
  620.     }
  621.     return s;
  622. }
  623. #pragma execution_character_set("utf-8")
  624. int cleanrepeat()
  625. {
  626.     StopRepeat01 = "";
  627.     StopRepeat02 = "";
  628.     StopRepeat03 = "";
  629.     StopRepeat04 = "";
  630.     StopRepeat001 = "";
  631.     StopRepeat002 = "";
  632.     StopRepeat003 = "";
  633.     StopRepeat004 = "";
  634.     StopRepeat1 = "";
  635.     StopRepeat2 = "";
  636.     StopRepeat3 = "";
  637.     StopRepeat4 = "";
  638.     return 0;
  639. }
  640. std::vector<std::string> splitText(const std::string& s, char delimiter)
  641. {
  642.     std::vector<std::string> tokens;
  643.     std::string token;
  644.     std::istringstream tokenStream(s);
  645.     while (std::getline(tokenStream, token, delimiter))
  646.     {
  647.         tokens.push_back(token);
  648.     }
  649.     return tokens;
  650. }
  651.  
  652.     if (GiveVehicle::norepeat)
  653.         {
  654.  
  655.             net_playerm_player_id = net_player->m_player_id;
  656.             numrepeat = numrepeat + 1;
  657.             bool checkword = 1;
  658.             if (numrepeat == 1)
  659.             {
  660.             SpamRepeatint1 = net_playerm_player_id;
  661.             char a[] = { (char)msg };
  662.             int a_size = sizeof(a) / sizeof(char);
  663.             string cs = convertToString(a, a_size);
  664.                 std::string sprogram = " ";
  665.                 std::string::size_type ig = cs.find(sprogram);
  666.                 if (ig != std::string::npos)
  667.                 {
  668.                 std::vector<std::string> words = splitText(msg, ' ');
  669.                     if (words[0] != "")
  670.                     {
  671.                         StopRepeat1 = words[0];
  672.                     }
  673.                     if (words[1] != "")
  674.                     {
  675.                         StopRepeat2 = words[1];
  676.                     }
  677.                     if (words[1] == "")
  678.                     {
  679.                         checkword = 0;
  680.                         goto endantispam;
  681.                     }
  682.                     if (checkword)
  683.                     {
  684.                         if (words[2] != "")
  685.                         {
  686.                             StopRepeat3 = words[2];
  687.                         }
  688.                         if (words[2] == "")
  689.                         {
  690.                             checkword = 0;
  691.                             goto endantispam;
  692.                         }
  693.                         if (words[3] != "")
  694.                         {
  695.                             StopRepeat4 = words[3];
  696.                         }
  697.                         if (words[3] == "")
  698.                         {
  699.                             checkword = 0;
  700.                             goto endantispam;
  701.                         }
  702.                     }
  703.                 }
  704.                 else
  705.                 {
  706.                     checkword = 0;
  707.                     goto endantispam;
  708.                 }
  709.                 }
  710.             if (numrepeat == 2)
  711.             {
  712.                 SpamRepeatint2 = net_playerm_player_id;
  713.                 if (SpamRepeatint1 == SpamRepeatint2)
  714.                 {
  715.                     char a[] = { (char)msg };
  716.                     int a_size = sizeof(a) / sizeof(char);
  717.                     string cs = convertToString(a, a_size);
  718.                     std::string sprogram = " ";
  719.                     std::string::size_type ig = cs.find(sprogram);
  720.                     if (ig != std::string::npos)
  721.                     {
  722.                         std::vector<std::string> words = splitText(msg, ' ');
  723.                         if (words[0] != "")
  724.                         {
  725.                             StopRepeat01 = words[0];
  726.                         }
  727.                         if (words[1] != "")
  728.                         {
  729.                             StopRepeat02 = words[1];
  730.                         }
  731.                         if (words[1] == "")
  732.                         {
  733.                             checkword = 0;
  734.                             goto endantispam;
  735.                         }
  736.                         if (checkword)
  737.                         {
  738.                             if (words[2] != "")
  739.                             {
  740.                                 StopRepeat03 = words[2];
  741.                             }
  742.                             if (words[2] == "")
  743.                             {
  744.                                 goto endantispam;
  745.                             }
  746.                             if (words[3] != "")
  747.                             {
  748.                                 StopRepeat04 = words[3];
  749.                             }
  750.                             if (words[3] == "")
  751.                             {
  752.                                 goto endantispam;
  753.                             }
  754.                         }
  755.                     }
  756.                     else
  757.                     {
  758.                         checkword = 0;
  759.                         goto endantispam;
  760.                     }
  761.                 }
  762.                 if (SpamRepeatint1 != SpamRepeatint2)
  763.                 {
  764.                     checkword = 0;
  765.                     goto endantispam;
  766.                 }
  767.             }
  768.             if (numrepeat == 3)
  769.             {
  770.                 SpamRepeatint2 = net_playerm_player_id;
  771.                 if (SpamRepeatint1 == SpamRepeatint2)
  772.                 {
  773.                     char a[] = { (char)msg };
  774.                     int a_size = sizeof(a) / sizeof(char);
  775.                     string cs = convertToString(a, a_size);
  776.                     std::string sprogram = " ";
  777.                     std::string::size_type ig = cs.find(sprogram);
  778.                     if (ig != std::string::npos)
  779.                     {
  780.                     std::vector<std::string> words = splitText(msg, ' ');
  781.                     if (words[0] != "")
  782.                     {
  783.                         StopRepeat001 = words[0];
  784.                         if ((char*)StopRepeat001.c_str() != (char*)StopRepeat01.c_str())
  785.                         {
  786.                             goto endantispam;
  787.                         }
  788.                     }
  789.                     if (words[1] != "")
  790.                     {
  791.                         StopRepeat002 = words[1];
  792.                         if ((char*)StopRepeat002.c_str() != (char*)StopRepeat02.c_str())
  793.                         {
  794.                             goto endantispam;
  795.                         }
  796.                     }
  797.                     if ((char*)StopRepeat002.c_str() == "")
  798.                     {
  799.                         goto endantispam;
  800.                     }
  801.                     if (words[1] == "")
  802.                     {
  803.                         checkword = 0;
  804.                         goto endantispam;
  805.                     }
  806.                     if (checkword)
  807.                     {
  808.                         if (words[2] != "")
  809.                         {
  810.                             StopRepeat003 = words[3];
  811.                             if ((char*)StopRepeat003.c_str() != (char*)StopRepeat03.c_str())
  812.                             {
  813.                                 goto endantispam;
  814.                             }
  815.                         }
  816.                         if (words[2] == "")
  817.                         {
  818.                             checkword = 0;
  819.                             goto endantispam;
  820.                         }
  821.                         if (words[3] != "")
  822.                         {
  823.                             StopRepeat004 = words[4];
  824.                             if ((char*)StopRepeat004.c_str() != (char*)StopRepeat04.c_str())
  825.                             {
  826.                                 goto endantispam;
  827.                             }
  828.                             if ((char*)StopRepeat004.c_str() == (char*)StopRepeat04.c_str())
  829.                             {
  830.                                 activeantispam();
  831.                                 goto endantispam;
  832.                             }
  833.                         }
  834.                         if (words[3] == "")
  835.                         {
  836.                             checkword = 0;
  837.                             goto endantispam;
  838.                         }
  839.                     }
  840.                     }
  841.                     else
  842.                     {
  843.                         checkword = 0;
  844.                         goto endantispam;
  845.                     }
  846.                 }
  847.                 if (SpamRepeatint1 != SpamRepeatint2)
  848.                 {
  849.                     goto endantispam;
  850.                 }
  851.             }
  852.             endantispam:
  853.             {
  854.                 cleanrepeat();
  855.                 numrepeat = 0;
  856.             }
  857.         }
  858.  
  859.  
  860.             Menu::MenuOption((char*)langage::Times.c_str(), LobbyTimes);
  861.             if (Menu::Option((char*)langage::h3.c_str())) { TIME::SET_CLOCK_TIME(3, 0, 0); }
  862.             if (Menu::Option((char*)langage::h16.c_str())) { TIME::SET_CLOCK_TIME(16, 0, 0); }
  863.             Menu::Float("starintensity value", g_Settings.starintensity, 0.f, 5000.0f, 100.f);
  864.             if (Menu::Option("Star"))
  865.             {
  866.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  867.                 memset(reinterpret_cast<void*>(g_base_address + 0xE436B8), 0x90, 4);
  868.                 *(float*)engine::scan_address(g_base_address + 0x282263C, {}) = g_Settings.starintensity;
  869.             }
  870.             if (Menu::Option("Reset Star"))
  871.             {
  872.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  873.                 std::copy_n("\x0F\x29\x49\xF0", 4, reinterpret_cast<char*>(g_base_address + 0xE436B8));
  874.                 std::copy_n("\x0F\x29\xA2\xE0", 4, reinterpret_cast<char*>(g_base_address + 0xE3FFB1));
  875.             }
  876.  
  877.             Menu::Float("redmoon value", g_Settings.moonred, 0.f, 255.0f, 1.f);
  878.             Menu::Float("greenmoon value", g_Settings.moongreen, 0.f, 255.0f, 1.f);
  879.             Menu::Float("bluemoon value", g_Settings.moonblue, 0.f, 255.0f, 1.f);
  880.             Menu::Float("moonalpha value", g_Settings.moonalpha, 0.f, 255.0f, 1.f);
  881.             if (Menu::Option("Moon"))
  882.             {
  883.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  884.                 memset(reinterpret_cast<void*>(g_base_address + 0xE436B1), 0x90, 4);
  885.                 uintptr_t redmoon = engine::scan_address(g_base_address + 0x2822628, {});
  886.                 uintptr_t greenmoon = engine::scan_address(g_base_address + 0x282262C, {});
  887.                 uintptr_t bluemoon = engine::scan_address(g_base_address + 0x2822630, {});
  888.                 *(float*)redmoon = (g_Settings.moonred / 255.f) * g_Settings.moonalpha;
  889.                 *(float*)greenmoon = (g_Settings.moongreen / 255.f) * g_Settings.moonalpha;
  890.                 *(float*)bluemoon = (g_Settings.moonblue / 255.f) * g_Settings.moonalpha;
  891.             }
  892.             if (Menu::Option("Reset Moon"))
  893.             {
  894.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  895.                 std::copy_n("\x0F\x29\x41\x60", 4, reinterpret_cast<char*>(g_base_address + 0xE436B1));
  896.             }
  897.  
  898.  
  899.  
  900. Menu::Float("redsun value", g_Settings.sunred, 0.f, 255.0f, 1.f);
  901.             Menu::Float("greensun value", g_Settings.sungreen, 0.f, 255.0f, 1.f);
  902.             Menu::Float("bluesun value", g_Settings.sunblue, 0.f, 255.0f, 1.f);
  903.             Menu::Float("sunalpha value", g_Settings.sunalpha, 0.f, 255.0f, 1.f);
  904.             if (Menu::Option("sun"))
  905.             {
  906.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  907.                 memset(reinterpret_cast<void*>(g_base_address + 0xE4369E), 0x90, 4);
  908.                 uintptr_t redsun = engine::scan_address(g_base_address + 0x2822600, {});
  909.                 uintptr_t greensun = engine::scan_address(g_base_address + 0x2822604, {});
  910.                 uintptr_t bluesun = engine::scan_address(g_base_address + 0x2822608, {});
  911.                 *(float*)redsun = (g_Settings.sunred / 255.f) * g_Settings.sunalpha;
  912.                 *(float*)greensun = (g_Settings.sungreen / 255.f) * g_Settings.sunalpha;
  913.                 *(float*)bluesun = (g_Settings.sunblue / 255.f) * g_Settings.sunalpha;
  914.             }
  915.             if (Menu::Option("Reset Sun"))
  916.             {
  917.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  918.                 std::copy_n("\x0F\x29\x41\x40", 4, reinterpret_cast<char*>(g_base_address + 0xE4369E));
  919.             }
  920.             Menu::Float("redsun2 value", g_Settings.sunred2, 0.f, 255.0f, 1.f);
  921.             Menu::Float("greensun2 value", g_Settings.sungreen2, 0.f, 255.0f, 1.f);
  922.             Menu::Float("bluesun2 value", g_Settings.sunblue2, 0.f, 255.0f, 1.f);
  923.             Menu::Float("sunalpha2 value", g_Settings.sunalpha2, 0.f, 255.0f, 1.f);
  924.             if (Menu::Option("sun Atmosphère"))
  925.             {
  926.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  927.                 memset(reinterpret_cast<void*>(g_base_address + 0xE43696), 0x90, 4);
  928.                 uintptr_t redsun2 = engine::scan_address(g_base_address + 0x28225F4, {});
  929.                 uintptr_t greensun2 = engine::scan_address(g_base_address + 0x28225F8, {});
  930.                 uintptr_t bluesun2 = engine::scan_address(g_base_address + 0x28225FC, {});
  931.                 *(float*)redsun2 = (g_Settings.sunred2 / 255.f) * g_Settings.sunalpha2;
  932.                 *(float*)greensun2 = (g_Settings.sungreen2 / 255.f) * g_Settings.sunalpha2;
  933.                 *(float*)bluesun2 = (g_Settings.sunblue2 / 255.f) * g_Settings.sunalpha2;
  934.             }
  935.             if (Menu::Option("Reset Sun Atmosph"))
  936.             {
  937.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  938.                 std::copy_n("\x0F\x29\x49\x30", 4, reinterpret_cast<char*>(g_base_address + 0xE43696));
  939.             }
  940.  
  941.  
  942.  
  943.             Menu::Float("redsky value", g_Settings.sky_red_p, 0.f, 255.0f, 1.f);
  944.             Menu::Float("greensky value", g_Settings.sky_green_p, 0.f, 255.0f, 1.f);
  945.             Menu::Float("bluesky value", g_Settings.sky_blue_p, 0.f, 255.0f, 1.f);
  946.             Menu::Float("skyalpha value", g_Settings.sky_alpha_p, 0.f, 255.0f, 1.f);
  947.             if (Menu::Option("Sky Pattern"))
  948.             {
  949.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  950.                 DWORD64* d_location = nullptr;
  951.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  952.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  953.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  954.                 Log::Msg((char*)datar.c_str());
  955.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  956.                 std::stringstream myStrm(datar);
  957.                 DWORD64 x;
  958.                 myStrm >> x;
  959.                 std::string address2;
  960.                 stringstream addrs2;
  961.                 addrs2 << hex << "0x" << x;
  962.                 address2 = addrs2.str();
  963.                 Log::Msg((char*)address2.c_str());
  964.  
  965.                 std::string address;
  966.                 stringstream addrs;
  967.                 addrs << hex << "0x" << base_address;
  968.                 address = addrs.str();
  969.                 Log::Msg((char*)address.c_str());
  970.                 std::stringstream myStrm1;
  971.                 myStrm1 << base_address;
  972.                 DWORD64 x1;
  973.                 myStrm1 >> x1;
  974.                 std::stringstream myStrm2(datar);
  975.                 DWORD64 x2;
  976.                 myStrm2 >> x2;
  977.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  978.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  979.                 std::string address3;
  980.                 stringstream addrs3;
  981.                 addrs3 << hex << "0x" << in2;
  982.                 address3 = addrs3.str();
  983.                 Log::Msg((char*)address3.c_str());
  984.  
  985.                 Addresss::SkyPointer = in2;
  986.                 Addresss::SkyPointerred = (DWORD64)Addresss::SkyPointer - (DWORD64)0x5C7;//0x2822D9F - 0x28227D8 = 0x5C7
  987.                 Addresss::SkyPointergreen = (DWORD64)Addresss::SkyPointer - (DWORD64)0x5C3;//0x2822D9F - 0x28227DC = 0x5C3
  988.                 Addresss::SkyPointerblue = (DWORD64)Addresss::SkyPointer - (DWORD64)0x5BF;//0x2822D9F - 0x28227E0 = 0x5BF
  989.                 Addresss::SkyPointerpatch = (DWORD64)Addresss::SkyPointer - (DWORD64)0x19DF719;//0x2822D9F - 0xE43686 = 0x19DF719
  990.                 //GTA5.exe+E43686 - 0F29 49 10
  991.  
  992.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch), 0x90, 4);
  993.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::SkyPointerred, {});
  994.                 uintptr_t greensky2 = engine::scan_address(base_address + Addresss::SkyPointergreen, {});
  995.                 uintptr_t bluesky2 = engine::scan_address(base_address + Addresss::SkyPointerblue, {});
  996.                 *(float*)redsky2 = (g_Settings.sky_red_p / 255.f) * g_Settings.sky_alpha_p;
  997.                 *(float*)greensky2 = (g_Settings.sky_green_p / 255.f) * g_Settings.sky_alpha_p;
  998.                 *(float*)bluesky2 = (g_Settings.sky_blue_p / 255.f) * g_Settings.sky_alpha_p;
  999.  
  1000.                 /*
  1001.                  GTA5.exe+E43686 - 0F29 49 10
  1002.                 //  7FF60BF327D8
  1003.                 //  GTA5.exe + 28227D8//red
  1004.                 //  7FF60BF327DC
  1005.                 //  GTA5.exe + 28227DC//green
  1006.                 //  7FF60BF327E0
  1007.                 //  GTA5.exe + 28227E0//blue
  1008.                 */
  1009.             }
  1010.             if (Menu::Option("Reset Sky"))
  1011.             {
  1012.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1013.                 std::copy_n("\x0F\x29\x49\x10", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch));//0xE43686
  1014.             }
  1015.  
  1016.  
  1017.             Menu::Float("redsky1 value", g_Settings.sky_red_p1, 0.f, 255.0f, 1.f);
  1018.             Menu::Float("greensky1 value", g_Settings.sky_green_p1, 0.f, 255.0f, 1.f);
  1019.             Menu::Float("bluesky1 value", g_Settings.sky_blue_p1, 0.f, 255.0f, 1.f);
  1020.             Menu::Float("skyalpha1 value", g_Settings.sky_alpha_p1, 0.f, 255.0f, 1.f);
  1021.  
  1022.             if (Menu::Option("Sky1 Pattern"))
  1023.             {
  1024.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1025.                 DWORD64* d_location = nullptr;
  1026.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  1027.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1028.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1029.                 Log::Msg((char*)datar.c_str());
  1030.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1031.                 std::stringstream myStrm(datar);
  1032.                 DWORD64 x;
  1033.                 myStrm >> x;
  1034.                 std::string address2;
  1035.                 stringstream addrs2;
  1036.                 addrs2 << hex << "0x" << x;
  1037.                 address2 = addrs2.str();
  1038.                 Log::Msg((char*)address2.c_str());
  1039.  
  1040.                 std::string address;
  1041.                 stringstream addrs;
  1042.                 addrs << hex << "0x" << base_address;
  1043.                 address = addrs.str();
  1044.                 Log::Msg((char*)address.c_str());
  1045.                 std::stringstream myStrm1;
  1046.                 myStrm1 << base_address;
  1047.                 DWORD64 x1;
  1048.                 myStrm1 >> x1;
  1049.                 std::stringstream myStrm2(datar);
  1050.                 DWORD64 x2;
  1051.                 myStrm2 >> x2;
  1052.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1053.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1054.                 std::string address3;
  1055.                 stringstream addrs3;
  1056.                 addrs3 << hex << "0x" << in2;
  1057.                 address3 = addrs3.str();
  1058.                 Log::Msg((char*)address3.c_str());
  1059.  
  1060.                 Addresss::SkyPointer1 = in2;
  1061.  
  1062.                 Addresss::SkyPointerred1 = (DWORD64)Addresss::SkyPointer1 - (DWORD64)0x73F;//0x2822D9F - 0x2822660 = 0x73F
  1063.                 Addresss::SkyPointergreen1 = (DWORD64)Addresss::SkyPointer1 - (DWORD64)0x73B;//0x2822D9F - 0x2822664 = 0x73B
  1064.                 Addresss::SkyPointerblue1 = (DWORD64)Addresss::SkyPointer1 - (DWORD64)0x737;//0x2822D9F - 0x2822668 = 0x737
  1065.                 Addresss::SkyPointerpatch1 = (DWORD64)Addresss::SkyPointer1 - (DWORD64)0x19DF711;//0x2822D9F - 0xE4368E = 0x19DF711
  1066.                 //GTA5.exe+E4368E - 0F29 41 20
  1067.  
  1068.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch1), 0x90, 4);
  1069.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::SkyPointerred1, {});
  1070.                 uintptr_t greensky2 = engine::scan_address(base_address + Addresss::SkyPointergreen1, {});
  1071.                 uintptr_t bluesky2 = engine::scan_address(base_address + Addresss::SkyPointerblue1, {});
  1072.                 *(float*)redsky2 = (g_Settings.sky_red_p1 / 255.f) * g_Settings.sky_alpha_p1;
  1073.                 *(float*)greensky2 = (g_Settings.sky_green_p1 / 255.f) * g_Settings.sky_alpha_p1;
  1074.                 *(float*)bluesky2 = (g_Settings.sky_blue_p1 / 255.f) * g_Settings.sky_alpha_p1;
  1075.  
  1076.             }
  1077.             if (Menu::Option("Reset Sky1"))
  1078.             {
  1079.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1080.                 std::copy_n("\x0F\x29\x41\x20", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch1));
  1081.             }
  1082.  
  1083.             Menu::Float("redsky2 value", g_Settings.sky_red_p2, 0.f, 255.0f, 1.f);
  1084.             Menu::Float("greensky2 value", g_Settings.sky_green_p2, 0.f, 255.0f, 1.f);
  1085.             Menu::Float("bluesky2 value", g_Settings.sky_blue_p2, 0.f, 255.0f, 1.f);
  1086.             Menu::Float("skyalpha2 value", g_Settings.sky_alpha_p2, 0.f, 255.0f, 1.f);
  1087.  
  1088.             if (Menu::Option("Sky2 Pattern"))
  1089.             {
  1090.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1091.                 DWORD64* d_location = nullptr;
  1092.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  1093.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1094.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1095.                 Log::Msg((char*)datar.c_str());
  1096.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1097.                 std::stringstream myStrm(datar);
  1098.                 DWORD64 x;
  1099.                 myStrm >> x;
  1100.                 std::string address2;
  1101.                 stringstream addrs2;
  1102.                 addrs2 << hex << "0x" << x;
  1103.                 address2 = addrs2.str();
  1104.                 Log::Msg((char*)address2.c_str());
  1105.  
  1106.                 std::string address;
  1107.                 stringstream addrs;
  1108.                 addrs << hex << "0x" << base_address;
  1109.                 address = addrs.str();
  1110.                 Log::Msg((char*)address.c_str());
  1111.                 std::stringstream myStrm1;
  1112.                 myStrm1 << base_address;
  1113.                 DWORD64 x1;
  1114.                 myStrm1 >> x1;
  1115.                 std::stringstream myStrm2(datar);
  1116.                 DWORD64 x2;
  1117.                 myStrm2 >> x2;
  1118.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1119.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1120.                 std::string address3;
  1121.                 stringstream addrs3;
  1122.                 addrs3 << hex << "0x" << in2;
  1123.                 address3 = addrs3.str();
  1124.                 Log::Msg((char*)address3.c_str());
  1125.  
  1126.                 Addresss::SkyPointer2 = in2;
  1127.  
  1128.                 Addresss::SkyPointerred2 = (DWORD64)Addresss::SkyPointer2 - (DWORD64)0x733;//0x2822D9F - 0x282266C = 0x733
  1129.                 Addresss::SkyPointergreen2 = (DWORD64)Addresss::SkyPointer2 - (DWORD64)0x72F;//0x2822D9F - 0x2822670 = 0x72F
  1130.                 Addresss::SkyPointerblue2 = (DWORD64)Addresss::SkyPointer2 - (DWORD64)0x72B;//0x2822D9F - 0x2822674 = 0x72B
  1131.                 Addresss::SkyPointerpatch2 = (DWORD64)Addresss::SkyPointer2 - (DWORD64)0x19DF711;//0x2822D9F - 0xE4368E = 0x19DF711
  1132.                 //GTA5.exe + E4368E - 0F29 41 20 - movaps[rcx + 20], xmm0
  1133.  
  1134.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch2), 0x90, 4);
  1135.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::SkyPointerred2, {});
  1136.                 uintptr_t greensky2 = engine::scan_address(base_address + Addresss::SkyPointergreen2, {});
  1137.                 uintptr_t bluesky2 = engine::scan_address(base_address + Addresss::SkyPointerblue2, {});
  1138.                 *(float*)redsky2 = (g_Settings.sky_red_p2 / 255.f) * g_Settings.sky_alpha_p2;
  1139.                 *(float*)greensky2 = (g_Settings.sky_green_p2 / 255.f) * g_Settings.sky_alpha_p2;
  1140.                 *(float*)bluesky2 = (g_Settings.sky_blue_p2 / 255.f) * g_Settings.sky_alpha_p2;
  1141.  
  1142.             }
  1143.             if (Menu::Option("Reset Sky2"))
  1144.             {
  1145.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1146.                 std::copy_n("\x0F\x29\x41\x20", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch2));
  1147.             }
  1148.  
  1149.             Menu::Float("redsky3 value", g_Settings.sky_red_p3, 0.f, 255.0f, 1.f);
  1150.             Menu::Float("greensky3 value", g_Settings.sky_green_p3, 0.f, 255.0f, 1.f);
  1151.             Menu::Float("bluesky3 value", g_Settings.sky_blue_p3, 0.f, 255.0f, 1.f);
  1152.             Menu::Float("skyalpha3 value", g_Settings.sky_alpha_p3, 0.f, 255.0f, 1.f);
  1153.  
  1154.             if (Menu::Option("Sky3 Pattern"))
  1155.             {
  1156.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1157.                 DWORD64* d_location = nullptr;
  1158.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  1159.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1160.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1161.                 Log::Msg((char*)datar.c_str());
  1162.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1163.                 std::stringstream myStrm(datar);
  1164.                 DWORD64 x;
  1165.                 myStrm >> x;
  1166.                 std::string address2;
  1167.                 stringstream addrs2;
  1168.                 addrs2 << hex << "0x" << x;
  1169.                 address2 = addrs2.str();
  1170.                 Log::Msg((char*)address2.c_str());
  1171.  
  1172.                 std::string address;
  1173.                 stringstream addrs;
  1174.                 addrs << hex << "0x" << base_address;
  1175.                 address = addrs.str();
  1176.                 Log::Msg((char*)address.c_str());
  1177.                 std::stringstream myStrm1;
  1178.                 myStrm1 << base_address;
  1179.                 DWORD64 x1;
  1180.                 myStrm1 >> x1;
  1181.                 std::stringstream myStrm2(datar);
  1182.                 DWORD64 x2;
  1183.                 myStrm2 >> x2;
  1184.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1185.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1186.                 std::string address3;
  1187.                 stringstream addrs3;
  1188.                 addrs3 << hex << "0x" << in2;
  1189.                 address3 = addrs3.str();
  1190.                 Log::Msg((char*)address3.c_str());
  1191.  
  1192.                 Addresss::SkyPointer3 = in2;
  1193.                 Addresss::SkyPointerred3 = (DWORD64)Addresss::SkyPointer3 - (DWORD64)0x723;//0x2822D9F - 0x282267C = 0x723
  1194.                 Addresss::SkyPointergreen3 = (DWORD64)Addresss::SkyPointer3 - (DWORD64)0x71F;//0x2822D9F - 0x2822680 = 0x71F
  1195.                 Addresss::SkyPointerblue3 = (DWORD64)Addresss::SkyPointer3 - (DWORD64)0x71B;//0x2822D9F - 0x2822684 = 0x71B
  1196.                 Addresss::SkyPointerpatch3 = (DWORD64)Addresss::SkyPointer3 - (DWORD64)0x19DF709;//0x2822D9F - 0xE43696 = 0x19DF709
  1197.                 Addresss::SkyPointerpatch3_ = (DWORD64)Addresss::SkyPointer3 - (DWORD64)0x19DF701;//0x2822D9F - 0xE4369E = 0x19DF701
  1198.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch3), 0x90, 4);
  1199.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch3_), 0x90, 4);
  1200.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::SkyPointerred3, {});
  1201.                 uintptr_t greensky2 = engine::scan_address(base_address + Addresss::SkyPointergreen3, {});
  1202.                 uintptr_t bluesky2 = engine::scan_address(base_address + Addresss::SkyPointerblue3, {});
  1203.                 *(float*)redsky2 = (g_Settings.sky_red_p3 / 255.f) * g_Settings.sky_alpha_p3;
  1204.                 *(float*)greensky2 = (g_Settings.sky_green_p3 / 255.f) * g_Settings.sky_alpha_p3;
  1205.                 *(float*)bluesky2 = (g_Settings.sky_blue_p3 / 255.f) * g_Settings.sky_alpha_p3;
  1206.             }
  1207.  
  1208.             if (Menu::Option("Reset Sky3"))
  1209.             {
  1210.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1211.                 std::copy_n("\x0F\x29\x49\x30", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch3));
  1212.                 std::copy_n("\x0F\x29\x41\x40", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch3_));
  1213.             }
  1214.  
  1215.             Menu::Float("Clouds value", g_Settings.sky_intensity_p4, 0.f, 5555.0f, 1.f);
  1216.             if (Menu::Option("Clouds1 Pattern"))
  1217.             {
  1218.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1219.                 DWORD64* d_location = nullptr;
  1220.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  1221.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1222.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1223.                 Log::Msg((char*)datar.c_str());
  1224.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1225.                 std::stringstream myStrm(datar);
  1226.                 DWORD64 x;
  1227.                 myStrm >> x;
  1228.                 std::string address2;
  1229.                 stringstream addrs2;
  1230.                 addrs2 << hex << "0x" << x;
  1231.                 address2 = addrs2.str();
  1232.                 Log::Msg((char*)address2.c_str());
  1233.  
  1234.                 std::string address;
  1235.                 stringstream addrs;
  1236.                 addrs << hex << "0x" << base_address;
  1237.                 address = addrs.str();
  1238.                 Log::Msg((char*)address.c_str());
  1239.                 std::stringstream myStrm1;
  1240.                 myStrm1 << base_address;
  1241.                 DWORD64 x1;
  1242.                 myStrm1 >> x1;
  1243.                 std::stringstream myStrm2(datar);
  1244.                 DWORD64 x2;
  1245.                 myStrm2 >> x2;
  1246.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1247.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1248.                 std::string address3;
  1249.                 stringstream addrs3;
  1250.                 addrs3 << hex << "0x" << in2;
  1251.                 address3 = addrs3.str();
  1252.                 Log::Msg((char*)address3.c_str());
  1253.                 Addresss::SkyPointer4 = in2;
  1254.                 Addresss::getSkyPointer4 = (DWORD64)Addresss::SkyPointer4 - (DWORD64)0x707;//0x2822D9F - 0x2822698 = 0x707     
  1255.                 Addresss::SkyPointerpatch4 = (DWORD64)Addresss::SkyPointer4 - (DWORD64)0x19DF6F9;//0x2822D9F - 0xE436A6 = 0x19DF6F9
  1256.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch4), 0x90, 4);
  1257.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::getSkyPointer4, {});         
  1258.                 *(float*)redsky2 = g_Settings.sky_intensity_p4;
  1259.             }
  1260.             if (Menu::Option("Reset Clouds1"))
  1261.             {
  1262.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1263.                 std::copy_n("\x0F\x29\x49\x50", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch4));
  1264.             }
  1265.             Menu::Float("Clouds2 value", g_Settings.sky_intensity_p5, 0.f, 5555.0f, 1.f);
  1266.             if (Menu::Option("Clouds2 Pattern"))
  1267.             {
  1268.                 auto SkyPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1269.                 DWORD64* d_location = nullptr;
  1270.                 d_location = (DWORD64*)SkyPTR.count(1).get(0).get<DWORD64*>(0);
  1271.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1272.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1273.                 Log::Msg((char*)datar.c_str());
  1274.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1275.                 std::stringstream myStrm(datar);
  1276.                 DWORD64 x;
  1277.                 myStrm >> x;
  1278.                 std::string address2;
  1279.                 stringstream addrs2;
  1280.                 addrs2 << hex << "0x" << x;
  1281.                 address2 = addrs2.str();
  1282.                 Log::Msg((char*)address2.c_str());
  1283.  
  1284.                 std::string address;
  1285.                 stringstream addrs;
  1286.                 addrs << hex << "0x" << base_address;
  1287.                 address = addrs.str();
  1288.                 Log::Msg((char*)address.c_str());
  1289.                 std::stringstream myStrm1;
  1290.                 myStrm1 << base_address;
  1291.                 DWORD64 x1;
  1292.                 myStrm1 >> x1;
  1293.                 std::stringstream myStrm2(datar);
  1294.                 DWORD64 x2;
  1295.                 myStrm2 >> x2;
  1296.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1297.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1298.                 std::string address3;
  1299.                 stringstream addrs3;
  1300.                 addrs3 << hex << "0x" << in2;
  1301.                 address3 = addrs3.str();
  1302.                 Log::Msg((char*)address3.c_str());
  1303.                 Addresss::SkyPointer5 = in2;
  1304.                 Addresss::getSkyPointer5 = (DWORD64)Addresss::SkyPointer5 - (DWORD64)0x6FB;//0x2822D9F - 0x28226A4 = 0x6FB
  1305.                 Addresss::SkyPointerpatch5 = (DWORD64)Addresss::SkyPointer5 - (DWORD64)0x19DF6EE;//0x2822D9F - 0xE436B1 = 0x19DF6EE
  1306.                 memset(reinterpret_cast<void*>(base_address + Addresss::SkyPointerpatch5), 0x90, 4);
  1307.                 uintptr_t redsky2 = engine::scan_address(base_address + Addresss::getSkyPointer5, {});
  1308.                 *(float*)redsky2 = g_Settings.sky_intensity_p5;
  1309.             }
  1310.             if (Menu::Option("Reset Clouds2"))
  1311.             {
  1312.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1313.                 std::copy_n("\x0F\x29\x41\x60", 4, reinterpret_cast<char*>(g_base_address + Addresss::SkyPointerpatch5));
  1314.             }
  1315.  
  1316.  
  1317.             if (Menu::Option("moon2 Pattern"))
  1318.             {
  1319.                 auto moonPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1320.                 DWORD64* d_location = nullptr;
  1321.                 d_location = (DWORD64*)moonPTR.count(1).get(0).get<DWORD64*>(0);
  1322.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1323.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1324.                 Log::Msg((char*)datar.c_str());
  1325.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1326.                 std::stringstream myStrm(datar);
  1327.                 DWORD64 x;
  1328.                 myStrm >> x;
  1329.                 std::string address2;
  1330.                 stringstream addrs2;
  1331.                 addrs2 << hex << "0x" << x;
  1332.                 address2 = addrs2.str();
  1333.                 Log::Msg((char*)address2.c_str());
  1334.  
  1335.                 std::string address;
  1336.                 stringstream addrs;
  1337.                 addrs << hex << "0x" << base_address;
  1338.                 address = addrs.str();
  1339.                 Log::Msg((char*)address.c_str());
  1340.                 std::stringstream myStrm1;
  1341.                 myStrm1 << base_address;
  1342.                 DWORD64 x1;
  1343.                 myStrm1 >> x1;
  1344.                 std::stringstream myStrm2(datar);
  1345.                 DWORD64 x2;
  1346.                 myStrm2 >> x2;
  1347.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1348.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1349.                 std::string address3;
  1350.                 stringstream addrs3;
  1351.                 addrs3 << hex << "0x" << in2;
  1352.                 address3 = addrs3.str();
  1353.                 Log::Msg((char*)address3.c_str());
  1354.  
  1355.                 Addresss::MoonPointer = in2;
  1356.  
  1357.                 Addresss::MoonPointerred = (DWORD64)Addresss::MoonPointer - (DWORD64)0x777;//0x2822D9F - 0x2822628 = 0x777
  1358.                 Addresss::MoonPointergreen = (DWORD64)Addresss::MoonPointer - (DWORD64)0x773;//0x2822D9F - 0x282262C = 0x773
  1359.                 Addresss::MoonPointerblue = (DWORD64)Addresss::MoonPointer - (DWORD64)0x76F;//0x2822D9F - 0x2822630 = 0x76F
  1360.                 Addresss::MoonPointerpatch = (DWORD64)Addresss::MoonPointer - (DWORD64)0x19DF6EE;//0x2822D9F - 0xE436B1 = 0x19DF6EE
  1361.  
  1362.                 memset(reinterpret_cast<void*>(base_address + Addresss::MoonPointerpatch), 0x90, 4);
  1363.                 uintptr_t redmoon = engine::scan_address(base_address + Addresss::MoonPointerred, {});
  1364.                 uintptr_t greenmoon = engine::scan_address(base_address + Addresss::MoonPointergreen, {});
  1365.                 uintptr_t bluemoon = engine::scan_address(base_address + Addresss::MoonPointerblue, {});
  1366.                 *(float*)redmoon = (g_Settings.moon_red / 255.f) * g_Settings.moon_alpha;
  1367.                 *(float*)greenmoon = (g_Settings.moon_green / 255.f) * g_Settings.moon_alpha;
  1368.                 *(float*)bluemoon = (g_Settings.moon_blue / 255.f) * g_Settings.moon_alpha;
  1369.  
  1370.             }
  1371.             if (Menu::Option("Reset Moon2"))
  1372.             {
  1373.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1374.                 std::copy_n("\x0F\x29\x41\x60", 4, reinterpret_cast<char*>(g_base_address + 0xE436B1));//moon
  1375.             }
  1376.  
  1377.  
  1378.  
  1379.             Menu::Float("redsun3 value", g_Settings.sun_red, 0.f, 255.0f, 1.f);
  1380.             Menu::Float("greensun3 value", g_Settings.sun_green, 0.f, 255.0f, 1.f);
  1381.             Menu::Float("bluesun3 value", g_Settings.sun_blue, 0.f, 255.0f, 1.f);
  1382.             Menu::Float("sunalpha3 value", g_Settings.sun_alpha, 0.f, 255.0f, 1.f);
  1383.  
  1384.  
  1385.  
  1386.             if (Menu::Option("Sun Pattern"))
  1387.             {
  1388.                 auto SunPTR = Memory::pattern("80 3F 00 00 80 3F CD CC 4C 3E 9A 99 99 3E 00 00 80 3F 00 00 80 3F 00");
  1389.                 DWORD64* d_location = nullptr;
  1390.                 d_location = (DWORD64*)SunPTR.count(1).get(0).get<DWORD64*>(0);
  1391.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1392.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1393.                 Log::Msg((char*)datar.c_str());
  1394.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1395.                 std::stringstream myStrm(datar);
  1396.                 DWORD64 x;
  1397.                 myStrm >> x;
  1398.                 std::string address2;
  1399.                 stringstream addrs2;
  1400.                 addrs2 << hex << "0x" << x;
  1401.                 address2 = addrs2.str();
  1402.                 Log::Msg((char*)address2.c_str());
  1403.  
  1404.                 std::string address;
  1405.                 stringstream addrs;
  1406.                 addrs << hex << "0x" << base_address;
  1407.                 address = addrs.str();
  1408.                 Log::Msg((char*)address.c_str());
  1409.                 std::stringstream myStrm1;
  1410.                 myStrm1 << base_address;
  1411.                 DWORD64 x1;
  1412.                 myStrm1 >> x1;
  1413.                 std::stringstream myStrm2(datar);
  1414.                 DWORD64 x2;
  1415.                 myStrm2 >> x2;
  1416.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1417.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1418.                 std::string address3;
  1419.                 stringstream addrs3;
  1420.                 addrs3 << hex << "0x" << in2;
  1421.                 address3 = addrs3.str();
  1422.                 Log::Msg((char*)address3.c_str());
  1423.  
  1424.                 Addresss::SunPointer = in2;
  1425.                 //0x2822d6e
  1426.                 Addresss::SunPointerred = (DWORD64)Addresss::SunPointer - (DWORD64)0x76E;
  1427.                 Addresss::SunPointergreen = (DWORD64)Addresss::SunPointer - (DWORD64)0x76A;
  1428.                 Addresss::SunPointerblue = (DWORD64)Addresss::SunPointer - (DWORD64)0x766;
  1429.                 Addresss::SunPointerpatch = (DWORD64)Addresss::SunPointer - (DWORD64)0x19DF6D0;
  1430.                 /*
  1431.                 0x2822d6e - 0xE4369E = 0x19DF6D0
  1432.                 0x2822d6e - 0x2822600 = 0x76E
  1433.                 0x2822d6e - 0x2822604 = 0x76A
  1434.                 0x2822d6e - 0x2822608 = 0x766
  1435.                 */
  1436.                 memset(reinterpret_cast<void*>(base_address + Addresss::SunPointerpatch), 0x90, 4);
  1437.                 uintptr_t redsun2 = engine::scan_address(base_address + Addresss::SunPointerred, {});
  1438.                 uintptr_t greensun2 = engine::scan_address(base_address + Addresss::SunPointergreen, {});
  1439.                 uintptr_t bluesun2 = engine::scan_address(base_address + Addresss::SunPointerblue, {});
  1440.                 *(float*)redsun2 = (g_Settings.sun_red / 255.f) * g_Settings.sun_alpha;
  1441.                 *(float*)greensun2 = (g_Settings.sun_green / 255.f) * g_Settings.sun_alpha;
  1442.                 *(float*)bluesun2 = (g_Settings.sun_blue / 255.f) * g_Settings.sun_alpha;
  1443.             }
  1444.             if (Menu::Option("Reset Sun"))
  1445.             {
  1446.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1447.                 std::copy_n("\x0F\x29\x41\x40", 4, reinterpret_cast<char*>(g_base_address + Addresss::SunPointerpatch));//0xE4369E
  1448.             }
  1449.             Menu::Float("redsun A value", g_Settings.sun_red_a, 0.f, 255.0f, 1.f);
  1450.             Menu::Float("greensun A value", g_Settings.sun_green_a, 0.f, 255.0f, 1.f);
  1451.             Menu::Float("bluesun A value", g_Settings.sun_blue_a, 0.f, 255.0f, 1.f);
  1452.             Menu::Float("sun A alpha4 value", g_Settings.sun_alpha, 0.f, 255.0f, 1.f);
  1453.             if (Menu::Option("sun Atmosphère Pattern"))
  1454.             {
  1455.                 auto SunPTR = Memory::pattern("80 3F 00 00 80 3F CD CC 4C 3E 9A 99 99 3E 00 00 80 3F 00 00 80 3F 00");
  1456.                 DWORD64* d_location = nullptr;
  1457.                 d_location = (DWORD64*)SunPTR.count(1).get(0).get<DWORD64*>(0);
  1458.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1459.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1460.                 Log::Msg((char*)datar.c_str());
  1461.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1462.                 std::stringstream myStrm(datar);
  1463.                 DWORD64 x;
  1464.                 myStrm >> x;
  1465.                 std::string address2;
  1466.                 stringstream addrs2;
  1467.                 addrs2 << hex << "0x" << x;
  1468.                 address2 = addrs2.str();
  1469.                 Log::Msg((char*)address2.c_str());
  1470.  
  1471.                 std::string address;
  1472.                 stringstream addrs;
  1473.                 addrs << hex << "0x" << base_address;
  1474.                 address = addrs.str();
  1475.                 Log::Msg((char*)address.c_str());
  1476.                 std::stringstream myStrm1;
  1477.                 myStrm1 << base_address;
  1478.                 DWORD64 x1;
  1479.                 myStrm1 >> x1;
  1480.                 std::stringstream myStrm2(datar);
  1481.                 DWORD64 x2;
  1482.                 myStrm2 >> x2;
  1483.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1484.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1485.                 std::string address3;
  1486.                 stringstream addrs3;
  1487.                 addrs3 << hex << "0x" << in2;
  1488.                 address3 = addrs3.str();
  1489.                 Log::Msg((char*)address3.c_str());
  1490.  
  1491.                 Addresss::SunPointerat = in2;
  1492.                 //0x2822d6e
  1493.                 Addresss::SunPointerredat = (DWORD64)Addresss::SunPointerat - (DWORD64)0x77A;
  1494.                 Addresss::SunPointergreenat = (DWORD64)Addresss::SunPointerat - (DWORD64)0x776;
  1495.                 Addresss::SunPointerblueat = (DWORD64)Addresss::SunPointerat - (DWORD64)0x772;
  1496.                 Addresss::SunPointerpatchat = (DWORD64)Addresss::SunPointerat - (DWORD64)0x19DF6D8;
  1497.                 /*
  1498.                 0x2822d6e - 0xE43696 = 0x19DF6D8
  1499.                 0x2822d6e - 0x28225F4 = 0x77A
  1500.                 0x2822d6e - 0x28225F8 = 0x776
  1501.                 0x2822d6e - 0x28225FC = 0x772
  1502.                 */
  1503.                 memset(reinterpret_cast<void*>(base_address + Addresss::SunPointerpatchat), 0x90, 4);
  1504.                 uintptr_t redsun2 = engine::scan_address(base_address + Addresss::SunPointerredat, {});
  1505.                 uintptr_t greensun2 = engine::scan_address(base_address + Addresss::SunPointergreenat, {});
  1506.                 uintptr_t bluesun2 = engine::scan_address(base_address + Addresss::SunPointerblueat, {});
  1507.                 *(float*)redsun2 = (g_Settings.sun_red_a / 255.f) * g_Settings.sun_alpha_a;
  1508.                 *(float*)greensun2 = (g_Settings.sun_green_a / 255.f) * g_Settings.sun_alpha_a;
  1509.                 *(float*)bluesun2 = (g_Settings.sun_blue_a / 255.f) * g_Settings.sun_alpha_a;
  1510.             }
  1511.  
  1512.             if (Menu::Option("Reset Sun Atmosph"))
  1513.             {
  1514.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1515.                 std::copy_n("\x0F\x29\x49\x30", 4, reinterpret_cast<char*>(g_base_address + 0xE43696));
  1516.             }
  1517.  
  1518.  
  1519.             Menu::Float("starintensity value", g_Settings.starintensity, 0.f, 5000.0f, 100.f);
  1520.             if (Menu::Option("Star"))
  1521.             {
  1522.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1523.                 memset(reinterpret_cast<void*>(g_base_address + 0xE436B8), 0x90, 4);
  1524.                 *(float*)engine::scan_address(g_base_address + 0x282263C, {}) = g_Settings.starintensity;
  1525.             }
  1526.             if (Menu::Option("Reset Star"))
  1527.             {
  1528.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1529.                 std::copy_n("\x0F\x29\x49\xF0", 4, reinterpret_cast<char*>(g_base_address + 0xE436B8));//stars
  1530.                 std::copy_n("\x0F\x29\xA2\xE0", 4, reinterpret_cast<char*>(g_base_address + 0xE3FFB1));//sky
  1531.             }
  1532.             Menu::Float("starintensity Pattern value", g_Settings.star_intensity_p, 0.f, 5000.0f, 100.f);
  1533.             if (Menu::Option("Star Pattern"))
  1534.             {
  1535.                 auto StarPTR = Memory::pattern("00 62 6F 61 74 73 65 61 72 63 68 6C 69 67 68 74 2E 6D 61 69 6E 4C 69 67 68 74 49 6E 66 6F 2E 6C 69 67 68 74 46 61 64 65 44 69 73 74 00 79 46 61 72 00 78 70 6F 6E 65 6E 74 00 6E 74 00");
  1536.                 DWORD64* d_location = nullptr;
  1537.                 d_location = (DWORD64*)StarPTR.count(1).get(0).get<DWORD64*>(0);
  1538.                 std::string datar = std::string(std::to_string(reinterpret_cast<DWORD64>(d_location)));
  1539.                 DWORD64 base_address = DWORD64(GetModuleHandleA(nullptr));
  1540.                 Log::Msg((char*)datar.c_str());
  1541.                 Log::Msg((char*)std::string(std::to_string(base_address)).c_str());
  1542.                 std::stringstream myStrm(datar);
  1543.                 DWORD64 x;
  1544.                 myStrm >> x;
  1545.                 std::string address2;
  1546.                 stringstream addrs2;
  1547.                 addrs2 << hex << "0x" << x;
  1548.                 address2 = addrs2.str();
  1549.                 Log::Msg((char*)address2.c_str());
  1550.  
  1551.                 std::string address;
  1552.                 stringstream addrs;
  1553.                 addrs << hex << "0x" << base_address;
  1554.                 address = addrs.str();
  1555.                 Log::Msg((char*)address.c_str());
  1556.                 std::stringstream myStrm1;
  1557.                 myStrm1 << base_address;
  1558.                 DWORD64 x1;
  1559.                 myStrm1 >> x1;
  1560.                 std::stringstream myStrm2(datar);
  1561.                 DWORD64 x2;
  1562.                 myStrm2 >> x2;
  1563.                 DWORD64 in2 = ((DWORD64)x2 - (DWORD64)x1);
  1564.                 Log::Msg((char*)std::string(std::to_string(in2)).c_str());
  1565.                 std::string address3;
  1566.                 stringstream addrs3;
  1567.                 addrs3 << hex << "0x" << in2;
  1568.                 address3 = addrs3.str();
  1569.                 Log::Msg((char*)address3.c_str());
  1570.  
  1571.                 Addresss::StarPointer = in2;               
  1572.                 Addresss::StarIntensity = (DWORD64)Addresss::StarPointer - (DWORD64)0x763;//0x2822D9F - 0x763 = 0x282263C
  1573.                 Addresss::StarPointerpatch = (DWORD64)Addresss::StarPointer - (DWORD64)0x19DF6E7;//0x2822D9F - 0xE436B8 = 0x19DF6E7
  1574.                 memset(reinterpret_cast<void*>(base_address + Addresss::StarPointerpatch), 0x90, 4);
  1575.  
  1576.                 uintptr_t intensity_Star = engine::scan_address(base_address + Addresss::StarIntensity, {});
  1577.                 *(float*)intensity_Star = g_Settings.star_intensity_p;
  1578.  
  1579.             }
  1580.             if (Menu::Option("Reset Star"))
  1581.             {
  1582.                 uintptr_t g_base_address = uintptr_t(GetModuleHandleA(nullptr));
  1583.                 std::copy_n("\x0F\x29\x49\xF0", 4, reinterpret_cast<char*>(g_base_address + Addresss::StarPointerpatch));//0xE436B8 //star
  1584.                 //std::copy_n("\x0F\x29\xA2\xE0", 4, reinterpret_cast<char*>(g_base_address + 0xE3FFB1));//0xE3FFB1 //sky
  1585.             }
  1586. https://prnt.sc/5ffPoqB1ENWY
  1587.  
  1588. address - (Imagebase   : 7FF7A9170000)
  1589. https://www.mediafire.com/file/0gg2awp7s4uc3nf/GTA5_data_db164-.c/file
  1590. https://prnt.sc/58SpCbPG_TgJ
  1591. https://prnt.sc/2amnJgMTeplE
  1592.  
  1593. https://www.mediafire.com/file/acxg2jp6gguf18j/GTA5_dump164fromView.c/file
  1594. https://www.mediafire.com/file/2np6f4i6iwaxp0d/GTA5_dump164typ.idc/file
  1595. https://www.mediafire.com/file/jz2dd1ru0w36vgp/GTA5_dump164.idc/file
  1596. https://www.mediafire.com/file/dm0ves5y6kkabms/GTA5_dump164map.map/file
  1597.  
  1598. https://www.mediafire.com/file/xble0rysbp7u1a8/GTA5_dump164header.h/file
  1599. https://prnt.sc/6wDtVxeMSkK9
  1600. https://www.mediafire.com/file/tketz0om882ebeq/GTA5_dump164-00007FF.c/file
  1601. (Imagebase   : 7FF6F5D10000)
  1602.  
  1603. https://www.mediafire.com/file/l9kkm9jfeue5k84/GTA5-Dump(2015-4-15).exe/file
  1604. https://www.mediafire.com/file/0ye2bhd21rsy8ip/GTA5_dumpNative-164.exe/file
  1605. https://prnt.sc/1oqMZ4-qjEYl
  1606. https://prnt.sc/1glKZLoiguXW
  1607. https://prnt.sc/4gnXmLUBCFd_
  1608.  
  1609. and go to this address
  1610. 48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57 48 83 EC 20 BA 10 00 00 00 B9 20 03 00 00
  1611. before search **a immediate value** of a native
  1612. or it will have nothing in the research
Add Comment
Please, Sign In to add comment