Advertisement
lego11

Versamento Uranio

Jan 31st, 2022 (edited)
1,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Versamento URANIO
  2. local maxw, maxh = term.getSize()
  3.  
  4. -- vuota il bancomat
  5. ben = peripheral.wrap("back")
  6. ben.getAvailableItems()
  7. i, j = os.pullEvent("available_items_return")
  8.  
  9. uranium = 0
  10. uraniumID = ben.getItemIdentifierIDFor(30244, 0)
  11.  
  12. for k, v in pairs(j) do
  13.     if v[1] == uraniumID then
  14.         uranium = v[2]
  15.         ben.makeRequest(uraniumID, v[2])
  16.     end
  17.     sleep(0.1)
  18. end
  19.  
  20. ben.getAvailableItems()
  21. i, j = os.pullEvent("available_items_return")
  22.  
  23. uraniumID = ben.getItemIdentifierIDFor(30244, 0)
  24.  
  25. for k, v in pairs(j) do
  26.     if v[1] == uraniumID then
  27.         uranium = v[2]
  28.         ben.makeRequest(uraniumID, v[2])
  29.     end
  30.     sleep(0.1)
  31. end
  32.  
  33. function clear()
  34.     term.clear()
  35.     term.setCursorPos(1, 1)
  36. end
  37.  
  38. if uranium ~= 0 then
  39.     for i = 60, 1, -1 do
  40.         clear()
  41.         print(
  42.             "Bancomat temporaneamente non disponibile, per favore attendere... " ..
  43.                 i)
  44.         sleep(1)
  45.     end
  46.     os.reboot()
  47. end
  48.  
  49. function clear()
  50.     term.clear()
  51.     term.setCursorPos(1, 1)
  52. end
  53.  
  54. function clearRed()
  55.     sfondo(colors.red)
  56.     term.clear()
  57.     term.setCursorPos(1, 1)
  58. end
  59.  
  60. function colore(sfumatura) term.setTextColour(sfumatura) end
  61.  
  62. function sfondo(sfumaturaSfondo) term.setBackgroundColour(sfumaturaSfondo) end
  63.  
  64. function fineColore() term.setTextColour(colours.white) end
  65.  
  66. function fineSfondo() term.setBackgroundColour(colours.black) end
  67.  
  68. -- IMPLEMENTAZIONE DEL DRAWFILLEDBOX
  69. local function drawPixelInternal(xPos, yPos)
  70.     term.setCursorPos(xPos, yPos)
  71.     term.write(" ")
  72. end
  73.  
  74. local tColourLookup = {}
  75. for n = 1, 16 do
  76.     tColourLookup[string.byte("0123456789abcdef", n, n)] = 2 ^ (n - 1)
  77. end
  78.  
  79. function drawFilledBox(startX, startY, endX, endY, nColour)
  80.     if type(startX) ~= "number" or type(startX) ~= "number" or type(endX) ~=
  81.         "number" or type(endY) ~= "number" or
  82.         (nColour ~= nil and type(nColour) ~= "number") then
  83.         error("Expected startX, startY, endX, endY, colour", 2)
  84.     end
  85.  
  86.     startX = math.floor(startX)
  87.     startY = math.floor(startY)
  88.     endX = math.floor(endX)
  89.     endY = math.floor(endY)
  90.  
  91.     if nColour then term.setBackgroundColor(nColour) end
  92.     if startX == endX and startY == endY then
  93.         drawPixelInternal(startX, startY)
  94.         return
  95.     end
  96.  
  97.     local minX = math.min(startX, endX)
  98.     if minX == startX then
  99.         minY = startY
  100.         maxX = endX
  101.         maxY = endY
  102.     else
  103.         minY = endY
  104.         maxX = startX
  105.         maxY = startY
  106.     end
  107.  
  108.     for x = minX, maxX do for y = minY, maxY do drawPixelInternal(x, y) end end
  109. end
  110.  
  111. function titolo(testo)
  112.     drawFilledBox(1, 1, maxw, 1, colors.yellow)
  113.     term.setCursorPos((maxw - #testo) / 2, 1)
  114.     colore(colors.black)
  115.     term.write(testo)
  116.     sfondo(colors.blue)
  117. end
  118.  
  119. function errore(errore)
  120.     sfondo(colors.red)
  121.     colore(colors.white)
  122.     term.clear()
  123.     term.setCursorPos(1, 1)
  124.     titolo("Errore irreversibile")
  125.     term.setCursorPos(1, 3)
  126.     sfondo(colors.red)
  127.     colore(colors.white)
  128.     print(errore)
  129.     print("\n\n\nAttendere qualche secondo...")
  130.     os.sleep(5)
  131.     os.reboot()
  132. end
  133.  
  134. sfondo(colors.blue)
  135. clear()
  136. titolo("ARSENALE MM NEW RADEON - VENDITA URANIO")
  137. colore(colors.white)
  138. print("\n")
  139. print("Premere un tasto per iniziare l'operazione")
  140. event = os.pullEvent()
  141.  
  142. term.clear()
  143. term.setCursorPos(1, 1)
  144. titolo("Accredita su Nebraska Pay")
  145. sfondo(colours.blue)
  146. colore(colors.white)
  147. print(
  148.     "\n\nInserire i propri dati. Premere Enter per confermare i dati inseriti. \nSe i dati sono corretti, il campo diventerà verde. Se sono errati, il programma chiederà di reinserirli nuovamente.")
  149.  
  150. -- nomeutente
  151. term.setCursorPos(1, 9)
  152. term.write("Nome utente:")
  153. term.setCursorPos(15, 9)
  154. fineColore()
  155. utenteAccettato = false
  156. conteggioErrori = 0
  157. while utenteAccettato == false do
  158.     utente = read()
  159.     utente = string.gsub(utente, "%s", "")
  160.     checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  161.     tabcheckuser = textutils.unserialize(checkuser)
  162.     if tabcheckuser.stato == "OK" then
  163.         term.setCursorPos(15, 9)
  164.         colore(colours.lime)
  165.         term.write(utente)
  166.         fineColore()
  167.         utenteAccettato = true
  168.     else
  169.         term.setCursorPos(15, 9)
  170.         colore(colours.red)
  171.         term.write("Utente errato!          ")
  172.         sleep(2)
  173.         term.setCursorPos(15, 9)
  174.         fineColore()
  175.         term.write("                       ")
  176.         term.setCursorPos(15, 9)
  177.         conteggioErrori = conteggioErrori + 1
  178.         if conteggioErrori > 2 then
  179.             term.setCursorPos(15, 9)
  180.             colore(colours.red)
  181.             errore("Troppi tentativi di immissione errati    ")
  182.         end
  183.     end
  184. end
  185. colore(colours.white)
  186. term.setCursorPos(1, 11)
  187. term.write("Password:")
  188. term.setCursorPos(15, 11)
  189. conteggioErrori = 0
  190. passAccettata = false
  191. while passAccettata == false do
  192.     fineColore()
  193.     password = read("#")
  194.     colore(colours.black)
  195.     checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&richiesta=addebito&valore=0&utente=" .. utente).readAll()
  196.     risposta = textutils.unserialize(checkuser)
  197.     if risposta.stato == "OK" then
  198.         term.setCursorPos(15, 11)
  199.         colore(colours.lime)
  200.         term.write("##############               ")
  201.         fineColore()
  202.         passAccettata = true
  203.     else
  204.         term.setCursorPos(15, 11)
  205.         colore(colours.red)
  206.         term.write("Password errata!            ")
  207.         conteggioErrori = conteggioErrori + 1
  208.         sleep(2)
  209.         term.setCursorPos(15, 11)
  210.         term.write("                               ")
  211.         term.setCursorPos(15, 11)
  212.         if conteggioErrori > 2 then
  213.             term.setCursorPos(15, 11)
  214.             colore(colours.red)
  215.             errore("Troppi tentativi di immissione errati")
  216.         end
  217.     end
  218. end
  219. metodoPagamento = "NPAY"
  220. credito = tonumber(risposta.saldo)
  221. clear()
  222.  
  223. while true do
  224.     print("Il conto ha un saldo di " .. credito .. " IC.")
  225.     print("")
  226.     print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
  227.     print("")
  228.     print("[1] Versare dell'uranio")
  229.     print("[2] Annullare il versamento")
  230.  
  231.     num = tonumber(read())
  232.     if num == 1 then
  233.  
  234.         clear()
  235.         redstone.setOutput("left", true)
  236.         print("Inserire gli oggetti nello sportello a destra")
  237.         print("")
  238.         print("AVVERTENZA IMPORTANTE:")
  239.         print("Inserire SOLO uranio in lingotto!")
  240.         print("")
  241.         print("NON RIAVVIARE IL COMPUTER O SI PERDERA' IL VERSAMENTO")
  242.         print("")
  243.         print("Quando si è pronti per continuare, premere un tasto qualsiasi.")
  244.         os.pullEvent("key")
  245.  
  246.         clear()
  247.  
  248.         redstone.setOutput("left", false)
  249.  
  250.         print("Conteggio uranio in corso...")
  251.  
  252.         term.setCursorPos(3, 3)
  253.         term.write("*---")
  254.         sleep(0.5)
  255.         term.setCursorPos(3, 3)
  256.         term.write("-*--")
  257.         sleep(0.5)
  258.         term.setCursorPos(3, 3)
  259.         term.write("--*-")
  260.         sleep(0.5)
  261.         term.setCursorPos(3, 3)
  262.         term.write("---*")
  263.         sleep(0.5)
  264.         term.setCursorPos(3, 3)
  265.         term.write("--*-")
  266.         sleep(0.5)
  267.         term.setCursorPos(3, 3)
  268.         term.write("-*--")
  269.         sleep(0.5)
  270.         term.setCursorPos(3, 3)
  271.         term.write("*---")
  272.         sleep(0.5)
  273.  
  274.         ben = peripheral.wrap("back")
  275.         ben.getAvailableItems()
  276.         i, j = os.pullEvent("available_items_return")
  277.  
  278.         clear()
  279.  
  280.         ben.getAvailableItems()
  281.         i, j = os.pullEvent("available_items_return")
  282.  
  283.         uraniumID = ben.getItemIdentifierIDFor(30244, 0)
  284.  
  285.         for k, v in pairs(j) do
  286.             if v[1] == uraniumID then
  287.                 uranium = v[2]
  288.                 ben.makeRequest(uraniumID, v[2])
  289.             end
  290.             sleep(0.1)
  291.         end
  292.         while true do
  293.             sfondo(colors.blue)
  294.             clear()
  295.             titolo("Pagamento tasse")
  296.             colore(colors.white)
  297.             print("\n\n")
  298.             print("Totale versato: " .. uranium .. " lingotti")
  299.             print("")
  300.             print("E' necessario dichiarare se si tratta di uranio proveniente da api o dalla miniera.")
  301.             print("AVVERTENZA: Dichiarazioni mendaci verranno perseguite ai sensi della legge.")
  302.             print("")
  303.             print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
  304.             print("")
  305.             print("[1] Uranio proveniente da MINIERA")
  306.             print("[2] Uranio proveniente da API")
  307.             local choice = read()
  308.             if choice == "1" then
  309.                 inviaDenaro = http.get("http://172.16.20.220/luanet/servlets/ingrosso_uranio.php?npay=" .. utente .. "&qta=" .. uranium .. "&api=no&auth=BYDFFEGGG").readAll()
  310.                 risultatoInvio = textutils.unserialize(inviaDenaro)
  311.                 if risultatoInvio.stato == "OK" then
  312.                     colore(colors.white)
  313.                     break
  314.                 else
  315.                     clear()
  316.                     errore("Errore durante il pagamento")
  317.                     sleep(5)
  318.                     os.reboot()
  319.                 end
  320.             elseif choice == "2" then
  321.                     clear()
  322.                 inviaDenaro = http.get("http://172.16.20.220/luanet/servlets/ingrosso_uranio.php?npay=" .. utente .. "&qta=" .. uranium .. "&api=yes&auth=BYDFFEGGG").readAll()
  323.                 risultatoInvio = textutils.unserialize(inviaDenaro)
  324.                 if risultatoInvio.stato == "OK" then
  325.                     colore(colors.white)
  326.                     break
  327.                 else
  328.                     clear()
  329.                     errore("Errore durante il pagamento")
  330.                     sleep(5)
  331.                     os.reboot()
  332.                 end
  333.             end
  334.         end
  335.         sleep(1)
  336.         clear()
  337.         print("Denaro versato.")
  338.         print("")
  339.         print("")
  340.         print("Grazie!")
  341.         sleep(1)
  342.         term.setTextColor(colors.black)
  343.         shell.run("pastebin get wcEPXWzK startup2")
  344.     if fs.exists("startup2") then
  345.         shell.run("rm startup")
  346.         shell.run("mv startup2 startup")
  347.     end
  348.         os.reboot()
  349.     elseif num == 2 then
  350.         clear()
  351.         break
  352.     end
  353. end
  354. clear()
  355. print("Attendere")
  356. term.setTextColor(colors.black)
  357. shell.run("rm startup")
  358. shell.run("pastebin get wcEPXWzK startup")
  359. os.reboot()
  360.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement