LocalPlayer: VectorSet(ViewCoord,Player->ViewMatrix->vXPos,Player->ViewMatrix->vYPos,Player->ViewMatrix->vZPos); VectorSet(myAngle,Player->Info->PlayerInfo->pPITCH,Player->Info->PlayerInfo->pYAW,0); VectorNormalize(myAngle); EnemyPlayer: VectorSet(AimCoord, Player->Info->PlayerInfo->px,Player->Info->PlayerInfo->py,Player->Info->PlayerInfo->pz); if(isEnemyAimingAtYou(myAngle,AimCoord,ViewCoord,4.0f)) { ...do whatever } bool EspCheat::isEnemyAimingAtYou(float* viewAngles, float* ePosition, float* myPosition, float buffer) { float up[3], look[3], right[3], localVec[3], viewSpace[3]; AngleVectors(viewAngles, look, right, up); VectorNormalize(ePosition); VectorNormalize(myPosition); //localize vector VectorSubtract(ePosition, myPosition, localVec); //convert from their world to their view space viewSpace[0] = -DotProduct(localVec, right); viewSpace[1] = DotProduct(localVec, up); viewSpace[2] = DotProduct(localVec, look); // myMenu.DrawConString(200,200,255,0,0,255,"[%f] [%f]",viewSpace[0],viewSpace[1]); if((viewSpace[2] > 0) && // not behind (viewSpace[0] > -buffer) && (viewSpace[0] < buffer) && //within range on x (viewSpace[1] > -buffer) && (viewSpace[1] < buffer)) //within range on y return true; else return false; }