Начинающий
-
Автор темы
- #1
Писал код по видеоуроку. Вроде всё должно работать, даже значения читает правильные. Оффсеты свежие, но в игре камера просто уходит в пол. В чём ошибка?
C++:
#include <iostream>
#include "memory.h"
#include "offsets.h"
#include "Windows.h"
using namespace std;
PModule Client;
PModule Engine;
memory mem;
struct Vector3
{
float x, y, z;
Vector3 operator+(Vector3 d)
{
return { x + d.x, y + d.y, z + d.z };
}
Vector3 operator-(Vector3 d)
{
return { x - d.x, y - d.y, z - d.z };
}
Vector3 operator*(float d)
{
return { x * d, y * d, z * d };
}
void Normalize2()
{
while (y < -180)
{
y += 360;
}
while (y > 180)
{
y -= 360;
}
if (x > 89)
{
x = 89;
}
if (x < -89)
{
x = -89;
}
}
};
int main()
{
while (!mem.ProcessAttach("csgo.exe", PROCESS_ALL_ACCESS)) {}
Client = mem.Getmodule("client_panorama.dll");
Engine = mem.Getmodule("engine.dll");
cout << "NoRecoil Started!" << endl;
while (true)
{
DWORD LocalPlayer = mem.Read<DWORD>(Client.dwBase + dwLocalPlayer);
DWORD ClientState = mem.Read<DWORD>(Engine.dwBase + dwClientState);
int iShotsFired = mem.Read<int>(LocalPlayer + m_iShotsFired);
Vector3 viewAngles = mem.Read<Vector3>(ClientState + dwClientState_ViewAngles);
Vector3 AimPunchAngle = mem.Read<Vector3>(LocalPlayer + m_aimPunchAngle);
Vector3 oldPunch{ 0, 0, 0 };
Vector3 PunchAngle = AimPunchAngle * 2;
if (iShotsFired > 1)
{
Vector3 NewAngle = viewAngles + oldPunch - PunchAngle;
NewAngle.Normalize2();
mem.Write<Vector3>(ClientState + dwClientState_ViewAngles, NewAngle);
}
oldPunch = PunchAngle;
}
return 0;
}
Последнее редактирование: