xMikhailx

ОС - управление роботом [Control]

Aug 11th, 2015
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.67 KB | None | 0 0
  1. local event = require("event")
  2. local r = require("robot")
  3. local t = require("component").tunnel
  4. local inv = 48                        --размер инвентаря робота
  5.  
  6. --===================================--
  7. --         MOVEMENT FUNCTIONS        --
  8. --===================================--
  9.  
  10. function gf()
  11.     local c = 1
  12.     if act[2]==nil then act[2]=1 end
  13.     for c = 1,act[2] do
  14.         r.forward()
  15.     end
  16.     t.send("Я сдвинулся на "..act[2].." блок(ов) вперёд")
  17.     print("Я сдвинулся на "..act[2].." блок(ов) вперёд")
  18.     c = 1
  19. end
  20.  
  21. function gfd()
  22.     local dblocks = 0
  23.     if act[2]==nil then act[2]=1 end
  24.     for c = 1,act[2] do
  25.         repeat
  26.             if r.swing() then dblocks = dblocks+1 end
  27.             if r.swingUp() then dblocks = dblocks+1 end
  28.         until r.detect()==false or r.detectUp()==false
  29.         r.forward()
  30.         if r.swingUp() then dblocks = dblocks+1 end
  31.     end
  32.     t.send("Я сдвинулся на "..act[2].." блок(ов) вперёд и вскопал "..dblocks.." блок(ов)")
  33.     print("Я сдвинулся на "..act[2].." блок(ов) вперёд и вскопал "..dblocks.." блок(ов)")
  34.     c = 1
  35. end
  36.  
  37. function gb()
  38.     local c = 1
  39.     if act[2]==nil then act[2]=1 end
  40.     for c = 1,act[2] do
  41.         r.back()
  42.     end
  43.     t.send("Я сдвинулся на "..act[2].." блок(ов) назад")
  44.     print("Я сдвинулся на "..act[2].." блок(ов) назад")
  45.     c = 1
  46. end
  47.  
  48. function up()
  49.     local c = 1
  50.     if act[2]==nil then act[2]=1 end
  51.     for c = 1,act[2] do
  52.         r.up()
  53.     end
  54.     t.send("Я поднялся на "..act[2].." блок(ов)")
  55.     print("Я поднялся на "..act[2].." блок(ов)")
  56.     c = 1
  57. end
  58.  
  59. function upd()
  60.     local dblocks = 0
  61.     local c = 1
  62.     if act[2]==nil then act[2]=1 end
  63.     for c = 1,act[2] do
  64.         repeat
  65.             if r.swingUp() then dblocks = dblocks+1 end
  66.         until r.detectUp()==false
  67.         r.up()
  68.         if r.swingUp() then dblocks = dblocks+1 end
  69.     end
  70.     t.send("Я поднялся на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
  71.     print("Я поднялся на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
  72.     c = 1
  73. end
  74.  
  75. function dn()
  76.     local c = 1
  77.     if act[2]==nil then act[2]=1 end
  78.     for c = 1,act[2] do
  79.         r.down()
  80.     end
  81.     t.send("Я спустился на "..act[2].." блок(ов)")
  82.     print("Я спустился на "..act[2].." блок(ов)")
  83.     c = 1
  84. end
  85.  
  86. function dnd()
  87.     local dblocks = 0
  88.     local c = 1
  89.     if act[2]==nil then act[2]=1 end
  90.     for c = 1,act[2] do
  91.         repeat
  92.             if r.swingDown() then dblocks = dblocks+1 end
  93.         until r.detectDown()==false
  94.         r.down()
  95.     end
  96.     t.send("Я спустился на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
  97.     print("Я спустился на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
  98.     c = 1
  99. end
  100.  
  101. function tr()
  102.     r.turnRight()
  103.     t.send("Я повернулся направо")
  104.     print("Я повернулся направо")
  105. end
  106.  
  107. function tl()
  108.     r.turnLeft()
  109.     t.send("Я повернулся налево")
  110.     print("Я повернулся налево")
  111. end
  112.  
  113. function ta()
  114.     r.turnAround()
  115.     t.send("Я повернулся на 180 градусов")
  116.     print("Я повернулся на 180 градусов")
  117. end
  118.  
  119. --===================================--
  120. --            USE FUNCTIONS          --
  121. --===================================--
  122.  
  123. function use()
  124.     r.use()
  125.     t.send("Я щёлкнул правой мыши перед собой")
  126.     print("Я щёлкнул правой мыши перед собой")
  127. end
  128.  
  129. function useup()
  130.     r.useUp()
  131.     t.send("Я щёлкнул правой мыши над собой")
  132.     print("Я щёлкнул правой мыши над собой")
  133. end
  134.  
  135. function usedn()
  136.     r.useDown()
  137.     t.send("Я щёлкнул правой мыши под собой")
  138.     print("Я щёлкнул правой мыши под собой")
  139. end
  140.  
  141. --===================================--
  142. --        INVENTORY FUNCTIONS        --
  143. --===================================--
  144.  
  145. function drop()
  146.     for d=1,inv do
  147.         r.select(d)
  148.         r.drop(r.count())
  149.     end
  150.     r.select(1)
  151.     t.send("Я выбросил все вещи перед собой(или в сундук)")
  152.     print("Я выбросил все вещи перед собой(или в сундук)")
  153. end
  154.  
  155. function dropup()
  156.     for d=1,inv do
  157.         r.select(d)
  158.         r.dropUp(r.count())
  159.     end
  160.     r.select(1)
  161.     t.send("Я выбросил все вещи над собой(или в сундук)")
  162.     print("Я выбросил все вещи над собой(или в сундук)")
  163. end
  164.  
  165. function dropdn()
  166.     for d=1,inv do
  167.         r.select(d)
  168.         r.dropDown(r.count())
  169.     end
  170.     r.select(1)
  171.     t.send("Я выбросил все вещи под собой(или в сундук)")
  172.     print("Я выбросил все вещи под собой(или в сундук)")
  173. end
  174.  
  175. function suck()
  176.     r.select(1)
  177.     while r.suck()==true do
  178.         r.suck()
  179.     end
  180.     t.send("Я забрал вещи перед собой(или из сундука)")
  181.     print("Я забрал вещи перед собой(или из сундука)")
  182. end
  183.  
  184. function suckup()
  185.     r.select(1)
  186.     while r.suckUp()==true do
  187.         r.suckUp()
  188.     end
  189.     t.send("Я забрал вещи над собой(или из сундука)")
  190.     print("Я забрал вещи над собой(или из сундука)")
  191. end
  192.  
  193. function suckdn()
  194.     r.select(1)
  195.     while r.suckDown()==true do
  196.         r.suckDown()
  197.     end
  198.     t.send("Я забрал вещи под собой(или из сундука)")
  199.     print("Я забрал вещи под собой(или из сундука)")
  200. end
  201.  
  202. function error()
  203.     t.send("Ошибка. Неправильная команда")
  204.     print("Ошибка. Неправильная команда")
  205. end
  206. function obr(_,_,_,_,_,com,_)
  207.     local i = 1
  208.     act = {}
  209.     for word in string.gmatch(com, "%w+") do
  210.         --print(word)
  211.         act[i] = word
  212.         i = i + 1
  213.     end
  214.     print(act[1])
  215.     print(act[2])
  216.     if act[1] == "gf" then gf()
  217.     elseif act[1] == "gfd" then gfd()
  218.     elseif act[1] == "tr" then tr()
  219.     elseif act[1] == "tl" then tl()
  220.     elseif act[1] == "ta" then ta()
  221.     elseif act[1] == "up" then up()
  222.     elseif act[1] == "dn" then dn()
  223.     elseif act[1] == "upd" then upd()
  224.     elseif act[1] == "dnd" then dnd()
  225.     elseif act[1] == "gb" then gb()
  226.     elseif act[1] == "use" then use()
  227.     elseif act[1] == "useup" then useup()
  228.     elseif act[1] == "usedn" then usedn()
  229.     elseif act[1] == "drop" then drop()
  230.     elseif act[1] == "dropup" then dropup()
  231.     elseif act[1] == "dropdn" then dropdn()
  232.     elseif act[1] == "suck" then suck()
  233.     elseif act[1] == "suckup" then suckup()
  234.     elseif act[1] == "suckdn" then suckdn()
  235.     else error()
  236. end
  237. end
  238.  
  239. event.listen("modem_message",obr)
Advertisement
Add Comment
Please, Sign In to add comment