Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Подключаем библиотеки
- local component = require("component")
- local event = require("event")
- local tty = require("tty")
- local computer = require("computer")
- local gpu = component.gpu
- -- Получаем список всех подключённых красных контроллеров
- local redstone = component.list("redstone")()
- -- Проверяем, есть ли хотя бы один красный контроллер
- if not redstone then
- print("Красный контроллер не найден!")
- return
- end
- -- Функция для установки редстоун-сигнала на все стороны контроллера
- local function setRedstoneSignal(value)
- for address in component.list("redstone") do
- local rs = component.proxy(address)
- for side = 0, 5 do
- rs.setOutput(side, value)
- end
- end
- end
- -- Устанавливаем редстоун-сигнал на максимум (15) при запуске
- setRedstoneSignal(15)
- print("Редстоун-сигнал установлен на максимум на всех сторонах всех контроллеров.")
- -- Настройки кард-ридера
- local magReader = component.os_magreader
- local correctPassword = "sherdek_"
- local s_playerName = "HappyWindinkg"
- -- Настройка экрана
- gpu.setResolution(50, 16)
- tty.clear()
- print("========================================")
- print(" Вас приветствует АБС!")
- print(" Сканируйте зарегистрированную MAG-карту!")
- print("========================================")
- -- Функция для вывода сообщения в определённой строке
- local function printMessage(message)
- -- Очищаем строку, где будет выводиться сообщение
- gpu.set(1, 6, " ") -- Очистка строки
- gpu.set(1, 6, message) -- Вывод нового сообщения
- end
- -- Функция обработки данных с кард-ридера
- function handleMagData(eventName, address, playerName, cardData, cardUniqueId, isCardLocked, side)
- if cardData == correctPassword and playerName == s_playerName then
- printMessage("Доступ разрешён!")
- -- Выключаем редстоун-сигнал на 3 секунды
- setRedstoneSignal(0)
- printMessage("Редстоун-сигнал выключен на 3 секунды.")
- computer.pullSignal(3) -- Ждём 3 секунды
- setRedstoneSignal(15) -- Включаем сигнал обратно
- printMessage("Редстоун-сигнал снова включён.")
- elseif cardData == correctPassword and playerName ~= s_playerName then
- printMessage("Хорошая попытка, но доступ всё равно запрещён!")
- elseif cardData ~= correctPassword and playerName == s_playerName then
- printMessage("Не та карта!")
- else
- printMessage("Убери своё барахло из моего считывателя карт!")
- end
- end
- -- Подписываемся на событие кард-ридера
- event.listen("magData", handleMagData)
- -- Основной цикл программы
- while true do
- event.pull() -- Ждём событий
- end
- -- Отписываемся от события при завершении программы
- event.ignore("magData", handleMagData)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement