Advertisement
Guest User

Untitled

a guest
Mar 26th, 2021
122
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local comp = require("component")
  2. local modem = comp.modem
  3. local event = require("event")
  4. local term = require("term")
  5. local gpu = comp.gpu
  6. local slot = 1
  7. local wm, hm = gpu.maxResolution()
  8.  
  9. local port = 255
  10. modem.open(port)
  11. function link()
  12.   io.write("Трехзначный пароль дрона>>")
  13.   pass = io.read()
  14.   modem.broadcast(port,pass)
  15. end
  16.  
  17. buttons = {
  18. [17]="drone.move(1, 0, 0)",
  19. [31]="drone.move(-1, 0, 0)",
  20. [30]="drone.move(0, 0, -1)",
  21. [32]="drone.move(0, 0, 1)",
  22. [42]="drone.move(0, -1, 0)",
  23. [57]="drone.move(0, 1, 0)",
  24. [23]="for i=1,drone.inventorySize() do drone.select(i) drone.drop(0) end",
  25. [37]="for i=1, drone.inventorySize() do for i=0, 5 do drone.suck(i) end end",
  26. [38]="drone.drop(0)",
  27. [50]="leash.unleash()",
  28. [49]="leash.leash(0)"
  29. }
  30. local stat="open"
  31. local beam = false
  32. while true do
  33.   term.clear()
  34. if stat=="open" then
  35.   print([[
  36.     Дрон - Управление
  37.     Движение - WASD
  38.    
  39.     Другое:
  40.     1 - Подключиться к дрону(Пульт)
  41.     2 - Изменить текст статуса(Дрон)
  42.     3 - Ввести команду(Дрон)
  43.     4 - Выйти(Пульт)
  44.     P - Переместиться на координаты относительно дрона(Движение)
  45.     H - Свернуть/развернуть окно(Пульт)
  46.     K - Забрать все вещи(Инвентарь)
  47.     I - Выбросить/положить все вещи(Инвентарь)
  48.     U - Выбрать следующий слот(Инвентарь)
  49.     Y - Выбрать предыдущий слот(Инвентарь)
  50.     L - Выбросить всё из слота(Инвентарь)
  51.     N - Захватить сущность под дроном(Поводок)
  52.     M - Отпустить все сущности(Поводок)
  53.  
  54.     Примечание: При выходе соединение с дроном само отключает дрона!
  55.  
  56. ]])
  57. end
  58.   local e = {event.pull()}
  59.   if e[1] == "key_down" then
  60.     if e[4] == 5 then
  61.       local h, w = gpu.maxResolution()
  62.       gpu.setResolution(h, w)
  63.       modem.broadcast(port, "computer.shutdown()")
  64.       print("Вышли")
  65.       break
  66.     elseif e[4] == 21 then
  67.     if slot == 1 then
  68.       slot = 2
  69.     end
  70.     slot = slot - 1
  71.     modem.broadcast(port, "drone.select(" .. slot .. ")")
  72.     elseif e[4] == 22 then
  73.     if slot == 8 then
  74.       slot = 7
  75.     end
  76.     slot = slot + 1
  77.     modem.broadcast(port, "drone.select(" .. slot .. ")")
  78.     elseif e[4] == 2 then
  79.       link()
  80.     elseif e[4] == 25 then
  81.       term.clear()
  82.       print("Введите X координату относительно дрона")
  83.       io.write(">>")
  84.       local dX = io.read()
  85.       print("Введите Y координату относительно дрона")
  86.       io.write(">>")
  87.       local dY = io.read()
  88.       print("Введите Z координату относительно дрона")
  89.       io.write(">>")
  90.       local dZ = io.read()
  91.       modem.broadcast(port, "move(" .. dX .. ", " .. dY .. ", " .. dZ .. ")")
  92.     elseif e[4] == 35 then
  93.       if stat=="closed" then
  94.         gpu.setResolution(wm, hm)
  95.         stat="open"
  96.       elseif stat=="open" then
  97.         gpu.setResolution(1, 1)
  98.         stat="closed"
  99.       end
  100.      
  101.     elseif e[4] == 3 then
  102.       print("Текст для дрона:")
  103.       io.write(">>")
  104.       modem.broadcast(port, "drone.setStatusText('" .. io.read() .. "')")
  105.     elseif e[4] == 4 then
  106.       print("Команда для дрона")
  107.       io.write(">>")
  108.       modem.broadcast(port, io.read())
  109.     else
  110.       if buttons[e[4]] then
  111.         modem.broadcast(port, buttons[e[4]])
  112.       end
  113.     end
  114. end
  115. end
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement