Hello gais, back again
I have implemented a curve to my aimbot path which does not seem to work. I iterate through all dot positions and write angle for every i.
But it only goes linear to the head and twitches back and forth from it. Is there anyone with good experience with bezier curves and their use that can help me out?

Code:
float getPt(float n1, float n2, float perc)
{
	float diff = n2 - n1;

	return n1 + (diff * perc);
}

int main()
{
	DWORD pId;
	HWND hwnd = FindWindow(NULL, "Counter-Strike: Global Offensive");
	GetWindowThreadProcessId(hwnd, &pId);
	HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pId);
	DWORD clientDll = getDll(pId, "client.dll");
	DWORD engineDll = getDll(pId, "engine.dll");

	while (true)
	{
		if (GetAsyncKeyState(0x05) & 0x8000 || GetAsyncKeyState(0x01) & 0x8000)
		{
			Vector localPosition = { Player.getPosition(hProc, clientDll).x, Player.getPosition(hProc, clientDll).y, (Player.getPosition(hProc, clientDll).z + Player.getEyePosition(hProc, clientDll).z) }; //get local eye position.
			Vector viewAngles = Player.getViewAngle(hProc, engineDll); //get local viewangles

			int closestEnemy = GetClosestEnemy(hProc, clientDll, engineDll, localPosition, viewAngles); //get closest entity to crosshair
			if (closestEnemy > 0 && closestEnemy < 64) // check if entity is valid
			{
				Vector closestHead = Entity.getHeadPos(hProc, clientDll, closestEnemy);
				Vector closestHead2 = { closestHead.x + RandomFloat(-20, 20), closestHead.y + RandomFloat(-20, 20), closestHead.z + RandomFloat(-20, 20) };

				Vector vAngle = CalcAngle(localPosition, closestHead);
				Vector vAngle2 = CalcAngle(localPosition, closestHead2);

				Normalize(vAngle);
				Normalize(vAngle2);

				for (float i = 0; i < 1; i += 0.01)
				{
					float xa = getPt(viewAngles.y, vAngle2.y, i);
					float ya = getPt(viewAngles.x, vAngle2.x, i);
					float xb = getPt(vAngle2.y, vAngle.y, i);
					float yb = getPt(vAngle2.x, vAngle.x, i);

					Vector dot{ 0 };
					dot.y = getPt(xa, xb, i);
					dot.x = getPt(ya, yb, i);
					dot.z = 0.0f;
					Normalize(dot);
					RCS(dot, hProc, clientDll);
					
					Player.setViewAngle(hProc, engineDll, dot);
				}

				
			}

		}
		Sleep(1);
	}