Advertisement
colhaydutu

lockv4

Sep 7th, 2023 (edited)
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. local advancedMonitor = peripheral.wrap("monitor_289")
  2. local modemSide = "front"
  3. local redstoneOutput = "left"
  4. local redstoneOutput2 = "right"
  5. local correctPassword = "1991"
  6. local enteredPassword = ""
  7.  
  8. local function drawScreen()
  9. advancedMonitor.setBackgroundColor(colors.lightGray)
  10. advancedMonitor.clear()
  11.  
  12. local w, h = advancedMonitor.getSize()
  13. term.redirect(advancedMonitor)
  14. paintutils.drawLine(2, 2, w - 1, 2, colors.lightBlue)
  15. paintutils.drawLine(2, 2, 2, h - 1, colors.lightBlue)
  16. paintutils.drawLine(w - 1, 2, w - 1, h - 1, colors.lightBlue)
  17. paintutils.drawLine(2, h - 1, w - 1, h - 1, colors.lightBlue)
  18. paintutils.drawLine(2, 5, w - 1, 5, colors.lightBlue)
  19.  
  20. advancedMonitor.setBackgroundColor(colors.lightGray)
  21. advancedMonitor.setCursorPos(3, 3)
  22. advancedMonitor.setTextScale(1)
  23. advancedMonitor.setTextColor(colors.black)
  24. advancedMonitor.write("Enter Password")
  25.  
  26. paintutils.drawLine(8, 4, 12, 4, colors.lightGray)
  27. advancedMonitor.setCursorPos(7, 4)
  28. advancedMonitor.write(" " .. string.rep("*", #enteredPassword) .. " ")
  29.  
  30. paintutils.drawLine(3, 4, 6, 4, colors.red)
  31. advancedMonitor.setCursorPos(4, 4)
  32. advancedMonitor.write("DEL")
  33.  
  34. paintutils.drawLine(13, 4, w - 2, 4, colors.green)
  35. advancedMonitor.setCursorPos(14, 4)
  36. advancedMonitor.write("OK")
  37.  
  38. advancedMonitor.setCursorPos(3, 7)
  39. advancedMonitor.setTextColor(colors.white)
  40. advancedMonitor.setBackgroundColor(colors.blue)
  41. advancedMonitor.write("[1 ")
  42. paintutils.drawLine(3, 6, 16, 6, colors.lightBlue)
  43. paintutils.drawLine(3, 8, 16, 8, colors.lightBlue)
  44. paintutils.drawLine(3, 10, 16, 10, colors.lightBlue)
  45. paintutils.drawLine(3, 12, 16, 12, colors.lightBlue)
  46. paintutils.drawLine(7, 6, 7, 12, colors.lightBlue)
  47. paintutils.drawLine(11, 6, 11, 12, colors.lightBlue)
  48. paintutils.drawLine(6, 6, 6, 12, colors.lightBlue)
  49. paintutils.drawLine(12, 6, 12, 12, colors.lightBlue)
  50. advancedMonitor.setCursorPos(8, 7)
  51. advancedMonitor.setTextColor(colors.white)
  52. advancedMonitor.setBackgroundColor(colors.blue)
  53. advancedMonitor.write(" 2 ")
  54.  
  55. advancedMonitor.setCursorPos(13, 7)
  56. advancedMonitor.setTextColor(colors.white)
  57. advancedMonitor.setBackgroundColor(colors.blue)
  58. advancedMonitor.write(" 3]")
  59.  
  60. advancedMonitor.setCursorPos(3, 9)
  61. advancedMonitor.setTextColor(colors.white)
  62. advancedMonitor.setBackgroundColor(colors.blue)
  63. advancedMonitor.write("[4 ")
  64.  
  65. advancedMonitor.setCursorPos(8, 9)
  66. advancedMonitor.setTextColor(colors.white)
  67. advancedMonitor.setBackgroundColor(colors.blue)
  68. advancedMonitor.write(" 5 ")
  69.  
  70. advancedMonitor.setCursorPos(13, 9)
  71. advancedMonitor.setTextColor(colors.white)
  72. advancedMonitor.setBackgroundColor(colors.blue)
  73. advancedMonitor.write(" 6]")
  74.  
  75. advancedMonitor.setCursorPos(3, 11)
  76. advancedMonitor.setTextColor(colors.white)
  77. advancedMonitor.setBackgroundColor(colors.blue)
  78. advancedMonitor.write("[7 ")
  79.  
  80. advancedMonitor.setCursorPos(8, 11)
  81. advancedMonitor.setTextColor(colors.white)
  82. advancedMonitor.setBackgroundColor(colors.blue)
  83. advancedMonitor.write(" 8 ")
  84.  
  85. advancedMonitor.setCursorPos(13, 11)
  86. advancedMonitor.setTextColor(colors.white)
  87. advancedMonitor.setBackgroundColor(colors.blue)
  88. advancedMonitor.write(" 9]")
  89.  
  90. paintutils.drawLine(3, 13, 16, 13, colors.lightBlue)
  91. paintutils.drawLine(3, 15, 16, 15, colors.lightBlue)
  92. paintutils.drawLine(3, 14, 4, 14, colors.lightBlue)
  93. paintutils.drawLine(15, 14, 16, 14, colors.lightBlue)
  94.  
  95. advancedMonitor.setCursorPos(5, 14)
  96. advancedMonitor.setBackgroundColor(colors.red)
  97. advancedMonitor.setTextColor(colors.white)
  98. advancedMonitor.write("[ RETURN ]")
  99. end
  100.  
  101. local function checkPassword()
  102. if enteredPassword == correctPassword then
  103. for i = 1, 13 do
  104. redstone.setOutput(redstoneOutput, true)
  105. sleep(0.1)
  106. redstone.setOutput(redstoneOutput, false)
  107. sleep(0.1)
  108. end
  109. advancedMonitor.setCursorPos(4, 16)
  110. advancedMonitor.setBackgroundColor(colors.green)
  111. advancedMonitor.setTextColor(colors.white)
  112. advancedMonitor.write("Correct pass")
  113. sleep(4)
  114. enteredPassword =""
  115. drawScreen()
  116. else
  117.  
  118.  
  119. advancedMonitor.setCursorPos(5, 16)
  120. advancedMonitor.setBackgroundColor(colors.red)
  121. advancedMonitor.setTextColor(colors.white)
  122. advancedMonitor.write("Wrong pass")
  123. enteredPassword =""
  124. drawScreen()
  125. sleep(4)
  126. end
  127. end
  128.  
  129. local function checkpassword()
  130. if #enteredPassword >= 1 then
  131. enteredPassword = string.sub(enteredPassword, 1, -2)
  132. end
  133. end
  134.  
  135.  
  136.  
  137. drawScreen()
  138.  
  139. local function messages()
  140. rednet.open(modemSide)
  141.  
  142. while true do
  143. local senderID, message = rednet.receive()
  144. if senderID == 4189 then
  145. if message == "open" then
  146. for i = 1, 13 do
  147. redstone.setOutput(redstoneOutput, true)
  148. sleep(0.1)
  149. redstone.setOutput(redstoneOutput, false)
  150. sleep(0.1)
  151. end
  152. elseif message == "close" then
  153. for i = 1, 13 do
  154. redstone.setOutput(redstoneOutput2, true)
  155. sleep(0.1)
  156. redstone.setOutput(redstoneOutput2, false)
  157. sleep(0.1)
  158. end
  159. end
  160. end
  161. end
  162.  
  163. rednet.close(modemSide)
  164. end
  165.  
  166. parallel.waitForAny(messages, function()
  167. while true do
  168. local event, side, x, y = os.pullEvent("monitor_touch")
  169.  
  170. if x >= 3 and x <= 6 and y == 7 then
  171. enteredPassword = enteredPassword .. "1"
  172. drawScreen()
  173.  
  174. elseif x >= 8 and x <= 10 and y == 7 then
  175. enteredPassword = enteredPassword .. "2"
  176. drawScreen()
  177.  
  178. elseif x >= 13 and x <= 15 and y == 7 then
  179. enteredPassword = enteredPassword .. "3"
  180. drawScreen()
  181.  
  182. elseif x >= 3 and x <= 6 and y == 9 then
  183. enteredPassword = enteredPassword .. "4"
  184. drawScreen()
  185.  
  186. elseif x >= 8 and x <= 10 and y == 9 then
  187. enteredPassword = enteredPassword .. "5"
  188. drawScreen()
  189.  
  190. elseif x >= 13 and x <= 15 and y == 9 then
  191. enteredPassword = enteredPassword .. "6"
  192. drawScreen()
  193.  
  194. elseif x >= 3 and x <= 6 and y == 11 then
  195. enteredPassword = enteredPassword .. "7"
  196. drawScreen()
  197.  
  198. elseif x >= 8 and x <= 10 and y == 11 then
  199. enteredPassword = enteredPassword .. "8"
  200. drawScreen()
  201.  
  202. elseif x >= 13 and x <= 15 and y == 11 then
  203. enteredPassword = enteredPassword .. "9"
  204. drawScreen()
  205.  
  206. elseif y == 14 then
  207. for i = 1, 13 do
  208. redstone.setOutput(redstoneOutput2, true)
  209. sleep(0.1)
  210. redstone.setOutput(redstoneOutput2, false)
  211. sleep(0.1)
  212. end
  213.  
  214. elseif x >= 4 and x <= 6 and y == 4 then
  215. enteredPassword = string.sub(enteredPassword, 1, -2)
  216. drawScreen()
  217.  
  218. elseif x >= 14 and x <= 16 and y == 4 then
  219. checkPassword()
  220. end
  221. end
  222. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement