Вот как на моем сервере это реализовано (+250 онлайн), и все прекрасно работает!
PHP код:
case ...:
{
new min_id;
new Float:min_distance = 99999.0;
for(new b; b <= TOTAL_BUSINESS; b++) // Мой цикл на бизнесы
{
new Float:distance = GetPlayerDistanceFromPoint(playerid, BusinessInfo[b][bEnterX], BusinessInfo[b][bEnterY], BusinessInfo[b][bEnterZ]);
if (distance < min_distance)
{
min_distance = distance;
min_id = b;
}
}
SetPlayerCheckpoint(playerid, BusinessInfo[min_id][bEnterX], BusinessInfo[min_id][bEnterY], BusinessInfo[min_id][bEnterZ], 6.0);
new string[112];
format(string, sizeof(string), "На карте отмечен ближайший бизнес - {FF9900}%s{FFFFFF}. Расстояние {FF9900}%0.2f м.", BusinessInfo[min_id][bName], min_distance);
SendClientMessage(playerid, -1, string);
return true;
}