Advertisement
lego11

Versamento isotopi

Apr 18th, 2022 (edited)
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Versamenti ISOTOPI
  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. Pu238 = 0
  10. Y90 = 0
  11. Mo99 = 0
  12. Ir192 = 0
  13. Am241 = 0
  14. Cs137 = 0
  15. Co60 = 0
  16. I131 = 0
  17. Sr90 = 0
  18.  
  19.  
  20. Pu238ID = ben.getItemIdentifierIDFor(17104, 0)
  21. Y90ID = ben.getItemIdentifierIDFor(17096, 0)
  22. Mo99ID = ben.getItemIdentifierIDFor(17097, 0)
  23. Ir192ID = ben.getItemIdentifierIDFor(17098, 0)
  24. Am241ID = ben.getItemIdentifierIDFor(17099, 0)
  25. Cs137ID = ben.getItemIdentifierIDFor(17100, 0)
  26. Co60ID = ben.getItemIdentifierIDFor(17101, 0)
  27. I131ID = ben.getItemIdentifierIDFor(17102, 0)
  28. Sr90ID = ben.getItemIdentifierIDFor(17103, 0)
  29.  
  30.  
  31. for k,v in pairs(j) do
  32.    if v[1] == Pu238ID then
  33.      Pu238 = v[2]
  34.      ben.makeRequest(Pu238ID, v[2])
  35.  
  36.    elseif v[1] == Y90ID then
  37.      Y90 = v[2]
  38.      ben.makeRequest(Y90ID, v[2])
  39.  
  40.    elseif v[1] == Mo99ID then
  41.      Mo99 = v[2]
  42.      ben.makeRequest(Mo99ID, v[2])
  43.  
  44.    elseif v[1] == Ir192ID then
  45.      Ir192 = v[2]
  46.      ben.makeRequest(Ir192ID, v[2])
  47.  
  48.    elseif v[1] == Am241ID then
  49.      Am241 = v[2]
  50.      ben.makeRequest(Am241ID, v[2])
  51.  
  52.    elseif v[1] == Cs137ID then
  53.      Cs137 = v[2]
  54.      ben.makeRequest(Cs137ID, v[2])
  55.  
  56.    elseif v[1] == Co60ID then
  57.      Co60 = v[2]
  58.      ben.makeRequest(Co60ID, v[2])
  59.  
  60.    elseif v[1] == I131ID then
  61.      I131 = v[2]
  62.      ben.makeRequest(I131ID, v[2])
  63.  
  64.    elseif v[1] == Sr90ID then
  65.      Sr90 = v[2]
  66.      ben.makeRequest(Sr90ID, v[2])
  67.     end
  68.    sleep(0.1)
  69. end
  70.  
  71. ben.getAvailableItems()
  72. i,j = os.pullEvent("available_items_return")
  73.  
  74. Pu238ID = ben.getItemIdentifierIDFor(17104, 0)
  75. Y90ID = ben.getItemIdentifierIDFor(17096, 0)
  76. Mo99ID = ben.getItemIdentifierIDFor(17097, 0)
  77. Ir192ID = ben.getItemIdentifierIDFor(17098, 0)
  78. Am241ID = ben.getItemIdentifierIDFor(17099, 0)
  79. Cs137ID = ben.getItemIdentifierIDFor(17100, 0)
  80. Co60ID = ben.getItemIdentifierIDFor(17101, 0)
  81. I131ID = ben.getItemIdentifierIDFor(17102, 0)
  82. Sr90ID = ben.getItemIdentifierIDFor(17103, 0)
  83.  
  84.  
  85. for k,v in pairs(j) do
  86.    if v[1] == Pu238ID then
  87.      Pu238 = v[2]
  88.      ben.makeRequest(Pu238ID, v[2])
  89.  
  90.    elseif v[1] == Y90ID then
  91.      Y90 = v[2]
  92.      ben.makeRequest(Y90ID, v[2])
  93.  
  94.    elseif v[1] == Mo99ID then
  95.      Mo99 = v[2]
  96.      ben.makeRequest(Mo99ID, v[2])
  97.  
  98.    elseif v[1] == Ir192ID then
  99.      Ir192 = v[2]
  100.      ben.makeRequest(Ir192ID, v[2])
  101.  
  102.    elseif v[1] == Am241ID then
  103.      Am241 = v[2]
  104.      ben.makeRequest(Am241ID, v[2])
  105.  
  106.    elseif v[1] == Cs137ID then
  107.      Cs137 = v[2]
  108.      ben.makeRequest(Cs137ID, v[2])
  109.  
  110.    elseif v[1] == Co60ID then
  111.      Co60 = v[2]
  112.      ben.makeRequest(Co60ID, v[2])
  113.  
  114.    elseif v[1] == I131ID then
  115.      I131 = v[2]
  116.      ben.makeRequest(I131ID, v[2])
  117.  
  118.    elseif v[1] == Sr90ID then
  119.      Sr90 = v[2]
  120.      ben.makeRequest(Sr90ID, v[2])
  121.     end
  122.    sleep(0.1)
  123. end
  124.  
  125.  
  126. function clear()
  127. term.clear()
  128. term.setCursorPos(1,1)
  129. end
  130.  
  131.  
  132. if Pu238 ~= 0 or Y90 ~= 0 or Mo99 ~= 0 or Ir192 ~= 0 or Am241 ~= 0 or Cs137 ~= 0 or Co60 ~= 0 or I131 ~= 0 or Sr90 ~= 0 then
  133.     clear()
  134.     print("Bancomat temporaneamente non disponibile")
  135.     sleep(60)
  136.     os.reboot()
  137. end
  138.  
  139. function clear()
  140.     term.clear()
  141.     term.setCursorPos(1, 1)
  142. end
  143.  
  144. function clearRed()
  145.     sfondo(colors.red)
  146.     term.clear()
  147.     term.setCursorPos(1, 1)
  148. end
  149.  
  150. function colore(sfumatura) term.setTextColour(sfumatura) end
  151.  
  152. function sfondo(sfumaturaSfondo) term.setBackgroundColour(sfumaturaSfondo) end
  153.  
  154. function fineColore() term.setTextColour(colours.white) end
  155.  
  156. function fineSfondo() term.setBackgroundColour(colours.black) end
  157.  
  158.  
  159. -- IMPLEMENTAZIONE DEL DRAWFILLEDBOX
  160. local function drawPixelInternal(xPos, yPos)
  161.     term.setCursorPos(xPos, yPos)
  162.     term.write(" ")
  163. end
  164.  
  165. local tColourLookup = {}
  166. for n = 1, 16 do
  167.     tColourLookup[string.byte("0123456789abcdef", n, n)] = 2 ^ (n - 1)
  168. end
  169.  
  170. function drawFilledBox(startX, startY, endX, endY, nColour)
  171.     if type(startX) ~= "number" or type(startX) ~= "number" or type(endX) ~=
  172.         "number" or type(endY) ~= "number" or
  173.         (nColour ~= nil and type(nColour) ~= "number") then
  174.         error("Expected startX, startY, endX, endY, colour", 2)
  175.     end
  176.  
  177.     startX = math.floor(startX)
  178.     startY = math.floor(startY)
  179.     endX = math.floor(endX)
  180.     endY = math.floor(endY)
  181.  
  182.     if nColour then term.setBackgroundColor(nColour) end
  183.     if startX == endX and startY == endY then
  184.         drawPixelInternal(startX, startY)
  185.         return
  186.     end
  187.  
  188.     local minX = math.min(startX, endX)
  189.     if minX == startX then
  190.         minY = startY
  191.         maxX = endX
  192.         maxY = endY
  193.     else
  194.         minY = endY
  195.         maxX = startX
  196.         maxY = startY
  197.     end
  198.  
  199.     for x = minX, maxX do for y = minY, maxY do drawPixelInternal(x, y) end end
  200. end
  201.  
  202.  
  203. function titolo(testo)
  204.     drawFilledBox(1, 1, maxw, 1, colors.yellow)
  205.     term.setCursorPos((maxw - #testo) / 2, 1)
  206.     colore(colors.black)
  207.     term.write(testo)
  208.     sfondo(colors.blue)
  209. end
  210.  
  211. function errore(errore)
  212.     sfondo(colors.red)
  213.     colore(colors.white)
  214.     term.clear()
  215.     term.setCursorPos(1, 1)
  216.     titolo("Errore irreversibile")
  217.     term.setCursorPos(1, 3)
  218.     sfondo(colors.red)
  219.     colore(colors.white)
  220.     print(errore)
  221.     print("\n\n\nAttendere qualche secondo...")
  222.     os.sleep(5)
  223.     os.reboot()
  224. end
  225.  
  226. clear()
  227. print("CLINICA DI NEW RADEON")
  228. print("")
  229. print("Premere un tasto per iniziare l'operazione")
  230. print("")
  231. colore(colors.orange)
  232. print("ATTENZIONE AVVERTENZA MOLTO IMPORTANTE")
  233. print("NON RIAVVIARE MAI IL COMPUTER DURANTE IL VERSAMENTO")
  234. print("In caso contrario gli isotopi versati verranno distrutti irrimediabilmente!")
  235. event = os.pullEvent()
  236.  
  237.     sfondo(colours.blue)
  238.     term.clear()
  239.     term.setCursorPos(1, 1)
  240.     titolo("Accredita su Nebraska Pay")
  241.     sfondo(colours.blue)
  242.     colore(colors.white)
  243.     print(
  244.         "\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.")
  245.  
  246.     -- nomeutente
  247.     term.setCursorPos(1, 9)
  248.     term.write("Nome utente:")
  249.     term.setCursorPos(15, 9)
  250.     fineColore()
  251.     utenteAccettato = false
  252.     conteggioErrori = 0
  253.     while utenteAccettato == false do
  254.         utente = read()
  255.         utente = string.gsub(utente, "%s", "")
  256.         checkuser = http.get(
  257.                         "http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" ..
  258.                             utente).readAll()
  259.         tabcheckuser = textutils.unserialize(checkuser)
  260.         if tabcheckuser.stato == "OK" then
  261.             term.setCursorPos(15, 9)
  262.             colore(colours.lime)
  263.             term.write(utente)
  264.             fineColore()
  265.             utenteAccettato = true
  266.         else
  267.             term.setCursorPos(15, 9)
  268.             colore(colours.red)
  269.             term.write("Utente errato!          ")
  270.             sleep(2)
  271.             term.setCursorPos(15, 9)
  272.             fineColore()
  273.             term.write("                       ")
  274.             term.setCursorPos(15, 9)
  275.             conteggioErrori = conteggioErrori + 1
  276.             if conteggioErrori > 2 then
  277.                 term.setCursorPos(15, 9)
  278.                 colore(colours.red)
  279.                 errore("Troppi tentativi di immissione errati    ")
  280.             end
  281.         end
  282.     end
  283.     colore(colours.white)
  284.     term.setCursorPos(1, 11)
  285.     term.write("Password:")
  286.     term.setCursorPos(15, 11)
  287.     conteggioErrori = 0
  288.     passAccettata = false
  289.     while passAccettata == false do
  290.         fineColore()
  291.         password = read("#")
  292.         colore(colours.black)
  293.         checkuser = http.get(
  294.                         "http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" ..
  295.                             password .. "&richiesta=addebito&valore=0&utente=" ..
  296.                             utente).readAll()
  297.         risposta = textutils.unserialize(checkuser)
  298.         if risposta.stato == "OK" then
  299.             term.setCursorPos(15, 11)
  300.             colore(colours.lime)
  301.             term.write("##############               ")
  302.             fineColore()
  303.             passAccettata = true
  304.         else
  305.             term.setCursorPos(15, 11)
  306.             colore(colours.red)
  307.             term.write("Password errata!            ")
  308.             conteggioErrori = conteggioErrori + 1
  309.             sleep(2)
  310.             term.setCursorPos(15, 11)
  311.             term.write("                               ")
  312.             term.setCursorPos(15, 11)
  313.             if conteggioErrori > 2 then
  314.                 term.setCursorPos(15, 11)
  315.                 colore(colours.red)
  316.                 errore("Troppi tentativi di immissione errati")
  317.             end
  318.         end
  319.     end
  320. metodoPagamento = "NPAY"
  321. credito = tonumber(risposta.saldo)
  322. clear()
  323.  
  324. while true do
  325. print("Il conto ha un saldo di "..credito.." IC.")
  326. print("")
  327. print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
  328. print("")
  329. print("[1] Versare degli isotopi")
  330. print("[2] Annullare il versamento")
  331.  
  332. num=tonumber(read())
  333. if num == 1 then
  334.  
  335. clear()
  336. redstone.setOutput("left", true)
  337. print("Inserire gli isotopi nello sportello in basso")
  338. print("")
  339. print("AVVERTENZA IMPORTANTE:")
  340. print("Inserire SOLO isotopi.")
  341. print("")
  342. print("NON RIAVVIARE IL COMPUTER O SI PERDERA' IL VERSAMENTO")
  343. print("")
  344. print("Quando si è pronti per continuare, premere un tasto qualsiasi.")
  345. os.pullEvent("key")
  346.  
  347. clear()
  348.  
  349. redstone.setOutput("left", false)
  350.  
  351. print("Conteggio isotopi in corso...")
  352.  
  353. term.setCursorPos(3, 3)
  354. term.write("*---")
  355. sleep(0.5)
  356. term.setCursorPos(3, 3)
  357. term.write("-*--")
  358. sleep(0.5)
  359. term.setCursorPos(3, 3)
  360. term.write("--*-")
  361. sleep(0.5)
  362. term.setCursorPos(3, 3)
  363. term.write("---*")
  364. sleep(0.5)
  365. term.setCursorPos(3, 3)
  366. term.write("--*-")
  367. sleep(0.5)
  368. term.setCursorPos(3, 3)
  369. term.write("-*--")
  370. sleep(0.5)
  371. term.setCursorPos(3, 3)
  372. term.write("*---")
  373. sleep(0.5)
  374.  
  375. ben = peripheral.wrap("back")
  376. ben.getAvailableItems()
  377. i,j = os.pullEvent("available_items_return")
  378.  
  379. clear()
  380.  
  381. Pu238ID = ben.getItemIdentifierIDFor(17104, 0)
  382. Y90ID = ben.getItemIdentifierIDFor(17096, 0)
  383. Mo99ID = ben.getItemIdentifierIDFor(17097, 0)
  384. Ir192ID = ben.getItemIdentifierIDFor(17098, 0)
  385. Am241ID = ben.getItemIdentifierIDFor(17099, 0)
  386. Cs137ID = ben.getItemIdentifierIDFor(17100, 0)
  387. Co60ID = ben.getItemIdentifierIDFor(17101, 0)
  388. I131ID = ben.getItemIdentifierIDFor(17102, 0)
  389. Sr90ID = ben.getItemIdentifierIDFor(17103, 0)
  390.  
  391.  
  392. for k,v in pairs(j) do
  393.    if v[1] == Pu238ID then
  394.      Pu238 = v[2]
  395.      ben.makeRequest(Pu238ID, v[2])
  396.  
  397.    elseif v[1] == Y90ID then
  398.      Y90 = v[2]
  399.      ben.makeRequest(Y90ID, v[2])
  400.  
  401.    elseif v[1] == Mo99ID then
  402.      Mo99 = v[2]
  403.      ben.makeRequest(Mo99ID, v[2])
  404.  
  405.    elseif v[1] == Ir192ID then
  406.      Ir192 = v[2]
  407.      ben.makeRequest(Ir192ID, v[2])
  408.  
  409.    elseif v[1] == Am241ID then
  410.      Am241 = v[2]
  411.      ben.makeRequest(Am241ID, v[2])
  412.  
  413.    elseif v[1] == Cs137ID then
  414.      Cs137 = v[2]
  415.      ben.makeRequest(Cs137ID, v[2])
  416.  
  417.    elseif v[1] == Co60ID then
  418.      Co60 = v[2]
  419.      ben.makeRequest(Co60ID, v[2])
  420.  
  421.    elseif v[1] == I131ID then
  422.      I131 = v[2]
  423.      ben.makeRequest(I131ID, v[2])
  424.  
  425.    elseif v[1] == Sr90ID then
  426.      Sr90 = v[2]
  427.      ben.makeRequest(Sr90ID, v[2])
  428.     end
  429.    sleep(0.1)
  430. end
  431.        
  432. Pu238IC = Pu238 * 96
  433. Y90IC = Y90 * 112
  434. Mo99IC = Mo99 * 80
  435. Ir192IC = Ir192 * 144
  436. Am241IC = Am241 * 208
  437. Cs137IC = Cs137 * 27
  438. Co60IC = Co60 * 96
  439. I131IC = I131 * 120
  440. Sr90IC = Sr90 * 136
  441.  
  442. contanti = Pu238IC + Y90IC + Mo99IC + Ir192IC + Am241IC + Cs137IC + Co60IC + I131IC + Sr90IC
  443.  
  444. print("Totale versato: "..contanti.." IC")
  445. print("")
  446.             inviaDenaro = http.get(
  447.                               "http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" ..
  448.                                   password .. "&utente=" .. utente ..
  449.                                   "&richiesta=accredito&causale=Vendita%20isotopi&valore=" .. contanti).readAll()
  450.             risultatoInvio = textutils.unserialize(inviaDenaro)
  451.             if risultatoInvio.stato == "OK" then
  452.                 colore(colors.white)
  453.             else
  454.                 clear()
  455.                 errore("Errore durante il pagamento")
  456.                 sleep(5)
  457.                 os.reboot()
  458.             end
  459. if tonumber(contanti) ~= 0 then
  460.     inviaFisco = http.get("http://172.16.20.220/luanet/servlets/fisco.php?msg=" .. contanti .. "%20IC%20di%20isotopi%20-%20" .. utente)
  461.     inviaDGFE = http.get("http://172.16.20.220/luanet/servlets/dgfe.php?npay_user=" .. utente .. "&transaction_type=Isotopi&transaction_amount=" .. contanti)        
  462. end
  463. sleep(1)
  464. clear()
  465. print("Denaro versato.")
  466. print("")
  467. print("")
  468. print("Grazie!")
  469. sleep(1)
  470. term.setTextColor(colors.black)
  471. shell.run("pastebin get NS2nSAY8 startup2")
  472.     if fs.exists("startup2") then
  473.         shell.run("rm startup")
  474.         shell.run("mv startup2 startup")
  475.     end
  476. os.reboot()
  477. elseif num == 2 then clear() break end
  478. end
  479. clear()
  480. print("Attendere")
  481. term.setTextColor(colors.black)
  482. shell.run("pastebin get NS2nSAY8 startup2")
  483.     if fs.exists("startup2") then
  484.         shell.run("rm startup")
  485.         shell.run("mv startup2 startup")
  486.     end
  487. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement