FoxWorn3365

programma

Jan 8th, 2022 (edited)
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- CONFIGURAZIONE
  2. beneficiario = "eternalcaos"
  3. importo = 100 -- In IC
  4.  
  5. -- Implementazione di dio volevo dire del sensore
  6. os.loadAPI("ocs/apis/sensor")
  7.  
  8. se = sensor.wrap("top")
  9.  
  10. -- Configurazione di base del sensore
  11. side = "left" -- Lato del segnale se viene rilevato un giocatopre
  12.  
  13.  
  14.  
  15. local maxw, maxh = term.getSize()
  16.  
  17. --IMPLEMENTAZIONE DEL DRAWFILLEDBOX
  18. local function drawPixelInternal(xPos, yPos)
  19. term.setCursorPos(xPos, yPos)
  20. term.write(" ")
  21. end
  22.  
  23. local tColourLookup = {}
  24. for n = 1,16 do
  25. tColourLookup[string.byte("0123456789abcdef", n, n)] = 2^(n-1)
  26. end
  27.  
  28. function drawFilledBox(startX, startY, endX, endY, nColour)
  29. if type(startX) ~= "number" or type(startX) ~= "number" or
  30. type(endX) ~= "number" or type(endY) ~= "number" or
  31. (nColour ~= nil and type(nColour) ~= "number") then
  32. error("Expected startX, startY, endX, endY, colour", 2)
  33. end
  34.  
  35. startX = math.floor(startX)
  36. startY = math.floor(startY)
  37. endX = math.floor(endX)
  38. endY = math.floor(endY)
  39.  
  40. if nColour then
  41. term.setBackgroundColor(nColour)
  42. end
  43. if startX == endX and startY == endY then
  44. drawPixelInternal(startX, startY)
  45. return
  46. end
  47.  
  48. local minX = math.min(startX, endX)
  49. if minX == startX then
  50. minY = startY
  51. maxX = endX
  52. maxY = endY
  53. else
  54. minY = endY
  55. maxX = startX
  56. maxY = startY
  57. end
  58.  
  59. for x = minX, maxX do
  60. for y = minY, maxY do
  61. drawPixelInternal(x, y)
  62. end
  63. end
  64. end
  65.  
  66. function button(x, y, color, text)
  67. term.setBackgroundColor(colors[color])
  68. term.setTextColor(colors.white)
  69. term.setCursorPos(x, y)
  70. print(text)
  71. term.setBackgroundColor(colors.white)
  72. term.setTextColor(colors.black)
  73. end
  74.  
  75. function clear()
  76. term.setBackgroundColor(colors.white)
  77. term.setTextColor(colors.black)
  78. term.clear()
  79. term.setCursorPos(1, 1)
  80. end
  81.  
  82. function titolo(testo)
  83. drawFilledBox(1, 1, maxw, 1, colors.blue)
  84. term.setCursorPos((maxw - #testo) / 2, 1)
  85. term.setTextColor(colors.white)
  86. term.write(testo)
  87. term.setBackgroundColor(colors.white)
  88. term.setTextColor(colors.black)
  89. end
  90.  
  91. isGoodPayment = false
  92. isLogged = false
  93.  
  94. rs.setOutput(side, true)
  95.  
  96. page = 0
  97.  
  98. while true do
  99. if page == 0 and isLogged == false then
  100. clear()
  101. titolo("Pagamento con nPay - Accedi!")
  102. print("\n\n\nNome Utente:")
  103. utente = read()
  104. checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  105. print("\nPassword:")
  106. password = read("#")
  107. checkpass = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&richiesta=addebito&valore=0&utente=".. utente).readAll()
  108. risposta = textutils.unserialize(checkpass)
  109. tabcheckuser = textutils.unserialize(checkuser)
  110. if tabcheckuser.stato == "OK" and risposta.stato == "OK" then
  111. isLogged = true
  112. page = "logged"
  113. else
  114. isLogged = false
  115. term.setTextColor(colors.red)
  116. print("\n\nNome Utente o Password errati!\n\nPotrai riprovare tra 2 secondi....")
  117. sleep(1.5)
  118. os.reboot()
  119. end
  120. elseif page == "logged" and isLogged == true then
  121. clear()
  122. titolo("Pagamento con nPay - Benvenuto, " ..utente.."!")
  123. print("\n\nStai per pagare "..importo.."IC a favore di " ..beneficiario.."!")
  124. button(15, 10, "green", " PAGA ORA ")
  125. button(30, 10, "red", " ANNULLA ")
  126.  
  127. local event, bt, x, y = os.pullEvent("mouse_click")
  128. if x > 15 and x < 25 then
  129. inviaDenaro = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&utente=" .. utente .. "&richiesta=trasferimento&valore=" .. importo .. "&beneficiario=" .. beneficiario).readAll()
  130. risultatoInvio = textutils.unserialize(inviaDenaro)
  131. if risultatoInvio.stato == "OK" then
  132. -- la variabile che gestisce l'implementazione del sensore viene messa positiva
  133. isGoodPayment = true
  134. page = "sensor"
  135. else
  136. clear()
  137. term.setTextColor(colors.red)
  138. print("\n\nUn errore selvatico e' appena apparso ed il pagamento non e' avvenuto con successo...\nn\Potrai riprovare tra qualche secondo...")
  139. sleep(3)
  140. -- Slogghiamo ma in modo bello
  141. os.reboot()
  142. end
  143. elseif x > 30 then
  144. print("Ok, arrivederci!")
  145. sleep(1)
  146. os.reboot()
  147. end
  148. elseif page == "sensor" and isGoodPayment == true then
  149. clear()
  150. titolo("Pagamento con nPay - Goditelo :D")
  151. print("\n\nIl pagamento è avvenuto con successo!\Fino a che rimarrai vicino a questo computer potrai usufruire del servizio\nPer sloggarti, allontatati dal computer!")
  152. -- Implementazione del sensore rileva-player
  153. -- Il check viene eseguito ogni secondo
  154. os.loadAPI("ocs/apis/sensor")
  155. se = sensor.wrap("top")
  156. ta = se.getTargets()
  157. for k,v in pairs(ta) do
  158. if k ~= nil then
  159. rs.setOutput(side, false)
  160. else
  161. rs.setOutput(side, true)
  162. end
  163. end
  164. end
  165. sleep(0.2)
  166. end
  167.  
  168.  
Add Comment
Please, Sign In to add comment