Advertisement
MagmaLP

1

Jun 16th, 2023 (edited)
867
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. os.loadAPI("ocs/apis/sensor")
  2. local s = sensor.wrap("front")
  3. side = "top"
  4. mon = peripheral.wrap(side)
  5. mon.setBackgroundColor(32768)
  6. mon.setTextScale(1.5)
  7. mon.clear()
  8.  
  9. function calc_color(color)
  10.     return math.pow(2, color - 1)
  11. end
  12.  
  13. function msg(gap, line, color, groundb, text)
  14.     mon.setBackgroundColor(calc_color(groundb))
  15.     mon.setCursorPos(gap,line)
  16.     mon.setTextColor(calc_color(color))
  17.     text = mon.write(text)
  18. end  
  19.  
  20. function stufenscreen()
  21.     for i = 1,13 do -- monitor clear
  22.         msg(01,i,01,16,"                                                         ")
  23.     end
  24.  
  25.     for name,info in pairs(s.getTargets()) do   --name erkennen
  26.         local file = fs.open("stufe/" ..name.. "/", "r") -- lese Stufe aus
  27.         local stufe = file.readLine()
  28.         file.close()
  29.  
  30.         msg(01,01,02,16," Welcome "..name.."                                   ")
  31.         msg(01,02,05,16,"---------------------------------+-----------------------")
  32.         msg(01,03,09,16,"There are levels 1 to 5.")
  33.         msg(01,04,09,16,"Minutes * Level * 10 = UU-Matter")
  34.         msg(01,05,09,16,"E.g: 20 *   3   * 10 = 600 UU")
  35.         msg(01,06,06,16,"Your Level: "..stufe.."                                 ")
  36.         msg(01,07,09,16,"Put HVs in the ME on your left")
  37.         msg(01,08,09,16,"to increase your level, you keep")
  38.         msg(01,09,09,16,"them back afterwards.")
  39.         msg(01,10,10,16,"Level 2 with 04 HV")
  40.         msg(01,11,10,16,"Level 3 with 08 HV") msg(21,10,15,09,"           ")
  41.         msg(01,12,10,16,"Level 4 with 12 HV") msg(21,11,15,09,"   START   ")
  42.         msg(01,13,10,16,"Level 5 with 16 HV") msg(21,12,15,09,"           ")
  43.                                              
  44.  
  45.         local event, side, X, Y = os.pullEvent("monitor_touch") -- zuråBCck zu Screen1
  46.         if X >= 21 and X <= 50 and Y >= 10 and Y <= 12 and side == side then -- Stufe åA4ndern
  47.             rednet.open("bottom")
  48.             rednet.send(9941,1)
  49.             x, y, z = rednet.receive()
  50.             stufe = tonumber(stufe)
  51.             if y == 1 then
  52.                 sleep(0.5)
  53.             elseif y == 2 and stufe == 1 then
  54.                 local file = fs.open("stufe/" ..name.. "/", "w")
  55.                 file.write("2")
  56.                 file.close()
  57.             elseif y == 3 and stufe <= 2 then
  58.                 local file = fs.open("stufe/" ..name.. "/", "w")
  59.                 file.write("3")
  60.                 file.close()
  61.             elseif y == 4 and stufe <= 3 then
  62.                 local file = fs.open("stufe/" ..name.. "/", "w")
  63.                 file.write("4")
  64.                 file.close()
  65.             elseif y == 5 and stufe <= 4 then
  66.                 local file = fs.open("stufe/" ..name.. "/", "w")
  67.                 file.write("5")
  68.                 file.close()
  69.             end
  70.             screen3()
  71.         end
  72.     end
  73. end
  74.  
  75. function screen3()
  76.     for name,info in pairs(s.getTargets()) do   --name erkennen
  77.         local file = fs.open("users/" ..name.. "/", "r") -- lese Minuten aus
  78.         local minu = file.readLine()
  79.         file.close()
  80.         local file = fs.open("stufe/" ..name.. "/", "r") -- lese Stufe aus
  81.         local stufe = file.readLine()
  82.         file.close()
  83.         minu = tonumber(minu)
  84.  
  85.         if stufe == "1" then
  86.             faktor1 = 10
  87.             faktor2 = 100
  88.         elseif stufe == "2" then
  89.             faktor1 = 20
  90.             faktor2 = 200
  91.         elseif stufe == "3" then
  92.             faktor1 = 30
  93.             faktor2 = 300
  94.         elseif stufe == "4" then
  95.             faktor1 = 40
  96.             faktor2 = 400
  97.         elseif stufe == "5" then
  98.             faktor1 = 50
  99.             faktor2 = 500
  100.         end
  101. ---------------------------------------------------------------
  102.         term.setCursorPos(1,3)
  103.         term.write("Stufe: "..stufe)
  104.         term.setCursorPos(1,4)
  105.         term.write("                          ")
  106.         term.setCursorPos(1,4)
  107.         term.write("Abzug in Minuten: "..minuten)
  108.         term.setCursorPos(1,5)
  109.         term.write("                          ")
  110.         term.setCursorPos(1,5)
  111.         term.write("Auszahlung in UU: "..uumatter)     
  112. ---------------------------------------------------------------
  113.         for i = 1,13 do -- monitor clear
  114.             msg(01,i,01,16,"                                                         ")
  115.         end
  116.  
  117.         msg(01,01,02,16," Welcome "..name.."                                   ")   -- Screen3
  118.         msg(01,02,05,16,"---------------------------------------------------------")
  119.         msg(01,03,06,16,"Level: "..stufe.."   Minutes: "..minu.."                 ")
  120.         msg(01,04,05,16,"---------------------------------------------------------")
  121.         msg(01,05,10,16,"click here to change level.                              ")
  122.         msg(01,06,05,16,"---------------------------------------------------------")
  123.         msg(01,07,09,16,"select payout amount:                                     ")
  124.         msg(05,08,01,06,"+1 ")    msg(12,08,01,06,"+10")
  125.         msg(20,08,01,15,"-1 ")    msg(27,08,01,15,"-10")
  126.         msg(01,09,05,16,"                                                         ")
  127.         msg(01,10,06,16,"Minutes: "..minuten.."   UU-Matter: "..uumatter.."       ")
  128.         msg(01,11,05,16,"------------------+") msg(20,11,15,09,"                  ")
  129.         msg(01,12,09,08," open start menu  ")  msg(20,12,15,09," UU - pay out     ")
  130.         msg(01,13,09,08," -> click here <- ")  msg(20,13,15,09,"  click here      ")
  131.         for x = 12,13 do
  132.             msg(19,x,05,16,"|")  
  133.         end
  134.                                        
  135.         local event, side, X, Y = os.pullEvent("monitor_touch") -- zuråBCck zu Screen1
  136.         if X >= 05 and X <= 07 and Y == 8 and side == side then -- +1
  137.             if minuten < minu then
  138.                 minuten = minuten + 1
  139.                 uumatter = uumatter + faktor1
  140.                 screen3()
  141.             else
  142.                 screen3()
  143.             end
  144.         elseif X >= 12 and X <= 15 and Y == 8 and side == side then -- +10
  145.             if minuten + 11 <= minu then
  146.                 minuten = minuten + 10
  147.                 uumatter = uumatter + faktor2
  148.                 screen3()
  149.             else
  150.                 screen3()
  151.             end
  152.         elseif X >= 20 and X <= 22 and Y == 8 and side == side and minuten >= 01 then -- -1
  153.             minuten = minuten - 1
  154.             uumatter = uumatter - faktor1
  155.             screen3()
  156.         elseif X >= 27 and X <= 29 and Y == 8 and side == side and minuten >= 10 then -- -10
  157.             minuten = minuten - 10
  158.             uumatter = uumatter - faktor2
  159.             screen3()
  160.         elseif X >= 01 and X <= 18 and Y >= 12 and Y <= 13 and side == side then -- neustart
  161.             shell.run("startup")
  162.         elseif X >= 20 and X <= 50 and Y >= 12 and Y <= 13 and side == side then -- UU auszahlen
  163.             rednet.open("bottom")
  164.             rednet.send(9938,uumatter)
  165.             minu = minu - minuten
  166.             local file = fs.open("users/" ..name.. "/", "w")
  167.             file.write(minu)
  168.             file.close()
  169.             msg(01,10,06,16,"                                                         ")
  170.             msg(01,10,06,16,"payout in progress (ME System)->  ")
  171.             sleep(1.5)
  172.         elseif X >= 1 and X <= 50 and Y == 5 and side == side then -- Steufe åA4ndern
  173.             stufenscreen()
  174.         else
  175.             screen3()
  176.         end
  177.     end
  178. end
  179.  
  180.  
  181.        
  182.  
  183. while true do
  184.     for name,info in pairs(s.getTargets()) do   --name erkennen
  185.         msg(01,01,02,16," Welcome "..name.."                                   ")
  186.  
  187.         if fs.exists("users/" ..name) == false then             --erstelle Minuten
  188.             local file = fs.open("users/" ..name.. "/", "w")
  189.             file.write("0")
  190.             file.close()
  191.         end
  192.         if fs.exists("stufe/" ..name) == false then             --erstelle Stufe
  193.             local file = fs.open("stufe/" ..name.. "/", "w")
  194.             file.write("1")
  195.             file.close()
  196.         end
  197.  
  198.         if rs.getInput("left", true) then       --druckplatte erkennen
  199.             local file = fs.open("users/" ..name.. "/", "r")        --lese Minuten aus
  200.             local minu = file.readLine()
  201.             file.close()
  202.  
  203.             msg(01,02,05,16,"---------------------------------------------------------")    --Screen2
  204.             msg(16,03,06,16," "..minu.." Minutes                                      ")
  205.             msg(01,04,05,16,"---------------------------------------------------------")
  206.             msg(01,05,09,16,"                                                         ")
  207.             msg(01,06,09,16,"                                                         ")
  208.             msg(01,07,09,16,"                                                         ")
  209.             msg(01,05,09,16,"It is checked every 60 seconds                           ")
  210.             msg(01,06,09,16,"whether you are still standing                           ")
  211.             msg(01,07,09,16,"on the pressure plate.                                   ")
  212.             msg(01,08,05,16,"---------------------------------------------------------")   
  213.             msg(01,09,09,16,"received minutes are saved                               ")
  214.             msg(01,10,09,16,"until they are redeemed.                                 ")
  215.             msg(01,11,05,16,"---------------------------------------------------------")
  216.             msg(01,12,09,16,"                                                         ")
  217.             msg(01,13,09,16,"                                                         ")
  218.  
  219.             for sek = 1,60 do   --zåA4hle bis 60 Sekunden
  220.                 msg(01,03,06,16," "..sek.." Secondes ")
  221.                 sleep(1)
  222.                 if sek == 60 then   --wenn 60 dann zåA4hl +1 Minuten
  223.                     minu = minu + 1
  224.                     msg(16,03,06,16," "..minu..".0 Minutes   ")
  225.                     local file = fs.open("users/" ..name.. "/", "w")    --neue Minuten speichern
  226.                     file.write(minu)
  227.                     file.close()
  228.                 end
  229.             end
  230.         else
  231.             msg(01,02,05,16,"---------------------------------------------------------")    --Screen1
  232.             msg(01,03,06,16,"                                                         ")
  233.             msg(01,04,05,16,"---------------------------------------------------------")
  234.             msg(01,05,09,16,"                                                         ")
  235.             msg(01,06,09,16,"                                                         ")
  236.             msg(01,07,09,16,"                                                         ")
  237.             msg(01,05,09,16,"No player detected on                                    ")
  238.             msg(01,06,09,16,"pressure plate, stand on pressure                        ")
  239.             msg(01,07,09,16,"plate to start count.                                    ")       
  240.             msg(01,08,05,16,"---------------------------------------------------------")   
  241.             msg(01,09,09,16,"received minutes are saved                               ")
  242.             msg(01,10,09,16,"until they are redeemed.                                 ")
  243.             msg(01,11,05,16,"---------------------------------------------------------")
  244.             msg(01,12,09,16,"       open payment menu     --->                        ")
  245.             msg(01,13,09,16,"                                                         ")
  246.         end
  247.  
  248.         if rs.getInput("right", true) then  --åB6ffnen Auszahlscreen      
  249.             minuten = 0.0
  250.             uumatter = 0.0
  251.             screen3()
  252.         end    
  253.     end
  254.     sleep(1)
  255. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement