Advertisement
FoxWorn3365

eternalcaos2

Dec 27th, 2021
1,019
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local maxw, maxh = term.getSize()
  2.  
  3. --IMPLEMENTAZIONE DEL DRAWFILLEDBOX
  4. local function drawPixelInternal(xPos, yPos)
  5.     term.setCursorPos(xPos, yPos)
  6.     term.write(" ")
  7. end
  8.  
  9. local tColourLookup = {}
  10. for n = 1,16 do
  11.     tColourLookup[string.byte("0123456789abcdef", n, n)] = 2^(n-1)
  12. end
  13.  
  14. function drawFilledBox(startX, startY, endX, endY, nColour)
  15.     if type(startX) ~= "number" or type(startX) ~= "number" or
  16.        type(endX) ~= "number" or type(endY) ~= "number" or
  17.        (nColour ~= nil and type(nColour) ~= "number") then
  18.         error("Expected startX, startY, endX, endY, colour", 2)
  19.     end
  20.  
  21.     startX = math.floor(startX)
  22.     startY = math.floor(startY)
  23.     endX = math.floor(endX)
  24.     endY = math.floor(endY)
  25.  
  26.     if nColour then
  27.         term.setBackgroundColor(nColour)
  28.     end
  29.     if startX == endX and startY == endY then
  30.         drawPixelInternal(startX, startY)
  31.         return
  32.     end
  33.  
  34.     local minX = math.min(startX, endX)
  35.     if minX == startX then
  36.         minY = startY
  37.         maxX = endX
  38.         maxY = endY
  39.     else
  40.         minY = endY
  41.         maxX = startX
  42.         maxY = startY
  43.     end
  44.  
  45.     for x = minX, maxX do
  46.         for y = minY, maxY do
  47.             drawPixelInternal(x, y)
  48.         end
  49.     end
  50. end
  51.  
  52. function clear()
  53.     sfondo(colors.lightBlue)
  54.     term.clear()
  55.     term.setCursorPos(1, 1)
  56. end
  57.  
  58. function colore(sfumatura)
  59.     term.setTextColour(sfumatura)
  60. end
  61.  
  62. function sfondo(sfumaturaSfondo)
  63.     term.setBackgroundColour(sfumaturaSfondo)
  64. end
  65.  
  66. function titolo(testo)
  67.     drawFilledBox(1, 1, maxw, 1, colors.yellow)
  68.     term.setCursorPos((maxw - #testo) / 2, 1)
  69.     colore(colors.black)
  70.     term.write(testo)
  71.     sfondo(colors.lightBlue)
  72. end
  73.  
  74. function update()
  75.     term.setCursorPos(1, 21)
  76.     shell.run("rm startup")
  77.     shell.run("pastebin get y1AP0iNY startup") -- Inserire paste di nPay
  78.     os.reboot()
  79. end
  80.  
  81. function disconnetti()
  82.     clear()
  83.     text = "ARRIVEDERCI!"
  84.     colore(colors.white)
  85.     term.setCursorPos((maxw - #text) / 2, math.floor(maxh / 2))
  86.     term.write(text)
  87.     colore(colors.black)
  88.     text2 = "Tra poco saråA5A0 possibile eseguire"
  89.     text3 = "una nuova operazione..."
  90.     term.setCursorPos((maxw - #text2) / 2, math.floor(maxh / 2) + 2)
  91.     print(text2)
  92.     term.setCursorPos((maxw - #text3) / 2, math.floor(maxh / 2) + 3)
  93.     print(text3)
  94.     os.sleep(0.5)
  95.     update()
  96. end
  97.  
  98. function drawCard()
  99.     drawFilledBox(6, 7, 24, 7, colors.blue)
  100.     drawFilledBox(6, 15, 24, 15, colors.blue)
  101.     drawFilledBox(5, 8, 25, 14, colors.blue)
  102.  
  103.     drawFilledBox(7, 9, 23, 9, colors.lightGray)
  104.     drawFilledBox(7, 12, 23, 13, colors.black)
  105. end
  106.  
  107. mag = peripheral.wrap("bottom")
  108. bl = "BN Credit"
  109.  
  110. sfondo(colors.lightBlue)
  111. clear()
  112.  
  113. colore(colors.white)
  114. print(" ")
  115. print("                      ___            ")
  116. print("              _ __   / _ \\__ _ _   _ ")
  117. print("             | '_ \\ / /_)/ _  | | | |")
  118. print("             | | | / ___/ (_| | |_| |")
  119. print("             |_| |_\\/    \\__,_|\\__, |")
  120. print("                                |___/ ")
  121.  
  122. -- Bottoni login/registrati
  123.  
  124. drawFilledBox(14, 10, 38, 12, colors.white)
  125. term.setCursorPos(23, 11)
  126. colore(colors.black)
  127. term.write("Accedi")
  128.  
  129. drawFilledBox(14, 15, 38, 17, colors.white)
  130. term.setCursorPos(21, 16)
  131. colore(colors.black)
  132. term.write("Sei nuovo?")
  133.  
  134. isGood = false
  135.  
  136. while true do
  137.     -- Facciamo prima il check
  138.     if rs.getInput("right") == false and isGood == true then
  139.       rs.setOutput("left", true)
  140.     elseif rs.getInput("right") == true then
  141.       isGood = false
  142.       rs.setOutput("left", false)
  143.     end
  144.     event, key, x, y = os.pullEvent("mouse_click")
  145.     if event == "mouse_click" and x >= 14 and x <= 38 and y >= 15 and y <= 17 then
  146.         -- Registrazione nuovo utente
  147.         clear()
  148.         titolo("Registrati a nPay")
  149.         term.setCursorPos(1, 3)
  150.         print("Inserisci un nome utente e una password sicura.")
  151.         term.setCursorPos(1, 5)
  152.         colore(colors.gray)
  153.         print("Premi ENTER per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  154.  
  155.         -- Nome Utente
  156.         term.setCursorPos(1, 10)
  157.         colore(colors.black)
  158.         term.write("Nome utente:")
  159.         term.setCursorPos(14, 10)
  160.         colore(colors.white)
  161.         utenteAccettato = false
  162.         conteggioErrori = 0
  163.         while utenteAccettato == false do
  164.             utente = read()
  165.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  166.             tabcheckuser = textutils.unserialize(checkuser)
  167.             if tabcheckuser.stato == "NO" then
  168.                 term.setCursorPos(14, 10)
  169.                 colore(colors.lime)
  170.                 term.write(utente)
  171.                 colore(colors.white)
  172.                 utenteAccettato = true
  173.             else
  174.                 term.setCursorPos(14, 10)
  175.                 colore(colors.red)
  176.                 term.write("Utente giåA5A0 esistente!")
  177.                 sleep(2)
  178.                 term.setCursorPos(14, 10)
  179.                 colore(colors.white)
  180.                 term.write("                       ")
  181.                 term.setCursorPos(14, 10)
  182.                 conteggioErrori = conteggioErrori + 1
  183.                 if conteggioErrori > 2 then
  184.                     term.setCursorPos(14, 10)
  185.                     colore(colors.red)
  186.                     term.write("Tre tentativi di immissione errati.")
  187.                     sleep(2)
  188.                     term.setCursorPos(14, 10)
  189.                     colore(colors.white)
  190.                     term.write("                       ")
  191.                     term.setCursorPos(14, 10)
  192.                     clear()
  193.                     os.reboot()
  194.                 end
  195.             end
  196.         end
  197.  
  198.         --password
  199.         colore(colors.black)
  200.         term.setCursorPos(1, 12)
  201.         term.write("Password:")
  202.         term.setCursorPos(11, 12)
  203.         colore(colors.white)
  204.  
  205.         passAccettata = false
  206.         conteggioErrori = 0
  207.         while passAccettata == false do
  208.             password1 = read("#")
  209.             colore(colors.black)
  210.             term.setCursorPos(1, 13)
  211.             term.write("Verifica:")
  212.             term.setCursorPos(11, 13)
  213.             colore(colors.white)
  214.             local password2 = read("#")
  215.             if password1 == password2 then
  216.                 term.setCursorPos(11, 12)
  217.                 colore(colors.lime)
  218.                 term.write("###############")
  219.                 term.setCursorPos(11, 13)
  220.                 term.write("###############")
  221.                 colore(colors.white)
  222.                 passAccettata = true
  223.             else
  224.                 colore(colors.red)
  225.                 term.setCursorPos(11, 12)
  226.                 term.write("Le password non corrispondono!    ")
  227.                 term.setCursorPos(1, 13)
  228.                 colore(colors.white)
  229.                 term.write("                               ")
  230.                 sleep(1.5)
  231.                 term.setCursorPos(11, 12)
  232.                 term.write("                               ")
  233.                 term.setCursorPos(11, 12)
  234.                 conteggioErrori = conteggioErrori + 1
  235.                 if conteggioErrori > 2 then
  236.                     term.setCursorPos(14, 12)
  237.                     colore(colors.red)
  238.                     term.write("Tre tentativi di immissione errati.")
  239.                     sleep(1.5)
  240.                     term.setCursorPos(14, 12)
  241.                     colore(colors.white)
  242.                     term.write("                       ")
  243.                     term.setCursorPos(14, 12)
  244.                     clear()
  245.                     os.reboot()
  246.                 end
  247.             end
  248.         end
  249.  
  250.         --crea l'account
  251.  
  252.         term.setCursorPos(1, 17)
  253.         creaAccount = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password1 .. "&utente=" .. utente .. "&richiesta=crea&valore=0").readAll()
  254.         tabCreaAccount = textutils.unserialize(creaAccount)
  255.         if tabCreaAccount.stato == "OA" then
  256.             colore(colors.lime)
  257.             print("Conto creato con successo.")
  258.             sleep(1.5)
  259.             clear()
  260.             os.reboot()
  261.         else
  262.             colore(colors.red)
  263.             print("Errore durante la creazione del conto.")
  264.             sleep(1.5)
  265.             clear()
  266.             os.reboot()
  267.         end
  268.  
  269.     elseif event == "mouse_click" and x >= 14 and x <= 38 and y >= 10 and y <= 12 then
  270.         clear()
  271.         titolo("Accedi a nPay")
  272.         term.setCursorPos(1, 3)
  273.         colore(colors.black)
  274.         print("Inserire i propri dati.")
  275.         colore(colors.gray)
  276.         print("\nPremere Enter per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  277.  
  278.         --nomeutente
  279.         term.setCursorPos(1, 10)
  280.         colore(colors.black)
  281.         term.write("Nome utente:")
  282.         term.setCursorPos(15, 10)
  283.         colore(colors.white)
  284.         utenteAccettato = false
  285.         conteggioErrori = 0
  286.         while utenteAccettato == false do
  287.             utente = read()
  288.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  289.             tabcheckuser = textutils.unserialize(checkuser)
  290.             if tabcheckuser.stato == "OK" then
  291.                 term.setCursorPos(15, 10)
  292.                 colore(colors.lime)
  293.                 term.write(utente)
  294.                 colore(colors.white)
  295.                 utenteAccettato = true
  296.             else
  297.                 term.setCursorPos(15, 10)
  298.                 colore(colors.red)
  299.                 term.write("Utente errato!          ")
  300.                 sleep(2)
  301.                 term.setCursorPos(15, 10)
  302.                 colore(colors.white)
  303.                 term.write("                       ")
  304.                 term.setCursorPos(15, 10)
  305.                 conteggioErrori = conteggioErrori + 1
  306.                 if conteggioErrori > 2 then
  307.                     term.setCursorPos(15, 10)
  308.                     colore(colors.red)
  309.                     term.write("Tre tentativi di immissione errati.")
  310.                     sleep(2)
  311.                     term.setCursorPos(15, 10)
  312.                     colore(colors.white)
  313.                     term.write("                       ")
  314.                     term.setCursorPos(15, 10)
  315.                     clear()
  316.                     os.reboot()
  317.                 end
  318.             end
  319.         end
  320.  
  321.         --password
  322.         colore(colors.black)
  323.         term.setCursorPos(1,12)
  324.         term.write("Password:")
  325.         term.setCursorPos(15, 12)
  326.          
  327.         conteggioErrori = 0
  328.         passAccettata = false
  329.         while passAccettata == false do
  330.             colore(colors.white)
  331.             password = read("#")
  332.             colore(colors.black)
  333.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&richiesta=addebito&valore=0&utente=".. utente).readAll()
  334.             risposta = textutils.unserialize(checkuser)
  335.             if risposta.stato == "OK" then
  336.                 term.setCursorPos(15, 12)
  337.                 colore(colors.lime)
  338.                 term.write("##############               ")
  339.                 colore(colors.white)
  340.                 passAccettata = true
  341.                 else
  342.                     term.setCursorPos(15, 12)
  343.                     colore(colors.red)
  344.                     term.write("Password errata!            ")
  345.                     conteggioErrori = conteggioErrori + 1
  346.                     sleep(2)
  347.                     term.setCursorPos(15, 12)
  348.                     term.write("                               ")
  349.                     term.setCursorPos(15, 12)
  350.                 if conteggioErrori > 2 then
  351.                     term.setCursorPos(15, 12)
  352.                     colore(colors.red)
  353.                     term.write("Tre tentativi di immissione errati.")
  354.                     sleep(2)
  355.                     term.setCursorPos(15, 12)
  356.                     term.write("                               ")
  357.                     term.setCursorPos(15, 12)
  358.                     clear()
  359.                     os.reboot()
  360.                 end
  361.             end
  362.         end
  363.  
  364.         conteggioErrori = 0
  365.         -- Pagina in cui scegli le operazioni da fare
  366.  
  367.         while true do
  368.             --Ricontrolla il saldo per gestire l'aggiornamento di piåA5B9 operazioni
  369.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth="..password.."&richiesta=addebito&valore=0&utente="..utente).readAll()
  370.             risposta = textutils.unserialize(checkuser)
  371.             saldo = tonumber(risposta.saldo)
  372.             --Disegna la finestra del pannello utente
  373.             clear()
  374.             titolo("Pannello utente nPay")
  375.             term.setCursorPos(1, 3)
  376.             term.write("Benvenuto, ")
  377.             colore(colors.white)
  378.             term.write(utente)
  379.             colore(colors.black)
  380.             term.write("!         Saldo: ")
  381.             colore(colors.white)
  382.             term.write(saldo)
  383.             colore(colors.black)
  384.             term.write(" IC")
  385.             print("\n\nOperazioni disponibili:\n")
  386.             sfondo(colors.white)
  387.             print(" Carica denaro su nPay  \n")
  388.             print(" Preleva denaro da nPay \n")
  389.             print(" Trasferisci denaro     \n")
  390.             print(" Estratto conto         \n")
  391.             colore(colors.red)
  392.             print(" Disconnettiti da nPay  \n")
  393.             colore(colors.black)
  394.  
  395.             antitonto = os.startTimer(60)
  396.  
  397.             event, key, x, y = os.pullEventRaw()
  398.             if event == "mouse_click" and y == 7 and x <= 24 then       --Pulsante carica denaro su nPay
  399.                 clear()
  400.                 titolo("Caricamento denaro su nPay")
  401.  
  402.                 drawCard()
  403.  
  404.                 sfondo(colors.lightBlue)
  405.                 colore(colors.black)
  406.                 term.setCursorPos(30, 8)
  407.                 print("INSERIRE LA CARTA")
  408.                 term.setCursorPos(29, 10)
  409.                 print("NEL LETTORE IN BASSO")
  410.                 drawFilledBox(34, 14, 42, 14, colors.white)
  411.                 term.setCursorPos(35, 14)
  412.                 term.write("Annulla")
  413.  
  414.                 mag.setInsertCardLight(true)
  415.                 finalBreakC = false
  416.                 while true do
  417.                     event, arg1, arg2, arg3 = os.pullEventRaw()
  418.                     if event == "mouse_click" and arg3 == 14 and arg2 >= 34 and arg2 <= 42 then -- arg2 = x | arg3 = y
  419.                         mag.setInsertCardLight(false)
  420.                         clear()
  421.                         term.setCursorPos(1,1)
  422.                         break
  423.                     elseif event == "mag_swipe" then
  424.                         mag.setInsertCardLight(false)
  425.                         tabel = textutils.unserialize(arg1)
  426.                         if tabel == "" or tabel == nil then
  427.                             clear()
  428.                             titolo("Caricamento denaro da nPay")
  429.  
  430.                             drawCard()
  431.  
  432.                             sfondo(colors.lightBlue)
  433.                             term.setCursorPos(36, 10)
  434.                             colore(colors.red)
  435.                             term.write("ERRORE!")
  436.                             term.setCursorPos(30, 12)
  437.                             colore(colors.black)
  438.                             term.write("Carta smagnetizzata!")
  439.                             os.sleep(3)
  440.                             break
  441.                         elseif tabel.t ~= "cc" or tabel.e ~= "BN" then
  442.                             clear()
  443.                             titolo("Caricamento denaro da nPay")
  444.  
  445.                             drawCard()
  446.  
  447.                             sfondo(colors.lightBlue)
  448.                             term.setCursorPos(36, 10)
  449.                             colore(colors.red)
  450.                             term.write("ERRORE!")
  451.                             term.setCursorPos(31, 12)
  452.                             colore(colors.black)
  453.                             term.write("Carta non valida!")
  454.                             os.sleep(3)
  455.                             break
  456.                         else
  457.                             while true do
  458.                                 clear()
  459.                                 titolo("Caricamento denaro su nPay")
  460.                                 colore(colors.gray)
  461.                                 print("\n\nDisponibilitåA5A0 su carta:  " .. tabel.v .. " IC")
  462.                                 colore(colors.red)
  463.                                 term.setCursorPos(1, 14)
  464.                                 term.write("ATTENZIONE:")
  465.                                 colore(colors.black)
  466.                                 term.setCursorPos(1, 15)
  467.                                 term.write("Eccezionalmente, grazie ai 600 voti di marzo,")
  468.                                 --term.write("Per le operazioni inferiori a 50 000 IC,")
  469.                                 term.setCursorPos(1, 16)
  470.                                 print("le operazioni saranno GRATUITE fino al 4 aprile!")
  471.                                 --print("si applica una commissione del 0.15%.")
  472.                                 --print("Oltre 50 000 IC la commissione åA5A8 del 0.05%.")
  473.                                 term.setCursorPos(1, 5)
  474.                                 term.write("Importo da caricare: ")
  475.                                 colore(colors.white)
  476.                                 credito = tonumber(tabel.v)
  477.                                 credit = read()
  478.                                 if tonumber(credit) == "" or tonumber(credit) == nil or tonumber(credit) <= 0 then
  479.                                     colore(colors.red)
  480.                                     term.setCursorPos(22, 5)
  481.                                     term.write("Importo errato!                    ")
  482.                                     colore(colors.black)
  483.                                     sleep(1.5)
  484.                                     clear()
  485.                                 else
  486.                                     if tonumber(credit) >= 50000 then
  487.                                         --commissioni = tonumber(credit) * 0.005
  488.                                         commissioni = tonumber(credit) * 0
  489.                                     else
  490.                                        --commissioni = tonumber(credit) * 0.015
  491.                                        commissioni = tonumber(credit) * 0
  492.                                     end
  493.                                     crediton = credit + commissioni
  494.                                     if tonumber(tabel.v) >= crediton then
  495.                                         tab = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=accredito&valore=" .. credit).readAll()
  496.                                         tabella = textutils.unserialize(tab)
  497.                                         tabr = {}
  498.                                         tabr.t = tabel.t
  499.                                         tabr.e = tabel.e
  500.                                         tabr.p = tabel.p
  501.                                         tabr.v = tonumber(tabel.v) - crediton
  502.                                         ncr = textutils.serialize(tabr)
  503.                                         clear()
  504.                                         titolo("Caricamento denaro su nPay")
  505.  
  506.                                         drawCard()
  507.  
  508.                                         colore(colors.black)
  509.                                         sfondo(colors.lightBlue)
  510.                                         term.setCursorPos(29, 10)
  511.                                         print("RE-INSERIRE LA CARTA")
  512.                                         term.setCursorPos(29, 12)
  513.                                         print("NEL LETTORE IN BASSO")
  514.  
  515.                                         mag.setInsertCardLight(true)
  516.                                         mag.beginWrite(ncr, bl)
  517.                                         za2, carta = os.pullEvent("mag_write_done")
  518.                                         mag.setInsertCardLight(false)
  519.                                         clear()
  520.                                         titolo("Caricamento denaro su nPay")
  521.  
  522.                                         colore(colors.lime)
  523.                                         term.setCursorPos(1, 3)
  524.                                         print("Operazione completata!")
  525.                                         colore(colors.black)
  526.                                         term.setCursorPos(1, 5)
  527.                                         print("Denaro accreditato: " .. credit .. " IC")
  528.                                         print("Commissioni:        " .. commissioni .. " IC")
  529.                                         term.setCursorPos(1, 8)
  530.                                         print("Saldo sul conto:    " .. tabella.credito .. " IC")
  531.                                         print("Saldo sulla carta:  " .. tabr.v .. " IC")
  532.                                         sfondo(colors.white)
  533.                                         term.setCursorPos(1, 12)
  534.                                         term.write(" Torna alla pagina principale ")
  535.                                         sfondo(colors.lightBlue)
  536.  
  537.                                         antiTonto2 = os.startTimer(15)
  538.                                         while true do
  539.                                             local event, arg1, arg2, arg3 = os.pullEventRaw()
  540.                                             if event == "mouse_click" and arg3 == 12 and arg2 <= 30 or event == "timer" and arg1 == antiTonto2 then -- arg2 = x | arg3 = y
  541.                                                 finalBreakC = true
  542.                                                 break
  543.                                             end
  544.                                         end
  545.                                         break
  546.                                     else
  547.                                         colore(colors.red)
  548.                                         term.setCursorPos(22, 5)
  549.                                         term.write("Credito su carta insufficente.")
  550.                                         colore(colors.black)
  551.                                         sleep(1.5)
  552.                                         clear()
  553.                                     end
  554.                                 end
  555.                             end
  556.                             if finalBreakC then
  557.                                 break
  558.                             end
  559.                         end
  560.                     end
  561.                 end
  562.  
  563.             elseif event == "mouse_click" and y == 9 and x <= 24 then  --Pulsante preleva denaro da nPay
  564.                 clear()
  565.                 titolo("Prelievo denaro da nPay")
  566.  
  567.                 drawCard()
  568.  
  569.                 sfondo(colors.lightBlue)
  570.                 colore(colors.black)
  571.                 term.setCursorPos(30, 8)
  572.                 print("INSERIRE LA CARTA")
  573.                 term.setCursorPos(29, 10)
  574.                 print("NEL LETTORE IN BASSO")
  575.                 drawFilledBox(34, 14, 42, 14, colors.white)
  576.                 term.setCursorPos(35, 14)
  577.                 term.write("Annulla")
  578.  
  579.                 mag.setInsertCardLight(true)
  580.                 finalBreakP = false
  581.                 while true do
  582.                     event, arg1, arg2, arg3 = os.pullEventRaw()
  583.                     if event == "mouse_click" and arg3 == 14 and arg2 >= 34 and arg2 <= 42 then -- arg2 = x | arg3 = y
  584.                         mag.setInsertCardLight(false)
  585.                         clear()
  586.                         term.setCursorPos(1,1)
  587.                         break
  588.                     elseif event == "mag_swipe" then
  589.                         mag.setInsertCardLight(false)
  590.                         sfondo(colors.lightBlue)
  591.                         clear()
  592.                         tabel = textutils.unserialize(arg1)
  593.                         if tabel == "" or tabel == nil then
  594.                             clear()
  595.                             titolo("Prelievo denaro da nPay")
  596.  
  597.                             drawCard()
  598.  
  599.                             sfondo(colors.lightBlue)
  600.                             term.setCursorPos(36, 10)
  601.                             colore(colors.red)
  602.                             term.write("ERRORE!")
  603.                             term.setCursorPos(30, 12)
  604.                             colore(colors.black)
  605.                             term.write("Carta smagnetizzata!")
  606.                             os.sleep(3)
  607.                             break
  608.                         elseif tabel.t ~= "cc" or tabel.e ~= "BN" then
  609.                             clear()
  610.                             titolo("Prelievo denaro da nPay")
  611.  
  612.                             drawCard()
  613.  
  614.                             sfondo(colors.lightBlue)
  615.                             term.setCursorPos(36, 10)
  616.                             colore(colors.red)
  617.                             term.write("ERRORE!")
  618.                             term.setCursorPos(31, 12)
  619.                             colore(colors.black)
  620.                             term.write("Carta non valida!")
  621.                             os.sleep(3)
  622.                             break
  623.                         else
  624.                             while true do
  625.                                 tabr = {}
  626.                                 tabr.e = tabel.e
  627.                                 tabr.p = tabel.p
  628.                                 tabr.t = tabel.t
  629.                                 tab1 = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=accredito&valore=0").readAll()
  630.                                 tab3 = textutils.unserialize(tab1)
  631.                                 clear()
  632.                                 titolo("Prelievo denaro da nPay")
  633.                                 colore(colors.gray)
  634.                                 print("\n\nDisponibilitåA5A0 su conto:  " .. saldo .. " IC")
  635.                                 colore(colors.black)
  636.                                 term.setCursorPos(1, 5)
  637.                                 term.write("Importo da ritirare: ")
  638.                                 colore(colors.white)
  639.                                 credito = tonumber(tabel.v)
  640.                                 credit = read()
  641.                                 if tonumber(credit) == "" or tonumber(credit) == nil or tonumber(credit) <= 0 then
  642.                                     colore(colors.red)
  643.                                     term.setCursorPos(22, 5)
  644.                                     term.write("Importo errato!                    ")
  645.                                     colore(colors.black)
  646.                                     sleep(1.5)
  647.                                     clear()
  648.                                 else
  649.                                     tab = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=addebito&valore=" .. credit).readAll()
  650.                                     tabella = textutils.unserialize(tab)
  651.                                     if tabella.stato == "DI" then
  652.                                         colore(colors.red)
  653.                                         term.setCursorPos(22, 5)
  654.                                         term.write("Credito su carta insufficente.")
  655.                                         colore(colors.black)
  656.                                         sleep(1.5)
  657.                                         clear()
  658.                                     else
  659.                                         tabr.v = tonumber(tabel.v) + tonumber(credit)
  660.                                         ncr = textutils.serialize(tabr)
  661.                                         mag.setInsertCardLight(true)
  662.                                         mag.beginWrite(ncr, bl)
  663.                                         clear()
  664.                                         titolo("Prelievo denaro da nPay")
  665.  
  666.                                         drawCard()
  667.  
  668.                                         colore(colors.black)
  669.                                         sfondo(colors.lightBlue)
  670.                                         term.setCursorPos(29, 10)
  671.                                         print("RE-INSERIRE LA CARTA")
  672.                                         term.setCursorPos(29, 12)
  673.                                         print("NEL LETTORE IN BASSO")
  674.  
  675.                                         mag.setInsertCardLight(true)
  676.                                         event = os.pullEvent("mag_write_done")
  677.                                         mag.setInsertCardLight(false)
  678.                                         clear()
  679.                                         titolo("Prelievo denaro da nPay")
  680.  
  681.                                         colore(colors.lime)
  682.                                         term.setCursorPos(1, 3)
  683.                                         print("Operazione completata!")
  684.                                         colore(colors.black)
  685.                                         term.setCursorPos(1, 5)
  686.                                         print("Denaro prelevato:  " .. credit .. " IC")
  687.                                         term.setCursorPos(1, 7)
  688.                                         print("Saldo sul conto:   " .. tabella.credito .. " IC")
  689.                                         print("Saldo sulla carta: " .. tabr.v .. " IC")
  690.                                         sfondo(colors.white)
  691.                                         term.setCursorPos(1, 11)
  692.                                         term.write(" Torna alla pagina principale ")
  693.                                         sfondo(colors.lightBlue)
  694.  
  695.                                         antiTonto2 = os.startTimer(15)
  696.                                         while true do
  697.                                             local event, arg1, arg2, arg3 = os.pullEventRaw()
  698.                                             if event == "mouse_click" and arg3 == 11 and arg2 <= 30 or event == "timer" and arg1 == antiTonto2 then -- arg2 = x | arg3 = y
  699.                                                 finalBreakP = true
  700.                                                 break
  701.                                             end
  702.                                         end
  703.                                         break
  704.                                     end
  705.                                 end
  706.                             end
  707.                             if finalBreakP then
  708.                                 break
  709.                             end
  710.                         end
  711.                     end
  712.                 end
  713.  
  714.             elseif event == "mouse_click" and y == 11 and x <= 24 then --Pulsante trasferisci denaro
  715.                 --Trasferisci denaro
  716.                 --inizio pagina
  717.                 clear()
  718.                 titolo("Trasferimento di denaro")
  719.                 term.setCursorPos(1, 3)
  720.                 term.write("Inserire il nome utente del beneficiario.")
  721.                 colore(colors.gray)
  722.                 print("\n\nPremere Enter per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  723.  
  724.                 --Mostra saldo
  725.                 term.setCursorPos(1, 10)
  726.                 colore(colors.gray)
  727.                 print("Saldo disponibile: " .. saldo .. " IC")
  728.                 colore(colors.black)
  729.  
  730.                 --Verifica Beneficiario
  731.                 term.setCursorPos(1, 12)
  732.                 term.write("Beneficiario:")
  733.                 term.setCursorPos(15, 12)
  734.                 colore(colors.white)
  735.                 destAccettato = false
  736.                 conteggioErrori = 0
  737.                 while destAccettato == false do
  738.                     beneficiario = read()
  739.                     checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. beneficiario).readAll()
  740.                     tabcheckuser = textutils.unserialize(checkuser)
  741.                     if tabcheckuser.stato == "OK" and beneficiario ~= utente then
  742.                         term.setCursorPos(15, 12)
  743.                         colore(colors.lime)
  744.                         term.write(beneficiario)
  745.                         colore(colors.white)
  746.                         destAccettato = true
  747.                     else
  748.                         conteggioErrori = conteggioErrori + 1
  749.                         term.setCursorPos(15, 12)
  750.                         colore(colors.red)
  751.                         if beneficiario == utente then
  752.                             term.write("Non puoi inserire te stesso.")
  753.                         else
  754.                             term.write("Utente inesistente!         ")
  755.                         end
  756.                         sleep(2)
  757.                         term.setCursorPos(15, 12)
  758.                         colore(colors.white)
  759.                         term.write("                                      ")
  760.                         term.setCursorPos(15, 12)
  761.                         if conteggioErrori > 2 then
  762.                             term.setCursorPos(15, 12)
  763.                             colore(colors.red)
  764.                             term.write("Tre tentativi di immissione errati.")
  765.                             sleep(2)
  766.                             term.setCursorPos(15, 12)
  767.                             colore(colors.white)
  768.                             term.write("                                   ")
  769.                             term.setCursorPos(15, 12)
  770.                             clear()
  771.                             os.reboot()
  772.                         end
  773.                     end
  774.                 end
  775.  
  776.                 colore(colors.black)
  777.                 --Verifica valore dell'invio
  778.                 term.setCursorPos(1, 14)
  779.                 term.write("Importo:")
  780.                 term.setCursorPos(15, 14)
  781.                 colore(colors.white)
  782.                 importoAccettato = false
  783.                 conteggioErrori = 0
  784.                 while importoAccettato == false do
  785.                     importo = tonumber(read())
  786.                     if importo == "" or importo == nil or importo <= 0 then
  787.                         conteggioErrori = conteggioErrori + 1
  788.                         term.setCursorPos(15, 14)
  789.                         colore(colors.red)
  790.                         term.write("Importo errato!                    ")
  791.                         sleep(2)
  792.                         term.setCursorPos(15, 14)
  793.                         colore(colors.white)
  794.                         term.write("                                   ")
  795.                         term.setCursorPos(15, 14)
  796.                     elseif importo <= saldo and importo > 0 then
  797.                         term.setCursorPos(15, 14)
  798.                         colore(colors.lime)
  799.                         term.write(importo .. " IC")
  800.                         colore(colors.white)
  801.                         importoAccettato = true
  802.                     else
  803.                         conteggioErrori = conteggioErrori + 1
  804.                         term.setCursorPos(15, 14)
  805.                         colore(colors.red)
  806.                         term.write("Credito insufficiente!          ")
  807.                         sleep(2)
  808.                         term.setCursorPos(15, 14)
  809.                         colore(colors.white)
  810.                         term.write("                                   ")
  811.                         term.setCursorPos(15, 14)
  812.                         if conteggioErrori > 2 then
  813.                             term.setCursorPos(15, 14)
  814.                             colore(colors.red)
  815.                             term.write("Tre tentativi di immissione errati.")
  816.                             sleep(2)
  817.                             term.setCursorPos(15, 14)
  818.                             colore(colors.white)
  819.                             term.write("                                   ")
  820.                             term.setCursorPos(15, 14)
  821.                             clear()
  822.                             os.reboot()
  823.                         end
  824.                     end
  825.                 end
  826.  
  827.                 sleep(0.5)
  828.                 clear()
  829.                 titolo("Riepilogo del trasferimento")
  830.  
  831.                 text = "Vuoi inviare " .. importo .. " IC a " .. beneficiario .. "?"
  832.                 term.setCursorPos((maxw - #text) / 2, 6)
  833.                 term.write("Vuoi inviare ")
  834.                 colore(colors.white)
  835.                 term.write(tostring(importo) .. " IC ")
  836.                 colore(colors.black)
  837.                 term.write("a ")
  838.                 colore(colors.white)
  839.                 term.write(beneficiario)
  840.                 colore(colors.black)
  841.                 term.write("?")
  842.  
  843.                 drawFilledBox(7, 11, 23, 13, colors.white)
  844.                 drawFilledBox(29, 11, 45, 13, colors.white)
  845.  
  846.                 term.setCursorPos(8, 12)
  847.                 colore(colors.lime)
  848.                 term.write("Invia il denaro")
  849.  
  850.                 term.setCursorPos(34, 12)
  851.                 colore(colors.red)
  852.                 term.write("Annulla")
  853.  
  854.                 inviare = false
  855.                 while true do
  856.                     event, key, x, y = os.pullEvent()
  857.                     if event == "mouse_click" and x >= 7 and x <= 23 and y >= 11 and y <= 13 then
  858.                         inviaDenaro = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&utente=" .. utente .. "&richiesta=trasferimento&valore=" .. importo .. "&beneficiario=" .. beneficiario).readAll()
  859.                         risultatoInvio = textutils.unserialize(inviaDenaro)
  860.                         if risultatoInvio.stato == "OK" then
  861.                             isGood = true
  862.                             text = "Invio del denaro riuscito."
  863.                             text2 = "Nuovo saldo: " .. risultatoInvio.credito .. " IC"
  864.                             sfondo(colors.lightBlue)
  865.                             colore(colors.lime)
  866.                             term.setCursorPos((maxw - #text) / 2, 16)
  867.                             term.write(text)
  868.                             colore(colors.black)
  869.                             term.setCursorPos((maxw - #text2) / 2, 18)
  870.                             term.write(text2)
  871.                             sleep(2)
  872.                             clear()
  873.                             break
  874.                         else
  875.                             isGood = false
  876.                             text = "Errore durante l'invio del denaro."
  877.                             text2 = risultatoInvio.errore
  878.                             sfondo(colors.lightBlue)
  879.                             colore(colors.red)
  880.                             term.setCursorPos((maxw - #text) / 2, 16)
  881.                             term.write(text)
  882.                             colore(colors.black)
  883.                             term.setCursorPos((maxw - #text2) / 2, 18)
  884.                             term.write(text2)
  885.                             sleep(2)
  886.                             clear()
  887.                             break
  888.                         end
  889.                     elseif event == "mouse_click" and x >= 29 and x <= 45 and y >= 11 and y <= 13 then
  890.                         sfondo(colors.lightBlue)
  891.                         colore(colors.red)
  892.                         text = "Operazione annullata."
  893.                         term.setCursorPos((maxw - #text) / 2, 16)
  894.                         term.write(text)
  895.                         sleep(1.5)
  896.                         clear()
  897.                         break
  898.                     end
  899.                 end
  900.  
  901.             elseif event == "mouse_click" and y == 13 and x <= 24 then --Pulsante estratto conto
  902.                 --Estratto Conto (inizio pagina)
  903.                 clear()
  904.                 titolo("Estratto conto")
  905.  
  906.                 estratto = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&utente=" .. utente .. "&richiesta=estratto").readAll()
  907.                 ec = textutils.unserialize(estratto)
  908.                 term.setCursorPos(1, 3)
  909.                 print("Entrate:")
  910.                 colore(colors.lime)
  911.                 print(ec.entrata1)
  912.                 print(ec.entrata2)
  913.                 print(ec.entrata3)
  914.                 print(ec.entrata4)
  915.                 colore(colors.black)
  916.                 print("\nUscite:")
  917.                 colore(colors.red)
  918.                 print(ec.uscita1)
  919.                 print(ec.uscita2)
  920.                 print(ec.uscita3)
  921.                 print(ec.uscita4)
  922.                 term.setCursorPos(1, 18)
  923.                 sfondo(colors.white)
  924.                 colore(colors.black)
  925.                 term.write(" Torna al menåA5B9 principale ")
  926.                 while true do
  927.                     event, key, x, y = os.pullEventRaw()
  928.                     if event == "mouse_click" and x <= 26 and y == 18 then
  929.                         break
  930.                     end
  931.                 end
  932.  
  933.             elseif event == "mouse_click" and y == 15 and x <= 24 then --Pulsante disconnetti da nPay
  934.                 disconnetti()
  935.  
  936.             elseif event == "timer" and key == antitonto then --Butta fuori l'utente se non fa niente
  937.                 disconnetti()
  938.  
  939.             elseif event == "mouse_click" and x == maxw and y == maxh then -- Auto aggiornamento su magic corner (pannello utente)
  940.                 update()
  941.             end
  942.         end
  943.  
  944.     elseif event == "mouse_click" and x == maxw and y == maxh then -- Auto aggiornamento su magic corner (schermata principale)
  945.         update()
  946.     end
  947. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement