Перейти к содержимому
nikitaaaaa

при выполнении gpu.set(25, i+1, ' - '..floor(pl[i].distance)..' м') происходит ошибка

Рекомендуемые сообщения

Есть замечательная прогрмма для радара от @Alex. Пытался перевести эту прогу под Entity Detector из OpenSecurity.Но не получилось, строка gpu.set(25, i+1, ' - '..floor(pl.distance)..' м') решила крашить скрипт, вот мои изменения в коде: тык, скрин ошибки: тык

Изменено пользователем nikitaaaaa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скорее всего, distance надо заменить на range (в документации написано, что сканер возвращает) или рассчитывать на основе x, y и z.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, ProgramCrafter сказал:

distance надо заменить на range

щас попробую

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я поменял, но есть еще проблемма, скрипт не зацикливается хотя while true do и end стоит

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Та вроде работает

Скрытый текст

local term = require('term')
local computer = require("computer")
local com = require('component')
local sensor = com.isAvailable("os_entdetector") and com.os_entdetector or error("нет сенсора entity detector")
local gpu = com.gpu

-- Белый список ---
white = {
  none = false
}

gpu.setResolution(35,15)
 
while true do
  pl = sensor.scanPlayers(64)
  term.clear()
  gpu.setForeground(0xffb600)
  gpu.set(2,1, 'В зоне обнаружения радара: '..#pl..' чел.')
  for i = 1, #pl do
    if white[pl[i].name] then 
      gpu.setForeground(0x00ff00)
    else 
      gpu.setForeground(0xff0000)
      computer.beep(440, 1) 
    end 
    gpu.set(2, i+1, i..'. '..pl[i].name)
    gpu.set(25, i+1, ' - '..math.floor(pl[i].range)..' м')
  end
  os.sleep(1)
end 

 

 

Изменено пользователем serafim

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...