View difference between Paste ID: BMJSKUfR and 3VdeY20h
SHOW: | | - or go back to the newest paste.
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Γ₯A0 verde. Se sono errati, il programma chiederΓ₯A0 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 Γ₯A8 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 * 216
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()