Advertisement
MagmaLP

Mall Neues System

Dec 30th, 2022 (edited)
1,046
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.64 KB | None | 0 0
  1. term.setBackgroundColor(32768)
  2. term.clear()
  3. rs.setOutput("top", true)
  4. sleep(0.5)
  5.  
  6.  
  7. function calc_color(color)
  8.     return math.pow(2, color - 1)
  9. end
  10.  
  11. function msg(gap, line, color, groundb, text)
  12.     term.setBackgroundColor(calc_color(groundb))
  13.     term.setCursorPos(gap,line)
  14.     term.setTextColor(calc_color(color))
  15.     text = term.write(text)
  16. end  
  17.  
  18. function neueracc()
  19.     term.setBackgroundColor(32768)
  20.     term.clear()
  21.     msg(01,02,04,16,"Neuen Account erstellen - create a new account")
  22.  
  23.     msg(01,05,04,16,"Wie soll dein Name sein - What should your name be")
  24.     msg(01,06,04,16,"---------------------------------------------------")
  25.     msg(02,07,06,16,"")
  26.     local name = read()
  27.     if fs.exists("benutzer/" ..name) == true then      
  28.         msg(02,07,15,16,"Dieser Name ist schon vergeben")
  29.         sleep(1)
  30.         neueracc()
  31.     end
  32.  
  33.     msg(02,10,04,16,"Wie soll dein PW sein - What should your PW be")
  34.     msg(01,11,04,16,"---------------------------------------------------")
  35.     msg(02,12,06,16,"")
  36.     local passwort1 = read("*")
  37.  
  38.     msg(02,15,04,16,"Bitte PW wiederholen - please repeat PW")
  39.     msg(01,16,04,16,"---------------------------------------------------")
  40.     msg(02,17,06,16,"")
  41.     local passwort2 = read("*")
  42.     if passwort1 ~= passwort2 then
  43.         msg(02,17,15,16,"Das PW ist nicht gleich - PW is not the same")
  44.         sleep(1)
  45.         neueracc()
  46.     else
  47.         local file = fs.open("benutzer/" ..name.. "/", "w")
  48.         file.write(passwort1)
  49.         file.close()
  50.         local file = fs.open("geld/" ..name.. "/", "w")
  51.         file.write(0.0)
  52.         file.close()
  53.     end
  54.     msg(02,17,06,16,"Account wird erstellt - Account is created ")
  55.     sleep(1)
  56.     start()
  57. end
  58.  
  59. function anmelden()
  60.     term.setBackgroundColor(32768)
  61.     term.clear()
  62.     msg(02,02,04,16,"Mit Account anmelden - login with account ")
  63.  
  64.     msg(02,05,04,16,"Wie lautet dein Name - What is your name")
  65.     msg(01,06,04,16,"---------------------------------------------------")
  66.     msg(02,07,06,16,"")
  67.     name = read()  
  68.     if fs.exists("benutzer/" ..name) == false then
  69.         msg(02,07,06,16,"Name existiern nicht - name does not exist ")
  70.         sleep(1)
  71.         start()
  72.     end
  73.  
  74.     msg(02,10,04,16,"Wie lautet dein PW - What is your PW")
  75.     msg(01,11,04,16,"---------------------------------------------------")
  76.     msg(02,12,06,16,"")
  77.     local passwort = read("*")
  78.     file = fs.open("benutzer/" ..name, "r")
  79.     local inhalt = file.readLine()
  80.     file.close()
  81.    
  82.     if passwort ~= inhalt then
  83.         msg(02,12,06,16,"PW falsch - PW wrong")
  84.         sleep(1)
  85.         start()
  86.     else
  87.         hauptbildschirm()
  88.     end              
  89. end
  90.  
  91. function hauptbildschirm()
  92.     term.setBackgroundColor(32768)
  93.     term.setCursorPos(1,1)
  94.     term.clear()
  95.    
  96.  
  97.     file = fs.open("geld/" ..name, "r")
  98.     local dollar = file.readLine()
  99.     file.close()
  100.  
  101.     msg(01,01,06,16,"< Account von "..name.." >")   msg(36,01,06,16," >  "..dollar.."$        ")
  102.     msg(01,02,04,16,"---------------------------------------------------")
  103.  
  104.     msg(06,07,01,15,"  Geld einzahlen  ")   msg(29,07,01,15,"  Geld auszahlen  ")
  105.     msg(06,08,01,15,"                  ")   msg(29,08,01,15,"                  ")
  106.     msg(06,09,01,15,"  deposit money   ")   msg(29,09,01,15,"  withdraw money  ")
  107.  
  108.     msg(16,14,01,15,"    Items kaufen     ")
  109.     msg(16,15,01,15,"                     ")
  110.     msg(16,16,01,15,"     buy items       ")
  111.    
  112.     msg(01,19,01,15," Logout ")
  113.  
  114.     local event, button, X, Y = os.pullEvent("mouse_click")
  115.     if X >= 06 and X <= 23 and Y >= 07 and Y <= 09 then
  116.         einzahlen()
  117.     elseif X >= 29 and X <= 46 and Y >= 07 and Y <= 09 then
  118.         setnull()
  119.     elseif X >= 16 and X <= 36 and Y >= 14 and Y <= 16 then
  120.         kaufen1()
  121.     elseif X >= 01 and X <= 08 and Y == 19 then
  122.         os.reboot()
  123.     else
  124.         hauptbildschirm()
  125.     end
  126. end
  127.    
  128. function einzahlen()
  129.     term.setBackgroundColor(32768)
  130.     term.clear()
  131.     file = fs.open("geld/" ..name, "r")
  132.     local dollar = file.readLine()
  133.     file.close()
  134.  
  135.     msg(01,01,06,16,"< Account von "..name.." >")   msg(36,01,06,16," >  "..dollar.."$        ")
  136.     msg(01,02,04,16,"---------------------------------------------------")
  137.     msg(01,05,04,16,"Tungsten links einwerfen - Throw in tungsten")
  138.     msg(01,06,04,16,"on the left - 1x Tungsten Ore = 42$")
  139.  
  140.     msg(01,08,04,16,"Danach hier bestätigen:")
  141.     msg(01,09,04,16,"Es können maximal 1024 Tungston Ore eingeworfen")
  142.     msg(01,10,04,16,"werden, der Rest wird wieder zurück gegeben.")
  143.  
  144.     msg(01,11,04,16,"---------------------------------------------------")
  145.     msg(06,13,01,15,"    Einzahlen     ")   msg(29,13,01,15,"    Abbrechen     ")
  146.     msg(06,14,01,15,"                  ")   msg(29,14,01,15,"                  ")
  147.     msg(06,15,01,15,"     deposit      ")   msg(29,15,01,15,"      abort       ")
  148.  
  149.     msg(01,19,01,15," Logout ")
  150.  
  151.     rs.setOutput("top", false)
  152.     sleep(0.5)
  153.  
  154.     local event, button, X, Y = os.pullEvent("mouse_click")
  155.     if X >= 29 and X <= 46 and Y >= 13 and Y <= 15 then
  156.         rs.setOutput("top", true)
  157.         hauptbildschirm()
  158.     elseif X >= 06 and X <= 23 and Y >= 13 and Y <= 15 then
  159.         msg(01,17,06,16,"Einzahlung läuft - deposit in progress")
  160.  
  161.         y = 1
  162.         rednet.open("bottom")
  163.         rednet.send(7955,y)
  164.         x, dollar2, z = rednet.receive()    
  165.         dollar = dollar + dollar2
  166.         local file = fs.open("geld/" ..name.. "/", "w")
  167.         file.write(dollar)
  168.         file.close()
  169.         rs.setOutput("top", true)
  170.         hauptbildschirm()  
  171.     elseif X >= 01 and X <= 08 and Y == 19 then
  172.         os.reboot()
  173.     else
  174.         einzahlen()
  175.     end
  176. end
  177.  
  178. function setnull()
  179.     auszahlmenge = 0.0
  180.     auszahlbetrag = 0.0
  181.     auszahlen()
  182. end
  183.  
  184. function auszahlen()
  185.     term.setBackgroundColor(32768)
  186.     term.clear()
  187.     file = fs.open("geld/" ..name, "r")
  188.     local dollar = file.readLine()
  189.     file.close()
  190.     dollar = tonumber(dollar)
  191.  
  192.     msg(01,01,06,16,"< Account von "..name.." >")   msg(36,01,06,16," >  "..dollar.."$        ")
  193.     msg(01,02,04,16,"---------------------------------------------------")
  194.  
  195.     msg(01,03,04,16,"Die Auszahlung findet in Tungston Ore statt.")
  196.     msg(01,04,04,16,"Payout in Tungsten Ore - 50$ = 1 Tungston Ore")
  197.     msg(01,05,04,16,"---------------------------------------------------")
  198.     msg(09,06,01,15,"       ")  msg(23,06,01,15,"       ")  msg(38,06,01,15,"       ")
  199.     msg(09,07,01,15,"  + 1  ")  msg(23,07,01,15,"  +10  ")  msg(38,07,01,15,"  +64  ")
  200.     msg(09,08,01,15,"       ")  msg(23,08,01,15,"       ")  msg(38,08,01,15,"       ")
  201.  
  202.     msg(09,10,01,15,"       ")  msg(23,10,01,15,"       ")  msg(38,10,01,15,"       ")
  203.     msg(09,11,01,15,"  - 1  ")  msg(23,11,01,15,"  -10  ")  msg(38,11,01,15,"  -64  ")
  204.     msg(09,12,01,15,"       ")  msg(23,12,01,15,"       ")  msg(38,12,01,15,"       ")
  205.  
  206.     msg(01,14,04,16,"Tungston Ore:")    msg(14,14,06,16," "..auszahlmenge.." ")
  207.     msg(23,14,04,16,"Abzug in Dollar:") msg(39,14,06,16," "..auszahlbetrag.." ")
  208.     msg(23,15,04,16,"dollars deducted")
  209.     msg(06,16,01,15,"  Auszahlen  ")    msg(23,16,01,15,"  Abbrechen   ")
  210.     msg(06,17,01,15,"             ")    msg(23,17,01,15,"              ")
  211.     msg(06,18,01,15,"   payout    ")    msg(23,18,01,15,"    abort     ")
  212.     msg(44,19,01,15," Logout ")
  213.  
  214.     local event, button, X, Y = os.pullEvent("mouse_click")
  215.     if X >= 09 and X <= 15 and Y >= 06 and Y <= 08 and auszahlmenge < 1024 then
  216.         auszahlmenge = auszahlmenge + 1
  217.         auszahlbetrag = auszahlbetrag + 50
  218.         auszahlen()
  219.     elseif X >= 23 and X <= 29 and Y >= 06 and Y <= 08 and auszahlmenge <= 1014 then
  220.         auszahlmenge = auszahlmenge + 10
  221.         auszahlbetrag = auszahlbetrag + 500
  222.         auszahlen()
  223.     elseif X >= 38 and X <= 44 and Y >= 06 and Y <= 08 and auszahlmenge <= 960 then
  224.         auszahlmenge = auszahlmenge + 64
  225.         auszahlbetrag = auszahlbetrag + 3200
  226.         auszahlen()
  227.  
  228.     elseif X >= 09 and X <= 15 and Y >= 10 and Y <= 12 and auszahlmenge > 0  then
  229.         auszahlmenge = auszahlmenge - 1
  230.         auszahlbetrag = auszahlbetrag - 50
  231.         auszahlen()
  232.     elseif X >= 23 and X <= 29 and Y >= 10 and Y <= 12 and auszahlmenge >= 10  then
  233.         auszahlmenge = auszahlmenge - 10
  234.         auszahlbetrag = auszahlbetrag - 500
  235.         auszahlen()
  236.     elseif X >= 38 and X <= 44 and Y >= 10 and Y <= 12 and auszahlmenge >= 64  then
  237.         auszahlmenge = auszahlmenge - 64
  238.         auszahlbetrag = auszahlbetrag - 3200
  239.         auszahlen()
  240.  
  241.     elseif X >= 06 and X <= 18 and Y >= 16 and Y <= 18 then
  242.         if auszahlbetrag <= dollar then
  243.             dollar = dollar - auszahlbetrag
  244.             local file = fs.open("geld/" ..name.. "/", "w")
  245.             file.write(dollar)
  246.             file.close()
  247.             rednet.open("bottom")
  248.             rednet.send(7957,auszahlmenge)
  249.             rs.setOutput("top", true)
  250.             hauptbildschirm()
  251.         else
  252.             msg(01,19,06,16,"Du hast zu wenig Geld - Not enought money")    
  253.             sleep(1)
  254.             auszahlen()
  255.         end
  256.     elseif X >= 23 and X <= 36 and Y >= 16 and Y <= 18 then
  257.             rs.setOutput("top", true)
  258.             hauptbildschirm()  
  259.     elseif X >= 44 and X <= 51 and Y == 19 then
  260.         os.reboot()
  261.     else
  262.         auszahlen()
  263.     end
  264. end
  265.  
  266. function reset1()
  267.     m0 = 0
  268.     m1 = 0
  269.     m2 = 0
  270.     m3 = 0
  271.     m4 = 0
  272.     m5 = 0
  273.     m6 = 0
  274.     m7 = 0
  275.     m8 = 0
  276.     m9 = 0
  277.     m10 = 0
  278.     m11 = 0
  279.     m12 = 0
  280.     m13 = 0
  281.     m14 = 0
  282.     m15 = 0
  283.     m16 = 0
  284.     m17 = 0
  285.     M = {m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17}
  286. end
  287.  
  288.  
  289.     b1 = 0
  290.     b2 = 0
  291.     b3 = 8000
  292.     b4 = 1000
  293.     b5 = 150
  294.     b6 = 126
  295.     b7 = 42
  296.     b8 = 84
  297.     b9 = 120
  298.     b10 = 120
  299.     b11 = 120
  300.     b12 = 333000
  301.     b13 = 190
  302.     b14 = 2500
  303.     b15 = 450
  304.     b16 = 500
  305.     b17 = 0
  306.     B = {b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17}
  307.  
  308.  
  309. function kaufen1()
  310.     reset1()
  311.     term.setBackgroundColor(32768)
  312.     term.clear()
  313.     file = fs.open("geld/" ..name, "r")
  314.     local dollar = file.readLine()
  315.     file.close()
  316.     betrag = 0
  317.     c = 0                                           --Errechneter Betrag
  318.  
  319.     msg(01,01,06,16,"< Account von "..name.." >")   msg(36,01,06,16," >  "..dollar.."$        ")
  320.     msg(01,02,04,16,"---------------------------------------------------")
  321.     msg(01,03,04,16,"| 8000$ HV Solar Panel")                   msg(51,03,04,16,"|")
  322.     msg(01,04,04,16,"| 1000$ MV Solar Panel")                   msg(51,04,04,16,"|")
  323.     msg(01,05,04,16,"|  150$ LV Solar Panel")                   msg(51,05,04,16,"|")
  324.     msg(01,06,04,16,"-  126$ Deep Storage Unit")                msg(51,06,04,16,"-")
  325.     msg(01,07,04,16,"|   42$ Autmatic Crafting Table MkII")     msg(51,07,04,16,"|")
  326.     msg(01,08,04,16,"|   84$ Igneus Extruder")                  msg(51,08,04,16,"|")
  327.     msg(01,09,04,16,"|  120$ Recycler")                         msg(51,09,04,16,"|")
  328.     msg(01,10,04,16,"-  120$ Electric Furnace")                 msg(51,10,04,16,"-")
  329.     msg(01,11,04,16,"|  120$ Macerator")                        msg(51,11,04,16,"|")
  330.     msg(01,12,04,16,"| 333k$ Adjustable Emitter")               msg(51,12,04,16,"|")
  331.     msg(01,13,04,16,"|  190$ MFSU")                             msg(51,13,04,16,"|")
  332.     msg(01,14,04,16,"- 2500$ Amaranthine Dust")                 msg(51,14,04,16,"-")
  333.     msg(01,15,04,16,"|  450$ Verdan Dust")                      msg(51,15,04,16,"|")
  334.     msg(01,16,04,16,"|  500$ Logic Matrix: Itentifier")         msg(51,16,04,16,"|")
  335.     msg(01,17,04,16,"|    0$ ")                                 msg(51,17,04,16,"|")
  336.     msg(01,18,04,16,"---------------------------------------------------")
  337.     msg(01,19,01,15,"  Buy   ") msg(11,19,01,15,"  Cancel   ")  msg(24,19,01,15," Logout ")
  338.     msg(34,19,04,16,"Amount:")  msg(42,19,06,16,""..c.."$")
  339.  
  340.     for i = 3,17 do
  341.         msg(40,i,01,15," + ")  
  342.     end
  343.     for i = 3,17 do
  344.         msg(44,i,04,16,"0")
  345.     end
  346.     for i = 3,17 do
  347.         msg(47,i,01,15," - ")
  348.     end
  349.     kaufen2()
  350. end
  351.  
  352. function kaufen2()
  353.     file = fs.open("geld/" ..name, "r")
  354.     local dollar = file.readLine()
  355.     file.close()
  356.     dollar = tonumber(dollar)
  357.  
  358.     local event, button, X, Y = os.pullEvent("mouse_click")
  359.     for i = 3,16 do
  360.         if X >= 40 and X <= 42 and Y == i then                  -- +1
  361.             if M[i] < 60 then                                   -- max 64
  362.                 M[i] = M[i] + 1
  363.                 c = c + B[i]
  364.                 msg(44,i,04,16,""..M[i].."")
  365.                 msg(42,19,06,16,""..c.."$")
  366.                 break
  367.             end
  368.         end
  369.         if X >= 47 and X <= 49 and Y == i then                  -- -1
  370.             if M[i] > 0 then
  371.                 M[i] = M[i] - 1
  372.                 c = c - B[i]
  373.                 msg(44,i,04,16,""..M[i].." ")
  374.                 msg(42,19,06,16,""..c.."$     ")
  375.                 break
  376.             end
  377.         end
  378.     end
  379.  
  380.     if X >= 11 and X <= 21 and Y == 19 then                 --Abbrechen
  381.         for i = 1,16 do
  382.             M[i] = 0
  383.         end
  384.         rs.setOutput("top", true)
  385.         hauptbildschirm()  
  386.  
  387.     elseif X >= 24 and X <= 31 and Y == 19 then
  388.         os.reboot()
  389.    
  390.     elseif X >= 01 and X <= 08 and Y == 19 then             --Kaufen
  391.         if c > dollar then                                  --aber zu wenig Geld
  392.             msg(41,19,01,15," "..c.."$ ")
  393.             sleep(0.25)
  394.             msg(41,19,06,16," "..c.."$ ")
  395.             sleep(0.25)
  396.             msg(41,19,01,15," "..c.."$ ")
  397.             sleep(0.25)
  398.             msg(41,19,06,16," "..c.."$ ")
  399.             sleep(0.5)
  400.             kaufen2()
  401.         elseif c <= dollar then
  402.             dollar = dollar - c
  403.             local file = fs.open("geld/" ..name.. "/", "w")
  404.             file.write(dollar)
  405.             file.close()
  406.  
  407.             package = {}
  408.             for i,amount in pairs(M) do
  409.                 local a = {}
  410.    
  411.                 if amount > 0 then
  412.                     a = {
  413.                         ["Slot"] = i - 2,
  414.                         ["Amount"] = amount
  415.                     }
  416.                     table.insert(package, a)
  417.                 end
  418.             end
  419.             rednet.open("bottom")
  420.             rednet.send(6415,textutils.serialize(package))
  421.             rs.setOutput("top", true)
  422.             hauptbildschirm()
  423.         end
  424.     end    
  425.     kaufen2()  
  426. end
  427.  
  428. function start()
  429.     term.setBackgroundColor(32768)
  430.     term.clear()
  431.     msg(03,03,04,16,"Neuen Account erstellen - create a new account")
  432.     msg(01,04,04,16,"---------------------------------------------------")
  433.     msg(15,05,15,15,"                     ")
  434.     msg(15,06,01,15,"     klick here      ")
  435.     msg(15,07,15,15,"                     ")
  436.     msg(01,08,04,16,"---------------------------------------------------")
  437.  
  438.     msg(05,12,04,16,"Mit Account anmelden - login with account")
  439.     msg(01,13,04,16,"---------------------------------------------------")
  440.     msg(15,14,15,15,"                     ")
  441.     msg(15,15,01,15,"     klick here      ")
  442.     msg(15,16,15,15,"                     ")
  443.     msg(01,17,04,16,"---------------------------------------------------")
  444.     msg(01,20,04,16," ")
  445.  
  446.     local event, button, X, Y = os.pullEvent("mouse_click")
  447.     if X >= 15 and X <= 34 and Y >= 05 and Y <= 07 then
  448.         neueracc()
  449.     elseif X >= 15 and X <= 34 and Y >= 14 and Y <= 16 then
  450.         anmelden()
  451.     else
  452.         start()
  453.     end
  454. end
  455.  
  456. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement