Поиск по сайту
Результаты поиска по тегам 'event'.
Найдено 2 результата
-
Начал писать радиоуправляемого робота, всё как обычно начиналось хорошо, но произошла такая хрень! Не хочет обрабатывать вот это событие: local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, serverAddr, 666) если делаю вот так: local a1, a2, a3, a4, a5, ev = event.pull("modem_message") всё работает, вот так опять нет: local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, _, 666) в общем перебрал все варианты, не могу понять где ошибка. Не обращайте внимание на лишние принты и переменные, это я уже не знал куда смотреть). Вот код: Клиент: local r = require("robot") local com = require("component") local event = require("event") local modem = com.modem local doit = {} doit.up = r.up doit.down = r.down doit.left = r.turnLeft doit.right = r.turnRight doit.around = r.turnAround doit.forward = r.forward doit.back = r.back doit.swing = r.swing doit.swingUp = r.swingUp doit.swingDown = r.swingDown doit.use = r.use doit.useUp = r.useUp doit.useDown = r.useDown doit.place = r.place doit.placeUp = r.placeUp doit.placeDown = r.placeDown modem.close() modem.open(666) modem.setStrength(500) local _, clientAddr, serverAddr, _, _, _ = event.pull("modem_message", _, _, 666, _, "gogo") modem.send(serverAddr, 666, clientAddr) print(serverAddr.."||") print(clientAddr) print("приступаю к циклу") while true do print("цикл") local a1, a2, a3, a4, a5, ev = event.pull("modem_message", _, serverAddr, 666) --------- FUCK!!!!!!!!!! print("считал сообщение") doit[ev]() print(a1,a2,a3,a4,a5,ev) end и сервер: local com = require("component") local event = require("event") local modem = com.modem modem.close() modem.open(666) modem.setStrength(500) modem.broadcast(666, "gogo") local _, _, _, _, _, clientAddr = event.pull("modem_message", _, _, 666) print(clientAddr) while true do local msg = io.read() modem.send(clientAddr, 666, msg) print("--"..msg) end заранее спасибо тем, кто откликнется.
- 14 ответов
-
- event
- opencomputers
-
(и ещё 1 )
Теги:
-
Есть следующий код: local component = require("component") local debug = component.debug local note = require("note") local event = require("event") local glass = component.glasses local chatbox = component.chat_box local isrender = 0 print("Скрипт запущен") local _,_,plr,msg = event.pull("chat_message") function render(timearg) return true end while true do timefunc = os.date("%H:%M:%S", os.time()) glass.removeAll() rect = glass.addRect() text = glass.addTextLabel() rect.setPosition(1,1) rect.setSize(50,100) rect.setColor(0.5,0.5,0.5) rect.setAlpha(0.3) text.setPosition(1,1) text.setText(timefunc) text.setAlpha(1) text.setColor(0,1,0) if plr == "danshat" and msg == "$$stop" then isrender = 0 glass.removeAll() end if plr == "danshat" and msg == "$$start" then isrender = 1 end if plr == "danshat" and msg == "$$quit" then glass.removeAll() print("Остановка..") return true end if debug.getWorld().isRaining() == true or debug.getWorld().isThundering() == true then debug.getWorld().setRaining(false) debug.getWorld().setThundering(false) print("Дождь отключен") note.play(90,0.5) end if debug.getPlayer("danshat").getHealth() <= 4 then debug.getPlayer("danshat").setHealth(20) print("Здоровье восстановлено") note.play(90,0.5) end end Собственно, небольшая программка на отдельном сервере по остановке дождя, восстановлению ХП и выводом времени на очки OpenGlasses. Дело в том, что при запуске рендер компонентов на OpenGlasses происходит один раз.. И больше никогда. Путем отсеивания выяснил, что проблема в event.pull(). Когда его нет, часы работают как часы. Но когда он есть, цикл while true do проворачивается один раз и останавливается. Возможное решение существует?