void SetAnglesCMD(Vector3& vecViewAngles, bool Perfect)
{
int iCurrentSequenceNumber = Memory::Read<int>(LocalPlayer::GetClientState() + 0x4C7C); //idk is this offset working now
iCurrentSequenceNumber += 1; // need to be +1 ofc
DWORD dwInput = (DWORD)Memory::ClientDLL.modBaseAddr + Offsets::m_dwInput; // yes input is client+offset dont read memory
DWORD dwUserCMD = Memory::Read<DWORD>(dwInput + 0xEC);
dwUserCMD += (iCurrentSequenceNumber % 150) * 0x64;
Vector3 vecOldViewAngles;
vecOldViewAngles = LocalPlayer::GetViewAngles(); // save old angles
int iUserCMDSequenceNumber = 0;
if (Perfect == true) {
SetPacketSending(0); // if perfecto (got fixed :( ) disable packet sending
}
while (iUserCMDSequenceNumber != iCurrentSequenceNumber)
{
vecOldViewAngles = LocalPlayer::GetViewAngles(); //get newest view angles
iUserCMDSequenceNumber = Memory::Read<int>(dwUserCMD + 0x4);
}
for (int i = 0; i < 20; i++)
Memory::Write<Vector3>(dwUserCMD + 0xC, vecViewAngles); // now write anglez to usercmd (20 times cuz hard to hit cmd at correct time)
/* u can add something there like shot or wtf*/
LocalPlayer::SetViewAngles(vecOldViewAngles); //restore old angles
if (Perfect == true) {
Sleep(6);
SetPacketSending(1); // enable packet sending
}
}
