Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --BANCOMAT V2 copyright lego11 DIAMANTE
- --VARIABILI
- local lbl = "BN Credit"
- local tabr = {}
- function clear()
- term.clear()
- term.setCursorPos(1,1)
- end
- function pinErrato()
- clear()
- print("Errore di verifica del PIN")
- print("")
- print("Premere un tasto per uscire")
- os.pullEvent("key")
- os.reboot()
- end
- function cartaNonValida()
- clear()
- print("Carta non valida o corrotta.")
- print("")
- print("Premere un tasto per uscire")
- os.pullEvent("key")
- os.reboot()
- end
- function cartaVuota()
- clear()
- print("Carta smagnetizzata o vuota.")
- print("")
- print("Premere un tasto per uscire")
- os.pullEvent("key")
- os.reboot()
- end
- function preleva()
- tabr.t = tab.t
- tabr.e = tab.e
- tabr.p = tab.p
- tabr.v = tostring(credito - prelievo)
- ncr = textutils.serialize(tabr)
- m.setInsertCardLight(true)
- m.beginWrite(ncr,lbl)
- os.pullEvent("mag_write_done")
- m.setInsertCardLight(false)
- end
- m = peripheral.wrap("right")
- lbl = "BN Credit"
- clear()
- print("Banco di NEBRASKA - Sistema BANCOMAT(R)")
- print("")
- print("Inserire la carta")
- m.setInsertCardLight(true)
- za,rawcarta = os.pullEvent("mag_swipe")
- m.setInsertCardLight(false)
- if rawcarta == nil then
- cartaVuota()
- end
- tab = textutils.unserialize(rawcarta)
- if type(tab) ~= "table" then
- cartaNonValida()
- end
- if tab.t ~= "cc" then
- cartaNonValida()
- end
- if tab.e ~= "BN" then
- cartaNonValida()
- end
- if tab.p ~= "0000" then
- print("")
- print("Inserire il PIN e premere ENTER")
- print("")
- local pinUtente = read("#")
- if pinUtente ~= tab.p then
- pinErrato()
- end
- end
- credito = tonumber(tab.v)
- clear()
- while true do
- print("La carta ha una disponibilità di "..credito.." IC.")
- print("")
- print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
- print("")
- print("[1] Preleva 512 IC")
- print("[2] Preleva 1024 IC")
- print("[3] Preleva 2048 IC")
- print("[4] Preleva 4096 IC")
- print("[5] Preleva 32768 IC")
- print("[6] Preleva 65536 IC")
- print("[7] Cambia il PIN")
- print("[8] Esci senza prelevare")
- num=tonumber(read())
- if num == 1 then
- prelievo=0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- redstone.setOutput("bottom", true)
- sleep(0.25)
- print("Erogati 512 IC")
- redstone.setOutput("bottom", false)
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 2 then
- prelievo=512
- erogati = 0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- for i=prelievo,0,-512 do
- redstone.setOutput("bottom", true)
- sleep(0.25)
- erogati = erogati + 512
- print("Erogati "..erogati.." IC")
- redstone.setOutput("bottom", false)
- end
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 3 then
- prelievo=1536
- erogati = 0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- for i=prelievo,0,-512 do
- redstone.setOutput("bottom", true)
- sleep(0.25)
- erogati = erogati + 512
- print("Erogati "..erogati.." IC")
- redstone.setOutput("bottom", false)
- end
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 4 then
- prelievo=3584
- erogati = 0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- for i=prelievo,0,-512 do
- redstone.setOutput("bottom", true)
- sleep(0.25)
- erogati = erogati + 512
- print("Erogati "..erogati.." IC")
- redstone.setOutput("bottom", false)
- end
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 5 then
- prelievo=32256
- erogati = 0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- for i=prelievo,0,-512 do
- redstone.setOutput("bottom", true)
- sleep(0.25)
- erogati = erogati + 512
- print("Erogati "..erogati.." IC")
- redstone.setOutput("bottom", false)
- end
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 6 then
- prelievo=65024
- erogati = 0
- if prelievo > credito then
- clear()
- print("Disponibilità insufficiente")
- sleep(5)
- os.reboot()
- end
- clear()
- print("Inserire nuovamente la carta per confermare il prelievo")
- preleva()
- print("Ritirare il denaro")
- print("")
- for i=prelievo,0,-512 do
- redstone.setOutput("bottom", true)
- sleep(0.25)
- erogati = erogati + 512
- print("Erogati "..erogati.." IC")
- redstone.setOutput("bottom", false)
- end
- print("")
- print("Prelievo effettuato!")
- print("")
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(5)
- os.reboot()
- elseif num == 7 then
- clear()
- print("Cambio PIN della carta di credito")
- print("")
- print("Nota: Impostare il PIN a '0000' per disabilitarlo")
- print("")
- print("Inserire il PIN e premere ENTER:")
- tab.p = read("#")
- clear()
- print("Inserire la carta per confermare il cambiamento")
- prelievo=0
- preleva()
- print("")
- if tab.p == "0000" then
- print("PIN disabilitato correttamente")
- else
- print("PIN cambiato correttamente")
- end
- print("")
- print("Premere un tasto qualsiasi per ritorare al menu' principale")
- os.pullEvent("key")
- elseif num == 8 then clear() break end
- clear()
- sleep(2)
- clear()
- end
- clear()
- print("Tra poco sarà possibile eseguire un'altra operazione.")
- sleep(1)
- os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement