int UTIL_FindNearestPlayer(int iClient, float &flDistance = 0.0)
{
int iTarget;
float vecPosition[2][3];
GetEntPropVector(iClient, Prop_Send, "m_vecOrigin", vecPosition[0]);
int iClientTeam = GetClientTeam(iClient);
int iTargetTeam = 0;
float flTempDistance;
for (int iPlayer = MaxClients; iPlayer != 0; --iPlayer)
{
if (!IsClientInGame(iPlayer) || IsFakeClient(iPlayer) || iPlayer == iClient || !IsPlayerAlive(iPlayer))
{
continue;
}
iTargetTeam = GetClientTeam(iPlayer);
if (iTargetTeam < 2 || iTargetTeam == iClientTeam)
{
continue;
}
GetEntPropVector(iPlayer, Prop_Send, "m_vecOrigin", vecPosition[1]);
flTempDistance = GetVectorDistance(vecPosition[0], vecPosition[1], true);
// DBG("UTIL_FindNearestPlayer(): %d %f %f", iPlayer, flTempDistance, flDistance)
if (iTarget == 0 || flTempDistance < flDistance) {
iTarget = iPlayer;
flDistance = flTempDistance;
}
}
// DBG("UTIL_FindNearestPlayer(): %L %f", iTarget, flDistance)
return iTarget;
}