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 проворачивается один раз и останавливается.
Есть следующий код:
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 проворачивается один раз и останавливается.
Возможное решение существует?
Изменено пользователем danshatПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах