External RCS problem

Posts 1–8 of 8 · Page 1 of 1
External RCS problem
Code:
void RCS()
{
	Sleep(1);
	Vector angle;
	Vector OldAngle;

	if (LocalPly.ShootFired > 1 && (GetAsyncKeyState(0x01) & 0x8000 )) {
		Vector m_PunchAngle = Mem.Read<Vector>(LocalPly.Player + m_vecPunch);
		Vector m_ViewAngle = Mem.Read<Vector>(LocalPly.ClientState + m_dwViewAngles);

		angle.x = m_ViewAngle.x - (m_PunchAngle.x - OldAngle.x) * 2.0f;
		angle.y = m_ViewAngle.y - (m_PunchAngle.y - OldAngle.y) * 2.0f;

		angle = NormalizeAngles(angle);

		Mem.Write<Vector>(LocalPly.ClientState + m_dwViewAngles, angle);

		OldAngle.x = m_PunchAngle.x;
		OldAngle.y = m_PunchAngle.y;
	}
	else{
		OldAngle.x = 0;
		OldAngle.y = 0;
	}
}
ViewAngles: LocalPlayer (handle) + m_dwViewAngles
+ your structure names are confusing
Quote Originally Posted by Zaczero View Post
ViewAngles: LocalPlayer (handle) + m_dwViewAngles
+ your structure names are confusing
I was kept in LocalPly pointer on ClientState. I create another class for Engine pointers
Code:
class CEngine
{
public:
	int FFlags;
	DWORD ClientState;

	void ReadData()
	{
		ClientState = Mem.Read<DWORD>(dwEngine + m_dwClientState);
		FFlags = Mem.Read<int>(ClientState + m_fFlags);
	}
}Engine;
And I changed the variable

Code:
void RCS()
{
	Sleep(1);
	Vector angle;
	Vector OldAngle;

	if (LocalPly.ShootFired > 1 && (GetAsyncKeyState(0x01) & 0x8000 )) {
		Vector m_PunchAngle = Mem.Read<Vector>(LocalPly.Player + m_vecPunch);
		Vector m_ViewAngle = Mem.Read<Vector>(Engine.ClientState + m_dwViewAngles);

		angle.x = m_ViewAngle.x - (m_PunchAngle.x - OldAngle.x) * 2.0f;
		angle.y = m_ViewAngle.y - (m_PunchAngle.y - OldAngle.y) * 2.0f;

		angle = NormalizeAngles(angle);

		Mem.Write<Vector>(LocalPly.Player + m_dwViewAngles, angle);

		OldAngle.x = m_PunchAngle.x;
		OldAngle.y = m_PunchAngle.y;
	}
	else{
		OldAngle.x = 0;
		OldAngle.y = 0;
	}
}
but I don't understand what is wrong with the structure name
Quote Originally Posted by monk13337 View Post
I was kept in LocalPly pointer on ClientState. I create another class for Engine pointers
Code:
class CEngine
{
public:
	int FFlags;
	DWORD ClientState;

	void ReadData()
	{
		ClientState = Mem.Read<DWORD>(dwEngine + m_dwClientState);
		FFlags = Mem.Read<int>(ClientState + m_fFlags);
	}
}Engine;
And I changed the variable

Code:
void RCS()
{
	Sleep(1);
	Vector angle;
	Vector OldAngle;

	if (LocalPly.ShootFired > 1 && (GetAsyncKeyState(0x01) & 0x8000 )) {
		Vector m_PunchAngle = Mem.Read<Vector>(LocalPly.Player + m_vecPunch);
		Vector m_ViewAngle = Mem.Read<Vector>(Engine.ClientState + m_dwViewAngles);

		angle.x = m_ViewAngle.x - (m_PunchAngle.x - OldAngle.x) * 2.0f;
		angle.y = m_ViewAngle.y - (m_PunchAngle.y - OldAngle.y) * 2.0f;

		angle = NormalizeAngles(angle);

		Mem.Write<Vector>(LocalPly.Player + m_dwViewAngles, angle);

		OldAngle.x = m_PunchAngle.x;
		OldAngle.y = m_PunchAngle.y;
	}
	else{
		OldAngle.x = 0;
		OldAngle.y = 0;
	}
}
but I don't understand what is wrong with the structure name
Mem.Read<Vector>(Engine.ClientState + m_dwViewAngles); => Mem.Read<Vector>(LocalPly.Player + m_dwViewAngles);
Quote Originally Posted by Zaczero View Post


Mem.Read<Vector>(Engine.ClientState + m_dwViewAngles); => Mem.Read<Vector>(LocalPly.Player + m_dwViewAngles);
With
Code:
 Mem.Read <Vector> (LocalPly.Player + m_dwViewAngles);
nothing happened
Quote Originally Posted by monk13337 View Post
With
Code:
 Mem.Read <Vector> (LocalPly.Player + m_dwViewAngles);
nothing happened
@WasserEsser found a solution
Quote Originally Posted by Zaczero View Post
ViewAngles: LocalPlayer (handle) + m_dwViewAngles
+ your structure names are confusing
That's wrong.
The problem is that you are supposed to save your OldAngle for the next time you execute the code to get the delta and compensate for that.
The thing is, once you saved it, you exit the function and call it again, creating a new variable instead of using the previous one.

Moving the declaration "Vector OldAngle;" outside of the function should do the job.
I also changed some arithmetic.

Code:
Vector OldAngle;

void RCS()
{
	Sleep(1);
	Vector angle;

	if (LocalPly.ShootFired > 1 && (GetAsyncKeyState(0x01) & 0x8000 )) {
		Vector m_PunchAngle = Mem.Read<Vector>(LocalPly.Player + m_vecPunch);
		Vector m_ViewAngle = Mem.Read<Vector>(LocalPly.ClientState + m_dwViewAngles);

		angle.x = m_ViewAngle.x + OldAngle - m_PunchAngle.x * 2.0f;
		angle.y = m_ViewAngle.y + OldAngle - m_PunchAngle.y * 2.0f;

		angle = NormalizeAngles(angle);

		Mem.Write<Vector>(LocalPly.ClientState + m_dwViewAngles, angle);

		OldAngle.x = m_PunchAngle.x * 2.0f;
		OldAngle.y = m_PunchAngle.y * 2.0f;
	}
	else{
		OldAngle.x = 0;
		OldAngle.y = 0;
	}
}
Quote Originally Posted by WasserEsser View Post
That's wrong.
The problem is that you are supposed to save your OldAngle for the next time you execute the code to get the delta and compensate for that.
The thing is, once you saved it, you exit the function and call it again, creating a new variable instead of using the previous one.

Moving the declaration "Vector OldAngle;" outside of the function should do the job.
I also changed some arithmetic.

Code:
Vector OldAngle;

void RCS()
{
	Sleep(1);
	Vector angle;

	if (LocalPly.ShootFired > 1 && (GetAsyncKeyState(0x01) & 0x8000 )) {
		Vector m_PunchAngle = Mem.Read<Vector>(LocalPly.Player + m_vecPunch);
		Vector m_ViewAngle = Mem.Read<Vector>(LocalPly.ClientState + m_dwViewAngles);

		angle.x = m_ViewAngle.x + OldAngle - m_PunchAngle.x * 2.0f;
		angle.y = m_ViewAngle.y + OldAngle - m_PunchAngle.y * 2.0f;

		angle = NormalizeAngles(angle);

		Mem.Write<Vector>(LocalPly.ClientState + m_dwViewAngles, angle);

		OldAngle.x = m_PunchAngle.x * 2.0f;
		OldAngle.y = m_PunchAngle.y * 2.0f;
	}
	else{
		OldAngle.x = 0;
		OldAngle.y = 0;
	}
}
omg thank you very much.
Posts 1–8 of 8 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us