Теперь стало понятнее.
Для поиска ошибки надо задаться вопросом, что делает каждая из операций.
#rad >= 2 проверяет количество игроков в зоне действия радара.
Но что делает rad.distance <= 7? Ведь поле .distance не существует в таблице rad. Если ты хочешь проверить удалённость игрока от радара, то это надо делать для каждого из игроков. То есть, надо перебрать игроков в таблице (возможно, всех), проверить удалённость каждого из них и посчитать их количество, набрав хотя бы двух. Готовый код может выглядеть, например, таким образом:
-- получаем список игроков в зоне действия радара
local players = radar.getPlayers()
-- вычисляем количество игроков в комнате
local playersInRange = 0
-- имеет смысл считать, если найдено не менее двух игроков
if #players >= 2 then
-- перебираем всех найденных игроков
for _,player in ipairs(players) do
-- считаем только игроков в комнате
if player.distance <= 7 then
playersInRange = playersInRange + 1
-- останавливаем пребор, если значение счётчика достаточно для срабатывания условия
if playersInRange >= 2 then
break
end
end
end
end
-- принимаем окончательное решение и выводим его на экран
if playersInRange >= 2 then
...
else
...
end
Работоспособность кода я не проверял, т.к. основной моей целью было показать именно алгоритм.