Advertisement
Skillkiller

Alarm Sound T2

Sep 8th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.59 KB | None | 0 0
  1. wModul = "back"
  2. sound = "top"
  3. status = false
  4. uOnline = false
  5.  
  6. function dashboard(stText, rID, wAuf)
  7.     shell.run("clear")
  8.     maxX, maxY = term.getSize()
  9.     term.setCursorPos(1,2)
  10.     local text = ""
  11.     for i = 0, maxX - 1, 1 do
  12.       text = text .. "#"
  13.     end
  14.     print(text)
  15.  
  16.     local header = "Alarm Sound"
  17.     term.setCursorPos(math.floor((maxX - string.len(header)) / 2), 4)
  18.     print(header)
  19.  
  20.     term.setCursorPos(math.floor((maxX - string.len(stText)) / 2),math.floor(maxY / 2))
  21.     print(stText)
  22.  
  23.     local text = ""
  24.     local text = "Timer ID: " .. tostring(rID)
  25.     term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 1)
  26.     print(text)
  27.  
  28.     local text = ""
  29.     local text = "Status: " .. tostring(status)
  30.     term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 2)
  31.     print(text)
  32.  
  33.     local text = ""
  34.     local text = "User Online: " .. tostring(uOnline)
  35.     term.setCursorPos(math.floor((maxX - string.len(text)) / 2),math.floor(maxY / 2) + 3)
  36.     print(text)
  37.  
  38.     local warten = " Warten auf " .. tostring(wAuf)
  39.     term.setCursorPos(math.floor((maxX - string.len(warten)) / 2),maxY - 2)
  40.     print(warten)
  41.  
  42.     local text = ""
  43.     term.setCursorPos(1,maxY)
  44.     for i = 0, maxX - 1, 1 do
  45.        text = text .. "#"
  46.     end
  47.     print(text)
  48.  
  49.     local warten = " Signal kann empfangen werden "
  50.     term.setCursorPos(math.floor((maxX - string.len(warten)) / 2),maxY - 1)
  51.     print(warten)
  52. end
  53.  
  54. function wartenAlarm()
  55. senderId1, message1, protocol = rednet.receive("1900Alarm")
  56. if message1 == "Alarm start!" then
  57.     alarmStart()
  58. elseif message1 == "Alarm stop!" then
  59.     alarmStop()
  60. else
  61.     print("Irgendwas ging schief?!")
  62.     print("Alarm Message Abfrage")
  63. end
  64. end
  65.  
  66. function isOnline()
  67.     rednet.broadcast("status?", "1900Player")
  68.     local senderId3, message3, protocol = rednet.receive("1900Player")
  69.     if message3 == "Online" then
  70.         uOnline = true
  71.         return true
  72.     elseif message3 == "Offline" then
  73.         uOnline = false
  74.         return false
  75.     end
  76. end
  77.  
  78. function alarmStart()
  79.     if (isOnline()) then
  80.         myTimer = os.startTimer(300)
  81.     else
  82.         myTimer = os.startTimer(60)
  83.     end
  84.     status = true
  85.     redstone.setOutput(sound, true)
  86. end
  87.  
  88. function alarmStop()
  89.     if status then
  90.         os.cancelTimer(myTimer)
  91.     end
  92.     status = false
  93.     myTimer = 0
  94.     redstone.setOutput(sound, false)
  95. end
  96.  
  97. function wartenTimer()
  98. local event, timerID = os.pullEvent("timer")
  99. if timerID == myTimer then
  100.     local olduOnline = uOnline
  101.     if (olduOnline == false and isOnline() == false) then
  102.         redstone.setOutput(sound, false)
  103.         rednet.broadcast("Roter Alarm Sound wurde automatisch deaktiviert", "1900Warn")
  104.         sleep(0.3)
  105.         rednet.broadcast("Grund: Besitzer nicht Online!", "1900Warn")
  106.         myTimer = 0
  107.         status = false
  108.     elseif (olduOnline == false and isOnline() == true) then
  109.         myTimer = os.startTimer(240)
  110.         rednet.broadcast("Roter Alarm wurde automatisch verl\195\164ngert", "1900Info")
  111.     elseif (olduOnline) then
  112.     redstone.setOutput(sound, false)
  113.     rednet.broadcast("Roter Alarm Sound wurde automatisch deaktiviert", "1900Warn")
  114.     sleep(0.3)
  115.     rednet.broadcast("Grund: 5 Min sind vergangen", "1900Warn")
  116.     myTimer = 0
  117.     status = false
  118.     end
  119. end
  120. end
  121.  
  122. --Einmalig
  123. rednet.open(wModul)
  124.  
  125. while true do
  126. if status then
  127. dashboard("Alarm l\195\164uft", myTimer, 2)
  128. parallel.waitForAny(wartenAlarm, wartenTimer)
  129. else
  130. dashboard("Alarm gestoppt", myTimer, 1)
  131. wartenAlarm()
  132. end
  133. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement