serafim7

simple drone control (tablet) [OpenComputers]

Jun 17th, 2017
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.69 KB | None | 0 0
  1. --[[opencomputers Пульт для дрона by serafim
  2.     pastebin.com/C96vhh2C
  3.  
  4. Дрон с защитой от угона при помощи авторизации
  5.  
  6. требования:
  7. планшет первого уровня
  8. беспроводная интернет карта
  9.  
  10. использование:
  11. включить дрона,
  12. ввести код дрона на планшете
  13. ]]--
  14.  
  15. local comp = require("component")
  16. local term = require("term")
  17. local event = require("event")
  18. local gpu = comp.gpu
  19.  
  20. local port = 123
  21. local full = false
  22. local x_max, y_max = gpu.maxResolution()
  23. local speed = 1
  24. local col = 0xFFFFFF
  25.  
  26. if comp.isAvailable("modem") then
  27.   modem = comp.modem
  28. else
  29.   print("Нет модема !")
  30.   os.exit()
  31. end
  32.  
  33. modem.open(port)
  34. gpu.setResolution(x_max,y_max)
  35.  
  36. local function info()
  37. term.clear()
  38. term.setCursor(1,3)
  39. print([[
  40. 1 подключиться к дрону        │   Space  вверх
  41. Y повысить скорость дрона     │   LShift вниз
  42. H понизить скорость дрона     │   W вперед
  43. T забрать вещи из сундука     │   D вправо
  44. G выбросить все вещи          │   A влево
  45. Z уменьшить/увеличить экран   │   S назад
  46. V информация                  │   E разрушить
  47. C изменить цвет дрона         │   R поставить
  48. Q выход                       │   F использовать
  49. ]])
  50. end
  51.  
  52. local function link()
  53.   term.clear()
  54.   io.write("Введите код дрона >>")
  55.   modem.broadcast(port,io.read())
  56.   local e = {event.pull(1,'modem_message')}
  57.   if e[6] == "false" then
  58.     print("Код не верный !")
  59.     os.sleep(1)
  60.     link()
  61.   elseif e[6] == "true" then
  62.     print("Дрон подключен !")
  63.   else
  64.     print("Дрон не отвечает !")
  65.   end
  66.   os.sleep(1)
  67. end
  68.  
  69. actions = {
  70. [17] = "drone.move(1,0,0)",
  71. [31] = "drone.move(-1,0,0)",
  72. [30] = "drone.move(0,0,-1)",
  73. [32] = "drone.move(0,0,1)",
  74. [42] = "drone.move(0,-1,0)",
  75. [57] = "drone.move(0,1,0)",
  76. [33] = "drone.use(0)",
  77. [18] = "drone.swing(0)",
  78. [19] = "drone.place(0)",
  79. [34] = "for i = 1, drone.inventorySize() do drone.select(i) drone.drop(0) end",
  80. [20] = "for i = 1, drone.inventorySize() do for i = 0, 5 do drone.suck(i) end end"
  81. }
  82.  
  83. commands = {
  84. [44] = function() full = not full if full then gpu.setResolution(1, 1) else gpu.setResolution(x_max,y_max) info() end end,
  85. [21] = function() if speed < 2 then speed = speed + 0.5 modem.broadcast(port,"drone.setAcceleration("..speed..")") term.write("Скорость дрона: "..speed) else term.write("Скорость дрона: 2") end end,
  86. [35] = function() if speed > 0.5 then speed = speed - 0.5 modem.broadcast(port,"drone.setAcceleration("..speed..")") term.write("Скорость дрона: "..speed) else term.write("Скорость дрона: 0.5") end end,
  87. [46] = function() col = math.random(0x0, 0xFFFFFF) modem.broadcast(port,"drone.setLightColor("..col..")") term.write("Изменен цвет дрона: "..col) end,
  88. [47] = function() term.write("Цвет дрона: "..col.."  Скорость дрона: "..speed) end,
  89. [2] = function() link() info() end,
  90. [16] = function() gpu.setResolution(x_max,y_max) term.write("Выход") modem.close(port) os.sleep(1) term.clear() os.exit() end
  91. }
  92.  
  93. link()
  94. info()
  95. while true do
  96.   local e = {event.pull('key_down')}
  97.   term.setCursor(1,2)
  98.   term.clearLine()
  99.   term.setCursor(1,1)
  100.   term.clearLine()
  101.   if actions[e[4]] then
  102.     modem.broadcast(port,actions[e[4]])
  103.     term.write(actions[e[4]])
  104.   end
  105.   if commands[e[4]] then
  106.     commands[e[4]]()
  107.   end
  108. end
Add Comment
Please, Sign In to add comment