Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wModul = "back"
- sound = "top"
- status = false
- uOnline = false
- function dashboard(stText, rID, wAuf)
- shell.run("clear")
- maxX, maxY = term.getSize()
- term.setCursorPos(1,2)
- local text = ""
- for i = 0, maxX - 1, 1 do
- text = text .. "#"
- end
- print(text)
- local header = "Alarm Sound"
- term.setCursorPos(math.floor((maxX - string.len(header)) / 2), 4)
- print(header)
- term.setCursorPos(math.floor((maxX - string.len(stText)) / 2),math.floor(maxY / 2))
- print(stText)
- local text = ""
- local text = "Timer ID: " .. tostring(rID)
- term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 1)
- print(text)
- local text = ""
- local text = "Status: " .. tostring(status)
- term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 2)
- print(text)
- local text = ""
- local text = "User Online: " .. tostring(uOnline)
- term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 3)
- print(text)
- local warten = " Warten auf " .. tostring(wAuf)
- term.setCursorPos(math.floor((maxX - string.len(warten)) / 2),maxY - 2)
- print(warten)
- local text = ""
- term.setCursorPos(1,maxY)
- for i = 0, maxX - 1, 1 do
- text = text .. "#"
- end
- print(text)
- local warten = " Signal kann empfangen werden "
- term.setCursorPos(math.floor((maxX - string.len(warten)) / 2),maxY - 1)
- print(warten)
- end
- function wartenAlarm()
- senderId1, message1, protocol = rednet.receive("1900Alarm")
- if message1 == "Alarm start!" then
- alarmStart()
- elseif message1 == "Alarm stop!" then
- alarmStop()
- else
- print("Irgendwas ging schief?!")
- print("Alarm Message Abfrage")
- end
- end
- function isOnline()
- rednet.broadcast("status?", "1900Player")
- local senderId3, message3, protocol = rednet.receive("1900Player")
- if message3 == "Online" then
- uOnline = true
- return true
- elseif message3 == "Offline" then
- uOnline = false
- return false
- end
- end
- function alarmStart()
- if (isOnline()) then
- myTimer = os.startTimer(300)
- else
- myTimer = os.startTimer(60)
- end
- status = true
- redstone.setOutput(sound, true)
- end
- function alarmStop()
- if status then
- os.cancelTimer(myTimer)
- end
- status = false
- myTimer = 0
- redstone.setOutput(sound, false)
- end
- function wartenTimer()
- local event, timerID = os.pullEvent("timer")
- if timerID == myTimer then
- local olduOnline = uOnline
- if (olduOnline == false and isOnline() == false) then
- redstone.setOutput(sound, false)
- rednet.broadcast("Roter Alarm Sound wurde automatisch deaktiviert", "1900Warn")
- sleep(0.3)
- rednet.broadcast("Grund: Besitzer nicht Online!", "1900Warn")
- myTimer = 0
- status = false
- elseif (olduOnline == false and isOnline() == true) then
- myTimer = os.startTimer(240)
- rednet.broadcast("Roter Alarm wurde automatisch verl\195\164ngert", "1900Info")
- elseif (olduOnline) then
- redstone.setOutput(sound, false)
- rednet.broadcast("Roter Alarm Sound wurde automatisch deaktiviert", "1900Warn")
- sleep(0.3)
- rednet.broadcast("Grund: 5 Min sind vergangen", "1900Warn")
- myTimer = 0
- status = false
- end
- end
- end
- --Einmalig
- rednet.open(wModul)
- while true do
- if status then
- dashboard("Alarm l\195\164uft", myTimer, 2)
- parallel.waitForAny(wartenAlarm, wartenTimer)
- else
- dashboard("Alarm gestoppt", myTimer, 1)
- wartenAlarm()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement