Distance Based FOV

Posts 1–3 of 3 · Page 1 of 1
Distance Based FOV
Last night I made a distance based FOV with SEGnosis guide. I does not work and returns realDist returns weird values (very high values which seems to depend on which angle I am looking towards an enemy).
Code:
int GetClosestEnemy(HANDLE hProc, DWORD clientDll, DWORD engineDll, Vector localPosition, Vector viewAngles)
{
	float shortestDist = 5.f;
	Vector closestAng;
	int closestEnemy = -1;
	viewAngles.x += Player.getPunch(hProc, clientDll).x * 2;
	viewAngles.y += Player.getPunch(hProc, clientDll).y * 2;
	
	for (int i = 0; i < 64; i++)
	{
		DWORD ent = Entity.getEntityBase(hProc, clientDll, i);
		if (!ent)
			continue;

		if (Entity.getHealth(hProc, clientDll, i) > 0 && Entity.getTeam(hProc, clientDll, i) != Player.getTeam(hProc, clientDll) && i > 0 && Entity.radarSpotted(hProc, clientDll, i) == true && Entity.getFlags(hProc, clientDll, i) != 776)
		{
			
			Vector headPos = Entity.getHeadPos(hProc, clientDll, i);
			Vector vAngle = CalcAngle(localPosition, headPos);
			Normalize(vAngle);

			float dist3d = Get3dDist(localPosition, headPos);
			float dist = sqrt(pow(viewAngles.x - vAngle.x, 2) + pow(viewAngles.y - vAngle.y, 2));
			
			float yaw = sin((abs(viewAngles.y - vAngle.y)) * 57.295779513082f) * dist3d;
			float pitch = sin((abs(viewAngles.x - vAngle.x)) * 57.295779513082f) * dist3d;
			float realDist = sqrt(powf(pitch, 2.0) + powf(yaw, 2.0));
			std::cout << realDist << std::endl;

			
			if (realDist < shortestDist)
			{
				shortestDist = realDist;
				closestEnemy = i;
			}
		}
		if (shortestDist != 5.f && closestEnemy > 0 && closestEnemy < 64)
		{
			return closestEnemy;
		}
	}
}
Code:
float Get3dDist(Vector localPosition, Vector enemyPos)
{
	float dist;
	dist = sqrt(pow(localPosition.x - enemyPos.x, 2) + pow(localPosition.y - enemyPos.y, 2) + pow(localPosition.z - enemyPos.z, 2));
	return dist;
}
Code:
float GetFovFraction(int target, float distance)
{
	Vector Angles;
	CalcAngle(EntityList[target].BonePosition, Angles);
	Vector delta = Angles - pPlayer->ViewAngles();
	NormalizeAngle(delta);
	float fov = sqrt(powf(delta.x, 2) + powf(delta.y, 2));
	return distance * sin(DegToRad(fov)) * 0.5f;
}
so I get Distance Based Fov
Been over a week since last update/bump, marked as "Unresolved".

/Closed.
Posts 1–3 of 3 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us