Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define WIN32_LEAN_AND_MEAN
- #define _CRT_SECURE_NO_WARNINGS
- #include <Windows.h>
- #include "CVector.h"
- #define CAMERA_POS 0x0B6F338
- #define X_RVA 0x124266 // 2 bytes
- #define Y_RVA 0x124274 // 3 bytes
- #define Z_RVA 0x12428F // 3 bytes
- #define X2_RVA 0x120643 // 3 bytes
- #define Y2_RVA 0x120646 // 3 bytes
- #define Z2_RVA 0x120657 // 3 bytes
- bool mover = false;
- void Teleport(CVector *pos)
- {
- DWORD PEDSELF = *(DWORD*)0xB6F5F0; CVector MyPos;
- DWORD MyMatrix = *(DWORD*)(PEDSELF + 0x14);
- *(float*)(MyMatrix + 0x30) = pos->fX;
- *(float*)(MyMatrix + 0x34) = pos->fY;
- *(float*)(MyMatrix + 0x38) = pos->fZ;
- }
- void ToggleFreezeCamera(bool freeze)
- {
- static DWORD gtaBase = (DWORD)GetModuleHandleA(NULL);
- static BYTE xData[2], x2Data[3], yData[3], y2Data[3], zData[3], z2Data[3], nop[3] = { 0x90, 0x90, 0x90 };
- DWORD old[6]; VirtualProtect((void*)(gtaBase + X_RVA), 2, PAGE_EXECUTE_READWRITE, &old[0]);
- VirtualProtect((void*)(gtaBase + Y_RVA), 3, PAGE_EXECUTE_READWRITE, &old[1]);
- VirtualProtect((void*)(gtaBase + Z_RVA), 3, PAGE_EXECUTE_READWRITE, &old[2]);
- VirtualProtect((void*)(gtaBase + X2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[3]);
- VirtualProtect((void*)(gtaBase + Y2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[4]);
- VirtualProtect((void*)(gtaBase + Z2_RVA), 3, PAGE_EXECUTE_READWRITE, &old[5]);
- if (freeze && *(BYTE*)(gtaBase + X_RVA) != 0x90)
- {
- memcpy(xData, (void*)(gtaBase + X_RVA), 2);
- memcpy(yData, (void*)(gtaBase + Y_RVA), 3);
- memcpy(zData, (void*)(gtaBase + Z_RVA), 3);
- memcpy(x2Data, (void*)(gtaBase + X2_RVA), 3);
- memcpy(y2Data, (void*)(gtaBase + Y2_RVA), 3);
- memcpy(z2Data, (void*)(gtaBase + Z2_RVA), 3);
- }
- if (!freeze)
- {
- memcpy((void*)(gtaBase + X_RVA), xData, 2);
- memcpy((void*)(gtaBase + Y_RVA), yData, 3);
- memcpy((void*)(gtaBase + Z_RVA), zData, 3);
- memcpy((void*)(gtaBase + X2_RVA), x2Data, 3);
- memcpy((void*)(gtaBase + Y2_RVA), y2Data, 3);
- memcpy((void*)(gtaBase + Z2_RVA), z2Data, 3);
- }
- else
- {
- if (*(BYTE*)(gtaBase + X_RVA) != 0x90)
- {
- memcpy((void*)(gtaBase + X_RVA), nop, 2);
- memcpy((void*)(gtaBase + Y_RVA), nop, 3);
- memcpy((void*)(gtaBase + Z_RVA), nop, 3);
- memcpy((void*)(gtaBase + X2_RVA), nop, 3);
- memcpy((void*)(gtaBase + Y2_RVA), nop, 3);
- memcpy((void*)(gtaBase + Z2_RVA), nop, 3);
- }
- }
- VirtualProtect((void*)(gtaBase + X_RVA), 2, old[0], &old[0]);
- VirtualProtect((void*)(gtaBase + Y_RVA), 3, old[1], &old[1]);
- VirtualProtect((void*)(gtaBase + Z_RVA), 3, old[2], &old[2]);
- VirtualProtect((void*)(gtaBase + X2_RVA), 3, old[3], &old[3]);
- VirtualProtect((void*)(gtaBase + Y2_RVA), 3, old[4], &old[4]);
- VirtualProtect((void*)(gtaBase + Z2_RVA), 3, old[5], &old[5]);
- }
- void MoveCamera(float *offsets, bool direction)
- {
- // MessageBeep(MB_ICONASTERISK);
- ToggleFreezeCamera(true); mover = true;
- DWORD old; VirtualProtect((void*)CAMERA_POS, 12, PAGE_EXECUTE_READWRITE, &old);
- float *camera_x = (float*)CAMERA_POS;
- float *camera_y = (float*)(CAMERA_POS + 4);
- float *camera_z = (float*)(CAMERA_POS + 8);
- if (direction && offsets[0] > 0.0f) *camera_x += offsets[0];
- else if (!direction && offsets[0] > 0.0f) *camera_x -= offsets[0];
- if (direction && offsets[1] > 0.0f) *camera_y += offsets[1];
- else if (!direction && offsets[1] > 0.0f) *camera_y -= offsets[1];
- if (direction && offsets[2] > 0.0f) *camera_z += offsets[2];
- else if (!direction && offsets[2] > 0.0f) *camera_z -= offsets[2];
- VirtualProtect((void*)CAMERA_POS, 12, old, &old);
- }
- void __stdcall EntryPoint()
- {
- static float offsets[3] = { 0.0f, 0.0f, 0.0f };
- const float scale = 3.0f; // Ускоритель выставляй на глаз сам, сколько нужно
- while (true)
- {
- for (BYTE x = 0; x < 3; x++) offsets[x] = 0.0f;
- if (GetAsyncKeyState(VK_NUMPAD2))
- {
- offsets[1] = scale;
- MoveCamera(offsets, false);
- }
- else if (GetAsyncKeyState(VK_NUMPAD8))
- {
- offsets[1] = scale;
- MoveCamera(offsets, true);
- }
- else if (GetAsyncKeyState(VK_NUMPAD4))
- {
- offsets[0] = scale;
- MoveCamera(offsets, false);
- }
- else if (GetAsyncKeyState(VK_NUMPAD6))
- {
- offsets[0] = scale;
- MoveCamera(offsets, true);
- }
- else if (GetAsyncKeyState(VK_NUMPAD7))
- {
- offsets[2] = scale;
- MoveCamera(offsets, true);
- }
- else if (GetAsyncKeyState(VK_NUMPAD9))
- {
- offsets[2] = scale;
- MoveCamera(offsets, false);
- }
- else if (GetAsyncKeyState(VK_RETURN))
- {
- if (mover)
- {
- ToggleFreezeCamera(false); CVector camera;
- DWORD old; VirtualProtect((void*)CAMERA_POS, 12, PAGE_EXECUTE_READWRITE, &old);
- camera.fX = *(float*)CAMERA_POS;
- camera.fY = *(float*)(CAMERA_POS + 4);
- camera.fZ = *(float*)(CAMERA_POS + 8);
- Teleport(&camera); mover = false;
- VirtualProtect((void*)CAMERA_POS, 12, old, &old);
- }
- }
- Sleep(65);
- }
- }
- int __stdcall DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- CreateThread(0, 0, (LPTHREAD_START_ROUTINE)EntryPoint, 0, 0, 0);
- break;
- case DLL_THREAD_ATTACH:
- break;
- case DLL_THREAD_DETACH:
- break;
- case DLL_PROCESS_DETACH:
- break;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement