lego11

TEST

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