Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.11 KB | None | 0 0
  1. #define WIN32_LEAN_AND_MEAN
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <Windows.h>
  4. #include "CVector.h"
  5. #define CAMERA_POS 0x0B6F338
  6. #define X_RVA 0x124266 // 2 bytes
  7. #define Y_RVA 0x124274 // 3 bytes
  8. #define Z_RVA 0x12428F // 3 bytes
  9. #define X2_RVA 0x120643 // 3 bytes
  10. #define Y2_RVA 0x120646 // 3 bytes
  11. #define Z2_RVA 0x120657 // 3 bytes
  12. bool mover = false;
  13. void Teleport(CVector *pos)
  14. {
  15. DWORD PEDSELF = *(DWORD*)0xB6F5F0; CVector MyPos;
  16. DWORD MyMatrix = *(DWORD*)(PEDSELF + 0x14);
  17. *(float*)(MyMatrix + 0x30) = pos->fX;
  18. *(float*)(MyMatrix + 0x34) = pos->fY;
  19. *(float*)(MyMatrix + 0x38) = pos->fZ;
  20. }
  21. void ToggleFreezeCamera(bool freeze)
  22. {
  23. static DWORD gtaBase = (DWORD)GetModuleHandleA(NULL);
  24. static BYTE xData[2], x2Data[3], yData[3], y2Data[3], zData[3], z2Data[3], nop[3] = { 0x90, 0x90, 0x90 };
  25. DWORD old[6]; VirtualProtect((void*)(gtaBase + X_RVA), 2, PAGE_EXECUTE_READWRITE, &old[0]);
  26. VirtualProtect((void*)(gtaBase + Y_RVA), 3, PAGE_EXECUTE_READWRITE, &old[1]);
  27. VirtualProtect((void*)(gtaBase + Z_RVA), 3, PAGE_EXECUTE_READWRITE, &old[2]);
  28. VirtualProtect((void*)(gtaBase + X2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[3]);
  29. VirtualProtect((void*)(gtaBase + Y2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[4]);
  30. VirtualProtect((void*)(gtaBase + Z2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[5]);
  31. if (freeze && *(BYTE*)(gtaBase + X_RVA) != 0x90)
  32. {
  33. memcpy(xData, (void*)(gtaBase + X_RVA), 2);
  34. memcpy(yData, (void*)(gtaBase + Y_RVA), 3);
  35. memcpy(zData, (void*)(gtaBase + Z_RVA), 3);
  36. memcpy(x2Data, (void*)(gtaBase + X2_RVA), 3);
  37. memcpy(y2Data, (void*)(gtaBase + Y2_RVA), 3);
  38. memcpy(z2Data, (void*)(gtaBase + Z2_RVA), 3);
  39. }
  40. if (!freeze)
  41. {
  42. memcpy((void*)(gtaBase + X_RVA), xData, 2);
  43. memcpy((void*)(gtaBase + Y_RVA), yData, 3);
  44. memcpy((void*)(gtaBase + Z_RVA), zData, 3);
  45. memcpy((void*)(gtaBase + X2_RVA), x2Data, 3);
  46. memcpy((void*)(gtaBase + Y2_RVA), y2Data, 3);
  47. memcpy((void*)(gtaBase + Z2_RVA), z2Data, 3);
  48. }
  49. else
  50. {
  51. if (*(BYTE*)(gtaBase + X_RVA) != 0x90)
  52. {
  53. memcpy((void*)(gtaBase + X_RVA), nop, 2);
  54. memcpy((void*)(gtaBase + Y_RVA), nop, 3);
  55. memcpy((void*)(gtaBase + Z_RVA), nop, 3);
  56. memcpy((void*)(gtaBase + X2_RVA), nop, 3);
  57. memcpy((void*)(gtaBase + Y2_RVA), nop, 3);
  58. memcpy((void*)(gtaBase + Z2_RVA), nop, 3);
  59. }
  60. }
  61. VirtualProtect((void*)(gtaBase + X_RVA), 2, old[0], &old[0]);
  62. VirtualProtect((void*)(gtaBase + Y_RVA), 3, old[1], &old[1]);
  63. VirtualProtect((void*)(gtaBase + Z_RVA), 3, old[2], &old[2]);
  64. VirtualProtect((void*)(gtaBase + X2_RVA), 3, old[3], &old[3]);
  65. VirtualProtect((void*)(gtaBase + Y2_RVA), 3, old[4], &old[4]);
  66. VirtualProtect((void*)(gtaBase + Z2_RVA), 3, old[5], &old[5]);
  67. }
  68. void MoveCamera(float *offsets, bool direction)
  69. {
  70. // MessageBeep(MB_ICONASTERISK);
  71. ToggleFreezeCamera(true); mover = true;
  72. DWORD old; VirtualProtect((void*)CAMERA_POS, 12, PAGE_EXECUTE_READWRITE, &old);
  73. float *camera_x = (float*)CAMERA_POS;
  74. float *camera_y = (float*)(CAMERA_POS + 4);
  75. float *camera_z = (float*)(CAMERA_POS + 8);
  76. if (direction && offsets[0] > 0.0f) *camera_x += offsets[0];
  77. else if (!direction && offsets[0] > 0.0f) *camera_x -= offsets[0];
  78. if (direction && offsets[1] > 0.0f) *camera_y += offsets[1];
  79. else if (!direction && offsets[1] > 0.0f) *camera_y -= offsets[1];
  80. if (direction && offsets[2] > 0.0f) *camera_z += offsets[2];
  81. else if (!direction && offsets[2] > 0.0f) *camera_z -= offsets[2];
  82. VirtualProtect((void*)CAMERA_POS, 12, old, &old);
  83. }
  84. void __stdcall EntryPoint()
  85. {
  86. static float offsets[3] = { 0.0f, 0.0f, 0.0f };
  87. const float scale = 3.0f; // Ускоритель выставляй на глаз сам, сколько нужно
  88. while (true)
  89. {
  90. for (BYTE x = 0; x < 3; x++) offsets[x] = 0.0f;
  91. if (GetAsyncKeyState(VK_NUMPAD2))
  92. {
  93. offsets[1] = scale;
  94. MoveCamera(offsets, false);
  95. }
  96. else if (GetAsyncKeyState(VK_NUMPAD8))
  97. {
  98. offsets[1] = scale;
  99. MoveCamera(offsets, true);
  100. }
  101. else if (GetAsyncKeyState(VK_NUMPAD4))
  102. {
  103. offsets[0] = scale;
  104. MoveCamera(offsets, false);
  105. }
  106. else if (GetAsyncKeyState(VK_NUMPAD6))
  107. {
  108. offsets[0] = scale;
  109. MoveCamera(offsets, true);
  110. }
  111. else if (GetAsyncKeyState(VK_NUMPAD7))
  112. {
  113. offsets[2] = scale;
  114. MoveCamera(offsets, true);
  115. }
  116. else if (GetAsyncKeyState(VK_NUMPAD9))
  117. {
  118. offsets[2] = scale;
  119. MoveCamera(offsets, false);
  120. }
  121. else if (GetAsyncKeyState(VK_RETURN))
  122. {
  123. if (mover)
  124. {
  125. ToggleFreezeCamera(false); CVector camera;
  126. DWORD old; VirtualProtect((void*)CAMERA_POS, 12, PAGE_EXECUTE_READWRITE, &old);
  127. camera.fX = *(float*)CAMERA_POS;
  128. camera.fY = *(float*)(CAMERA_POS + 4);
  129. camera.fZ = *(float*)(CAMERA_POS + 8);
  130. Teleport(&camera); mover = false;
  131. VirtualProtect((void*)CAMERA_POS, 12, old, &old);
  132. }
  133. }
  134. Sleep(65);
  135. }
  136. }
  137. int __stdcall DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
  138. {
  139. switch (ul_reason_for_call)
  140. {
  141. case DLL_PROCESS_ATTACH:
  142. CreateThread(0, 0, (LPTHREAD_START_ROUTINE)EntryPoint, 0, 0, 0);
  143. break;
  144. case DLL_THREAD_ATTACH:
  145. break;
  146. case DLL_THREAD_DETACH:
  147. break;
  148. case DLL_PROCESS_DETACH:
  149. break;
  150. }
  151. return 1;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement