MagmaLP

Trading PC Deutsch

Apr 4th, 2021 (edited)
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.43 KB | None | 0 0
  1. os.loadAPI("ocs/apis/sensor")
  2. local s = sensor.wrap("top")
  3. rednet.open("back")
  4. mon = peripheral.wrap("left")      
  5. side = "left"       --Bildschirmseite für Button-Abfrage setzen
  6. mon.setBackgroundColor(32768)
  7. mon.setTextScale(1.5)
  8. mon.clear()
  9.  
  10. --Hilfs-Funktionen--
  11.  
  12. function calc_color(color)
  13.     return math.pow(2, color - 1)
  14. end
  15. function msg(gap, line, color, groundb, text)
  16.     mon.setBackgroundColor(calc_color(groundb))
  17.     mon.setCursorPos(gap,line)
  18.     mon.setTextColor(calc_color(color))
  19.     text = mon.write(text)
  20. end
  21.  
  22. function firstlayer()
  23.     rednet.send(6324, "abfrage")
  24.     rednet.send(6324, name)
  25.     id, coins, z = rednet.receive()
  26.     mon.setBackgroundColor(32768)
  27.     mon.clear()
  28.     msg(01,1,4,16,"Willkommen " ..name.. "          ")
  29.     msg(25,1,6,16,"Coins: " ..coins.. "          ")
  30.     msg(01,2,5,16,"------------------------------------------------------------")
  31. end
  32.  
  33. function keinbutton1()
  34.     msg(01,17,01,15,"  An dieser Stelle ist kein Button xD   ")
  35.     sleep(1)
  36.     msg(01,17,16,16,"                                        ")
  37.     msg(01,17,01,15," -> logout <- ")
  38.     deutsch1()
  39. end
  40. function keinbutton2()
  41.     msg(01,17,01,15,"  An dieser Stelle ist kein Button xD   ")
  42.     sleep(1)
  43.     msg(01,17,16,16,"                                        ")
  44.     msg(33,17,01,15," zurück ")
  45.     count1()
  46. end
  47. function keinbutton3()
  48.     msg(01,17,01,15,"  An dieser Stelle ist kein Button xD   ")
  49.     sleep(1)
  50.     msg(01,17,16,16,"                                        ")
  51.     count2()
  52. end
  53.  
  54. function deutsch1()
  55.     firstlayer()
  56.     msg(01,4,10,16,"Was für ein Item möchtest du tauschen?")
  57.     msg(01,5,10,16,"Klick einfach auf die Zeile der Items.")
  58.  
  59.     msg(01,07,09,16,"------------------------------------------------------------")
  60.     msg(07,08,02,16,"Goldblöcke  ->  Eisenblöcke")
  61.     msg(07,10,02,16,"Goldbarren  ->  Eisenbarren")
  62.     msg(07,12,02,16,"Obsidian    ->  Eisenbarren")
  63.     msg(07,14,02,16,"Eisenbarren ->  Enderperlen")
  64.     msg(01,15,09,16,"------------------------------------------------------------")
  65.     msg(01,17,01,15," -> logout <- ")
  66.    
  67.     local event, side, X, Y = os.pullEvent("monitor_touch")
  68.     if X >= 1 and X <=14 and Y >= 17 and Y <= 18 and side == side then         -- logout Button
  69.         fs.delete("Player")
  70.         shell.run("startup")
  71.  
  72.     elseif X >= 01 and X <=40 and Y >= 01 and Y <= 07 and side == side then        
  73.         keinbutton1()
  74.     elseif X >= 01 and X <=40 and Y >= 09 and Y <= 09 and side == side then    
  75.         keinbutton1()
  76.     elseif X >= 01 and X <=40 and Y >= 11 and Y <= 11 and side == side then    
  77.         keinbutton1()
  78.     elseif X >= 01 and X <=40 and Y >= 13 and Y <= 13 and side == side then    
  79.         keinbutton1()
  80.     elseif X >= 01 and X <=40 and Y >= 15 and Y <= 16 and side == side then    
  81.         keinbutton1()
  82.     elseif X >= 15 and X <=40 and Y >= 17 and Y <= 18 and side == side then    
  83.         keinbutton1()
  84.    
  85.     elseif X >= 01 and X <=40 and Y >= 08 and Y <= 08 and side == side then    
  86.         ID = 6343
  87.         anfangsname = "Goldblock"
  88.         anfangsname2 = "Goldblöcke"
  89.         fertigname = "Eisenblöcke"
  90.         count1()
  91.     elseif X >= 01 and X <=40 and Y >= 10 and Y <= 10 and side == side then    
  92.         anfangsname = "Goldbarren"
  93.         anfangsname2 = "Goldbarren"
  94.         fertigname = "Eisenbarren"
  95.         count1()
  96.     elseif X >= 01 and X <=40 and Y >= 12 and Y <= 12 and side == side then    
  97.         anfangsname = "Obsidian"
  98.         anfangsname2 = "Obsidian"
  99.         fertigname = "Eisenbarren"
  100.         count1()
  101.     elseif X >= 01 and X <=40 and Y >= 14 and Y <= 14 and side == side then    
  102.         anfangsname = "Eisenbarren"
  103.         anfangsname2 = "Eisenbarren"
  104.         fertigname = "Enderperlen"
  105.         count1()
  106.     end
  107. end
  108.  
  109. function count1()
  110.     firstlayer()
  111.     msg(02,04,10,16,"Das tauschen von einem "..anfangsname.."")
  112.     msg(02,05,10,16,"kostet dich 0.65 Coins und ergibt")
  113.     msg(02,06,10,16,"acht "..fertigname..".")
  114.  
  115.     msg(02,08,10,16,"Bitte werf nun "..anfangsname2.."")
  116.     msg(02,09,10,16,"in den Input und bestätige")
  117.     msg(02,10,10,16,"danach hier mit OK")
  118.  
  119.     msg(02,12,02,16,"Bitte nur maximal 16")
  120.     msg(02,13,02,16,"Stacks einwerfen! ")
  121.    
  122.     msg(30,08,16,01,"        ")
  123.     msg(30,09,16,01,"        ")
  124.     msg(30,10,16,01,"   OK   ")
  125.     msg(30,11,16,01,"        ")
  126.     msg(30,12,16,01,"        ")
  127.  
  128.     msg(33,17,01,15," zurück ")
  129.  
  130.     local event, side, X, Y = os.pullEvent("monitor_touch")
  131.     if X >= 33 and X <=40 and Y >= 17 and Y <= 18 and side == side then         -- zurück Button
  132.         deutsch1()
  133.     elseif X >= 30 and X <=37 and Y >= 08 and Y <= 12 and side == side then         -- OK Button
  134.         count2()
  135.  
  136.     elseif X >= 01 and X <=40 and Y >= 01 and Y <= 07 and side == side then
  137.         keinbutton2()
  138.     elseif X >= 01 and X <=29 and Y >= 08 and Y <= 12 and side == side then
  139.         keinbutton2()
  140.     elseif X >= 38 and X <=40 and Y >= 08 and Y <= 12 and side == side then
  141.         keinbutton2()
  142.     elseif X >= 01 and X <=40 and Y >= 13 and Y <= 16 and side == side then
  143.         keinbutton2()
  144.     elseif X >= 01 and X <=32 and Y >= 17 and Y <= 18 and side == side then
  145.         keinbutton2()
  146.     end
  147. end
  148.  
  149. function count2()
  150.  
  151.     firstlayer()
  152.  
  153.     y = 1
  154.     rednet.send(ID,y)
  155.     x, y, z = rednet.receive()
  156.  
  157.     if y > 0 then
  158.         firstlayer()
  159.         kosten = y * 0.65
  160.         abziehen = kosten - kosten - kosten
  161.         fertigmenge = y * 8
  162.         msg(01,04,10,16,"Es wurden "..y.." "..anfangsname2.." erkannt.")
  163.         msg(01,05,10,16,"Diese einzutauschen kostet dich "..kosten.."")
  164.         msg(01,06,10,16,"Coins.")
  165.         msg(01,07,10,16,"Du bekommst dafür "..fertigmenge.." "..fertigname..".")
  166.         msg(01,09,10,16,"Möchtest du den Tauschvorgang starten?")
  167.  
  168.         msg(8,11,1,6,"           ")     msg(23,11,1,15,"           ")
  169.         msg(8,12,1,6,"    JA     ")     msg(23,12,1,15,"   NEIN    ")
  170.         msg(8,13,1,6,"           ")     msg(23,13,1,15,"           ")
  171.        
  172.         local event, side, X, Y = os.pullEvent("monitor_touch")
  173.         if X >= 01 and X <=40 and Y >= 01 and Y <= 10 and side == side then
  174.             keinbutton3()
  175.         elseif X >= 01 and X <=07 and Y >= 11 and Y <= 13 and side == side then
  176.             keinbutton3()
  177.         elseif X >= 19 and X <=22 and Y >= 11 and Y <= 13 and side == side then
  178.             keinbutton3()
  179.         elseif X >= 34 and X <=40 and Y >= 11 and Y <= 13 and side == side then
  180.             keinbutton3()
  181.         elseif X >= 01 and X <=40 and Y >= 14 and Y <= 18 and side == side then
  182.             keinbutton3()
  183.  
  184.         elseif X >= 08 and X <=18 and Y >= 11 and Y <= 13 and side == side then         -- klickt JA
  185.             if abziehen > coins then
  186.                 msg(01,15,15,16,"du hast zu wenig Coins!")
  187.                 sleep(2)
  188.                 msg(01,15,16,16,"                       ")       
  189.             elseif abziehen <= coins then
  190.                 rednet.send(6324, "einzahlen")
  191.                 sleep(0.5)
  192.                 rednet.send(6324, name)
  193.                 sleep(0.5)
  194.                 rednet.send(6324, abziehen)
  195.                 id, coins, z = rednet.receive()
  196.  
  197.                 y = 1000000                                                             -- Item in den Tradomaten
  198.                 rednet.send(ID,y)
  199.  
  200.                 msg(01,1,4,16,"Willkommen " ..name.. "          ")
  201.                 msg(25,1,6,16,"Coins: " ..coins.. "          ")
  202.  
  203.                 msg(01,15,10,16,"Tauschvorgang läuft")    
  204.                 deutsch1()
  205.             end
  206.  
  207.         elseif X >= 23 and X <=33 and Y >= 11 and Y <= 13 and side == side then         -- Klickt NEIN
  208.             msg(01,15,10,16,"--> Itemrückgabe")
  209.             y = 0                                                                       -- Items Zurück
  210.             rednet.send(ID,y)
  211.             sleep(3)
  212.             deutsch1()
  213.         end
  214.     end
  215. end
  216.  
  217. ------- Programm Start -------
  218.  
  219. file = fs.open("Player", "r")
  220. name = file.readLine()
  221. file.close()
  222.  
  223.  
  224. deutsch1()
Add Comment
Please, Sign In to add comment