Nikitaaa228

radar-client.lua

Nov 4th, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. -- This is a part of program for monitoring of player visiting
  2. -- Required HoverHelm platform
  3. -- https://computercraft.ru/topic/3771-hoverhelm-operatsionnaya-sistema-dlya-dronov-mikrokontrollerov-i-drugih-ustroystv-bez-sobstvennogo-zhestkogo-diska/
  4.  
  5. --configuration
  6. local sleepTime = 10 --seconds scanning interval
  7. local mainServer = "8cbb2487-943b-41c4-a621-4e814b7088c6" -- main log server modem address
  8.  
  9. local detectors = map(component.list("os_entdetector"), component.proxy) --OpenSecurity
  10. local radars = map(component.list("radar"), component.proxy) --Computronics
  11. local modem = component.modem
  12.  
  13.  
  14. local scanFunctions = {}
  15. do
  16. local function detectorScan(detector)
  17. return function(relativeRadius)
  18. return mapSeq(detector.scanPlayers(relativeRadius*64), function(v) return v.name end)
  19. end
  20. end
  21.  
  22. local function radarScan(radar)
  23. return function(relativeRadius)
  24. return mapSeq(radar.getPlayers(relativeRadius*8), function(v) return v.name end)
  25. end
  26. end
  27.  
  28. local function insertScan(_, scan) table.insert(scanFunctions,scan) end
  29. foreach(mapSeq(detectors, detectorScan), insertScan)
  30. foreach(mapSeq(radars, radarScan), insertScan)
  31. end
  32.  
  33. local function sleep(interval)
  34. local start = computer.uptime()
  35. while computer.uptime() - start < interval do
  36. computer.pullSignal(interval - (computer.uptime() - start))
  37. end
  38. end
  39.  
  40. while true do
  41. local scanned = {}
  42. for _, scan in ipairs(scanFunctions) do
  43. for _, nickname in ipairs(scan(1)) do
  44. scanned[nickname]=true
  45. end
  46. end
  47.  
  48. local r = {}
  49. for nickname in pairs(scanned) do
  50. table.insert(r,nickname)
  51. end
  52. modem.send(mainServer, bios.port, bios.name, table.concat(r,"|"))
  53.  
  54.  
  55. sleep(sleepTime)
  56. end
  57.  
  58.  
Add Comment
Please, Sign In to add comment