Advertisement
lego11

Untitled

Sep 2nd, 2019
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --BANCOMAT V2 copyright lego11 DIAMANTE
  2. --VARIABILI
  3. local lbl = "BN Credit"
  4. local tabr = {}
  5.  
  6. function clear()
  7. term.clear()
  8. term.setCursorPos(1,1)
  9. end
  10.  
  11. function pinErrato()
  12. clear()
  13. print("Errore di verifica del PIN")
  14. print("")
  15. print("Premere un tasto per uscire")
  16. os.pullEvent("key")
  17. os.reboot()
  18. end
  19.  
  20.  
  21. function cartaNonValida()
  22. clear()
  23. print("Carta non valida o corrotta.")
  24. print("")
  25. print("Premere un tasto per uscire")
  26. os.pullEvent("key")
  27. os.reboot()
  28. end
  29.  
  30. function cartaVuota()
  31. clear()
  32. print("Carta smagnetizzata o vuota.")
  33. print("")
  34. print("Premere un tasto per uscire")
  35. os.pullEvent("key")
  36. os.reboot()
  37. end
  38.  
  39. function preleva()
  40. tabr.t = tab.t
  41. tabr.e = tab.e
  42. tabr.p = tab.p
  43. tabr.v = tostring(credito - prelievo)
  44.  
  45. ncr = textutils.serialize(tabr)
  46.  
  47. m.setInsertCardLight(true)
  48. m.beginWrite(ncr,lbl)
  49. os.pullEvent("mag_write_done")
  50. m.setInsertCardLight(false)
  51. end
  52.  
  53.  
  54. m = peripheral.wrap("right")
  55. lbl = "BN Credit"
  56.  
  57.  
  58.  
  59. clear()
  60. print("Banco di NEBRASKA - Sistema BANCOMAT(R)")
  61. print("")
  62. print("Inserire la carta")
  63. m.setInsertCardLight(true)
  64. za,rawcarta = os.pullEvent("mag_swipe")
  65. m.setInsertCardLight(false)
  66.  
  67. if rawcarta == nil then
  68. cartaVuota()
  69. end
  70.  
  71. tab = textutils.unserialize(rawcarta)
  72.  
  73. if type(tab) ~= "table" then
  74. cartaNonValida()
  75. end
  76.  
  77. if tab.t ~= "cc" then
  78. cartaNonValida()
  79. end
  80.  
  81. if tab.e ~= "BN" then
  82. cartaNonValida()
  83. end
  84.  
  85. if tab.p ~= "0000" then
  86. print("")
  87. print("Inserire il PIN e premere ENTER")
  88. print("")
  89. local pinUtente = read("#")
  90. if pinUtente ~= tab.p then
  91. pinErrato()
  92. end
  93. end
  94.  
  95. credito = tonumber(tab.v)
  96. clear()
  97. while true do
  98. print("La carta ha una disponibilità di "..credito.." IC.")
  99. print("")
  100. print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
  101. print("")
  102. print("[1] Preleva   512 IC")
  103. print("[2] Preleva  1024 IC")
  104. print("[3] Preleva  2048 IC")
  105. print("[4] Preleva  4096 IC")
  106. print("[5] Preleva 32768 IC")
  107. print("[6] Preleva 65536 IC")
  108. print("[7] Cambia il PIN")
  109. print("[8] Esci senza prelevare")
  110. num=tonumber(read())
  111. if num == 1 then
  112. prelievo=0
  113. if prelievo > credito then
  114. clear()
  115. print("Disponibilità insufficiente")
  116. sleep(5)
  117. os.reboot()
  118. end
  119. clear()
  120. print("Inserire nuovamente la carta per confermare il prelievo")
  121. preleva()
  122. print("Ritirare il denaro")
  123. print("")
  124. redstone.setOutput("bottom", true)
  125. sleep(0.25)
  126. print("Erogati 512 IC")
  127. redstone.setOutput("bottom", false)
  128. print("")
  129. print("Prelievo effettuato!")
  130. print("")
  131. print("Tra poco sarà possibile eseguire un'altra operazione.")
  132. sleep(5)
  133. os.reboot()
  134.  
  135. elseif num == 2 then
  136. prelievo=512
  137. erogati = 0
  138. if prelievo > credito then
  139. clear()
  140. print("Disponibilità insufficiente")
  141. sleep(5)
  142. os.reboot()
  143. end
  144. clear()
  145. print("Inserire nuovamente la carta per confermare il prelievo")
  146. preleva()
  147. print("Ritirare il denaro")
  148. print("")
  149. for i=prelievo,0,-512 do
  150. redstone.setOutput("bottom", true)
  151. sleep(0.25)
  152. erogati = erogati + 512
  153. print("Erogati "..erogati.." IC")
  154. redstone.setOutput("bottom", false)
  155. end
  156. print("")
  157. print("Prelievo effettuato!")
  158. print("")
  159. print("Tra poco sarà possibile eseguire un'altra operazione.")
  160. sleep(5)
  161. os.reboot()
  162.  
  163. elseif num == 3 then
  164. prelievo=1536
  165. erogati = 0
  166. if prelievo > credito then
  167. clear()
  168. print("Disponibilità insufficiente")
  169. sleep(5)
  170. os.reboot()
  171. end
  172. clear()
  173. print("Inserire nuovamente la carta per confermare il prelievo")
  174. preleva()
  175. print("Ritirare il denaro")
  176. print("")
  177. for i=prelievo,0,-512 do
  178. redstone.setOutput("bottom", true)
  179. sleep(0.25)
  180. erogati = erogati + 512
  181. print("Erogati "..erogati.." IC")
  182. redstone.setOutput("bottom", false)
  183. end
  184. print("")
  185. print("Prelievo effettuato!")
  186. print("")
  187. print("Tra poco sarà possibile eseguire un'altra operazione.")
  188. sleep(5)
  189. os.reboot()
  190.  
  191. elseif num == 4 then
  192. prelievo=3584
  193. erogati = 0
  194. if prelievo > credito then
  195. clear()
  196. print("Disponibilità insufficiente")
  197. sleep(5)
  198. os.reboot()
  199. end
  200. clear()
  201. print("Inserire nuovamente la carta per confermare il prelievo")
  202. preleva()
  203. print("Ritirare il denaro")
  204. print("")
  205. for i=prelievo,0,-512 do
  206. redstone.setOutput("bottom", true)
  207. sleep(0.25)
  208. erogati = erogati + 512
  209. print("Erogati "..erogati.." IC")
  210. redstone.setOutput("bottom", false)
  211. end
  212. print("")
  213. print("Prelievo effettuato!")
  214. print("")
  215. print("Tra poco sarà possibile eseguire un'altra operazione.")
  216. sleep(5)
  217. os.reboot()
  218.  
  219. elseif num == 5 then
  220. prelievo=32256
  221. erogati = 0
  222. if prelievo > credito then
  223. clear()
  224. print("Disponibilità insufficiente")
  225. sleep(5)
  226. os.reboot()
  227. end
  228. clear()
  229. print("Inserire nuovamente la carta per confermare il prelievo")
  230. preleva()
  231. print("Ritirare il denaro")
  232. print("")
  233. for i=prelievo,0,-512 do
  234. redstone.setOutput("bottom", true)
  235. sleep(0.25)
  236. erogati = erogati + 512
  237. print("Erogati "..erogati.." IC")
  238. redstone.setOutput("bottom", false)
  239. end
  240. print("")
  241. print("Prelievo effettuato!")
  242. print("")
  243. print("Tra poco sarà possibile eseguire un'altra operazione.")
  244. sleep(5)
  245. os.reboot()
  246.  
  247. elseif num == 6 then
  248. prelievo=65024
  249. erogati = 0
  250. if prelievo > credito then
  251. clear()
  252. print("Disponibilità insufficiente")
  253. sleep(5)
  254. os.reboot()
  255. end
  256. clear()
  257. print("Inserire nuovamente la carta per confermare il prelievo")
  258. preleva()
  259. print("Ritirare il denaro")
  260. print("")
  261. for i=prelievo,0,-512 do
  262. redstone.setOutput("bottom", true)
  263. sleep(0.25)
  264. erogati = erogati + 512
  265. print("Erogati "..erogati.." IC")
  266. redstone.setOutput("bottom", false)
  267. end
  268. print("")
  269. print("Prelievo effettuato!")
  270. print("")
  271. print("Tra poco sarà possibile eseguire un'altra operazione.")
  272. sleep(5)
  273. os.reboot()
  274.  
  275. elseif num == 7 then
  276. clear()
  277. print("Cambio PIN della carta di credito")
  278. print("")
  279. print("Nota: Impostare il PIN a '0000' per disabilitarlo")
  280. print("")
  281. print("Inserire il PIN e premere ENTER:")
  282. tab.p = read("#")
  283. clear()
  284. print("Inserire la carta per confermare il cambiamento")
  285. prelievo=0
  286. preleva()
  287. print("")
  288. if tab.p == "0000" then
  289. print("PIN disabilitato correttamente")
  290. else
  291. print("PIN cambiato correttamente")
  292. end
  293. print("")
  294. print("Premere un tasto qualsiasi per ritorare al menu' principale")
  295. os.pullEvent("key")
  296. elseif num == 8 then clear() break end
  297. clear()
  298. sleep(2)
  299. clear()
  300. end
  301. clear()
  302. print("Tra poco sarà possibile eseguire un'altra operazione.")
  303. sleep(1)
  304. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement