Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local event = require("event")
- local r = require("robot")
- local t = require("component").tunnel
- local inv = 48 --размер инвентаря робота
- --===================================--
- -- MOVEMENT FUNCTIONS --
- --===================================--
- function gf()
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- r.forward()
- end
- t.send("Я сдвинулся на "..act[2].." блок(ов) вперёд")
- print("Я сдвинулся на "..act[2].." блок(ов) вперёд")
- c = 1
- end
- function gfd()
- local dblocks = 0
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- repeat
- if r.swing() then dblocks = dblocks+1 end
- if r.swingUp() then dblocks = dblocks+1 end
- until r.detect()==false or r.detectUp()==false
- r.forward()
- if r.swingUp() then dblocks = dblocks+1 end
- end
- t.send("Я сдвинулся на "..act[2].." блок(ов) вперёд и вскопал "..dblocks.." блок(ов)")
- print("Я сдвинулся на "..act[2].." блок(ов) вперёд и вскопал "..dblocks.." блок(ов)")
- c = 1
- end
- function gb()
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- r.back()
- end
- t.send("Я сдвинулся на "..act[2].." блок(ов) назад")
- print("Я сдвинулся на "..act[2].." блок(ов) назад")
- c = 1
- end
- function up()
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- r.up()
- end
- t.send("Я поднялся на "..act[2].." блок(ов)")
- print("Я поднялся на "..act[2].." блок(ов)")
- c = 1
- end
- function upd()
- local dblocks = 0
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- repeat
- if r.swingUp() then dblocks = dblocks+1 end
- until r.detectUp()==false
- r.up()
- if r.swingUp() then dblocks = dblocks+1 end
- end
- t.send("Я поднялся на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
- print("Я поднялся на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
- c = 1
- end
- function dn()
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- r.down()
- end
- t.send("Я спустился на "..act[2].." блок(ов)")
- print("Я спустился на "..act[2].." блок(ов)")
- c = 1
- end
- function dnd()
- local dblocks = 0
- local c = 1
- if act[2]==nil then act[2]=1 end
- for c = 1,act[2] do
- repeat
- if r.swingDown() then dblocks = dblocks+1 end
- until r.detectDown()==false
- r.down()
- end
- t.send("Я спустился на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
- print("Я спустился на "..act[2].." блок(ов) и вскопал "..dblocks.." блок(ов)")
- c = 1
- end
- function tr()
- r.turnRight()
- t.send("Я повернулся направо")
- print("Я повернулся направо")
- end
- function tl()
- r.turnLeft()
- t.send("Я повернулся налево")
- print("Я повернулся налево")
- end
- function ta()
- r.turnAround()
- t.send("Я повернулся на 180 градусов")
- print("Я повернулся на 180 градусов")
- end
- --===================================--
- -- USE FUNCTIONS --
- --===================================--
- function use()
- r.use()
- t.send("Я щёлкнул правой мыши перед собой")
- print("Я щёлкнул правой мыши перед собой")
- end
- function useup()
- r.useUp()
- t.send("Я щёлкнул правой мыши над собой")
- print("Я щёлкнул правой мыши над собой")
- end
- function usedn()
- r.useDown()
- t.send("Я щёлкнул правой мыши под собой")
- print("Я щёлкнул правой мыши под собой")
- end
- --===================================--
- -- INVENTORY FUNCTIONS --
- --===================================--
- function drop()
- for d=1,inv do
- r.select(d)
- r.drop(r.count())
- end
- r.select(1)
- t.send("Я выбросил все вещи перед собой(или в сундук)")
- print("Я выбросил все вещи перед собой(или в сундук)")
- end
- function dropup()
- for d=1,inv do
- r.select(d)
- r.dropUp(r.count())
- end
- r.select(1)
- t.send("Я выбросил все вещи над собой(или в сундук)")
- print("Я выбросил все вещи над собой(или в сундук)")
- end
- function dropdn()
- for d=1,inv do
- r.select(d)
- r.dropDown(r.count())
- end
- r.select(1)
- t.send("Я выбросил все вещи под собой(или в сундук)")
- print("Я выбросил все вещи под собой(или в сундук)")
- end
- function suck()
- r.select(1)
- while r.suck()==true do
- r.suck()
- end
- t.send("Я забрал вещи перед собой(или из сундука)")
- print("Я забрал вещи перед собой(или из сундука)")
- end
- function suckup()
- r.select(1)
- while r.suckUp()==true do
- r.suckUp()
- end
- t.send("Я забрал вещи над собой(или из сундука)")
- print("Я забрал вещи над собой(или из сундука)")
- end
- function suckdn()
- r.select(1)
- while r.suckDown()==true do
- r.suckDown()
- end
- t.send("Я забрал вещи под собой(или из сундука)")
- print("Я забрал вещи под собой(или из сундука)")
- end
- function error()
- t.send("Ошибка. Неправильная команда")
- print("Ошибка. Неправильная команда")
- end
- function obr(_,_,_,_,_,com,_)
- local i = 1
- act = {}
- for word in string.gmatch(com, "%w+") do
- --print(word)
- act[i] = word
- i = i + 1
- end
- print(act[1])
- print(act[2])
- if act[1] == "gf" then gf()
- elseif act[1] == "gfd" then gfd()
- elseif act[1] == "tr" then tr()
- elseif act[1] == "tl" then tl()
- elseif act[1] == "ta" then ta()
- elseif act[1] == "up" then up()
- elseif act[1] == "dn" then dn()
- elseif act[1] == "upd" then upd()
- elseif act[1] == "dnd" then dnd()
- elseif act[1] == "gb" then gb()
- elseif act[1] == "use" then use()
- elseif act[1] == "useup" then useup()
- elseif act[1] == "usedn" then usedn()
- elseif act[1] == "drop" then drop()
- elseif act[1] == "dropup" then dropup()
- elseif act[1] == "dropdn" then dropdn()
- elseif act[1] == "suck" then suck()
- elseif act[1] == "suckup" then suckup()
- elseif act[1] == "suckdn" then suckdn()
- else error()
- end
- end
- event.listen("modem_message",obr)
Advertisement
Add Comment
Please, Sign In to add comment