Skiret

nscan

Nov 29th, 2020
505
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local event = require("event")
  2. local component = require("component")
  3. local term = require("term")
  4.  
  5. term.clear()
  6. print("Начинаю сканирование... Просьба не закрывать планшет.")
  7. local modem = component.modem
  8. modem.open(1)
  9. modem.broadcast(1, "nanomachines", "setResponsePort", 1)
  10. msg=""
  11. ex=true
  12. function eventer(tbl)
  13.     local head=tbl[6]
  14.     local title=tbl[7]
  15.     local message=tbl[8]
  16.     if head=="nanomachines" then
  17.         if title=="effects" then
  18.             msg=message
  19.         elseif title=="input" and message=="error" then
  20.             ex=false
  21.             msg="error"
  22.         end
  23.     end
  24. end
  25.  
  26. local function send(command, ...)
  27.   component.modem.broadcast(1, "nanomachines", command, ...)
  28. end
  29.  
  30.  
  31.  
  32.  
  33. map=""
  34. J=0
  35. while ex do
  36.     J=J+1
  37.     send("setInput", J, true)
  38.     eventer({event.pull("modem_message")})
  39.     send("getActiveEffects")
  40.     eventer({event.pull("modem_message")})
  41.     print(J..":"..msg)
  42.     if msg~="{}" then
  43.         map=map..J..":"..msg.."\n"
  44.     end
  45.     send("setInput", J, false)
  46.     _,_,_,_,_,_,_,_=event.pull("modem_message")
  47. end
  48.  
  49. term.clear()
  50. print("сканирование закончино. интересные эффекты:")
  51. print(map)
RAW Paste Data