oGoOgO

zamol

May 3rd, 2020
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. -- Дверь по цифровой клавиатуре, работающая в фоне.
  2. -- Сделал feod0r
  3. -- Отдельное спасибо lLufy за помощь в использовании двух нампадов одновременно
  4.  
  5. --Базовые настройки кодового замка
  6. local locked = "Закрыто" -- слово, которое будет отображаться при закрытой двери
  7. local keyWord = "1996" -- пароль, который необходимо ввести
  8. local opened = "Открыто" -- слово, которое будет отображаться при открытой двери
  9. local wrong = "неверно" -- слово, которое будет отображаться при непрвильном вводе пароля
  10. local input = "" -- переменная для хранения цифрового ввода STRING
  11.  
  12. --подключаемые библиотеки
  13. local computer = require("computer") --пускай будет, чтобы пищал
  14. local event = require("event") --API для эвентов
  15. local component = require("component") --API для работы с компонентами
  16. local keypad = component.os_keypad --блок клавиш
  17.  
  18. --Внимание! Необходимо сменить адреса номеронаберателей!
  19. -- local keypad = component.proxy(component.get("072")) -- первый номеронабератель
  20. -- local keypad2 = component.proxy(component.get("aed"))-- второй номеронабератель
  21. local red = component.redstone --блок красной карты
  22.  
  23. -- кто делал
  24. print("by feod0r")
  25. keypad.setDisplay("feod0r",1)
  26. os.sleep(1.5)
  27.  
  28. --инициализация кнопок первого номеронобератиеля
  29. keypad.setDisplay(locked,4)
  30. keypad.setEventName("pressed")
  31. keypad.setKey(12,"Ок",2)
  32. keypad.setKey(11,"Зак",4)
  33. keypad.setKey(10,"Оч",4)
  34.  
  35.  
  36. --обработчик нажатий на кнопки
  37. function passwd(name, adress, key, button )
  38. --print( name, adress, key, button ) отладочная информация, пускай будет
  39.  
  40. if key == 10 then --если нажата кнопка "очистить"
  41. input = ""
  42. computer.beep(600,0.01)
  43. elseif key == 12 then --если нажата кнопка "Ввод"
  44. if keyWord == input then --код верный, дверь открывается
  45. --print(opened)
  46. keypad.setDisplay(opened,2)
  47.  
  48. red.setOutput(1,150)
  49. input = ""
  50. computer.beep(1500,0.5)
  51. else --если введенный код неверный
  52. keypad.setDisplay(wrong,6)
  53.  
  54. --print("Неверный код: ",input)
  55. input = ""
  56. computer.beep(1000,0.5)
  57. end
  58. elseif key == 11 then -- если нажата кнопка "Закрыть"
  59. --print(locked)
  60. keypad.setDisplay(locked,4)
  61.  
  62. input = ""
  63. computer.beep(1500,0.5)
  64. computer.beep(1000,0.5)
  65. red.setOutput(1,0)
  66. else
  67. input = input..button
  68. computer.beep(1500,0.01)
  69. end
  70. end
  71.  
  72. --Запускаем первого демона
  73. if event.listen("pressed",passwd) then
  74. print("listener первого номеранаберателя запущен")
  75. else
  76. print("Проблемы при включении слушателя перого номеранаберателя")
  77. end
  78.  
  79.  
  80.  
  81. --Сообщение для юзверей.
  82. print("Комьютер свободен. Можно заниматься своими делами, программа двери работает в фоне.")
Add Comment
Please, Sign In to add comment