ferel 5 Опубликовано: 16 июня, 2016 (изменено) Всем привет. Представляю вашему вниманию: Замок для дома на Magnetic Card Reader Также есть редстоун выход. pastebin run LY6uj0xT Код: https://pastebin.com/LY6uj0xT Изменено 1 ноября, 2017 пользователем Alex 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 16 июня, 2016 (изменено) Класс! Никогда не разбирался как карты работают. Сразу несколько вопросов/предложений/улучшений. 1) Как понимаю data == "RXZlcnlib2R5" это пароль? Можно было бы вынести в отдельную переменную, чтоб можно было очень быстро сменить, и не лопатить весь код. 2) Дальше, а как карту записать - то? Нужно дополнение к программе, записывающее пароль на карту. 3) Как понимаю придется комп на себя приватить? А если забудешь, придут любители вирусов с магической командой Ctrl+Alt+C, ну и или пароль вытащат, или чего веселенькое поставят. Используй event.shouldInterrupt = function () return false end это не даст отрубить программу, но и выйти из нее можно только путем перезагрузки компьютера. 4) А что будет если я дверь не поставлю? Или поставлю железные и редстоун захочу провести? Судя по коду, программа улетит в глубокую ошибку. Добавляй проверку. 4) Ссылку на пастебин сделай, чтоб быстрее до кода добраться любителям читать код, добавь характеристики минимальной сборки компьютера, название дверей которые используются, ну и пояснение для тупых куда редстоун сигнал подводить. P.S. Но поздравляю с первой программой! Чуть улучши и будет конфетка! Изменено 16 июня, 2016 пользователем Asior Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ferel Автор темы 5 Опубликовано: 17 июня, 2016 (изменено) Спасибо P.S. Пароль это закодированное слово на base64 Изменено 1 ноября, 2017 пользователем Alex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 17 июня, 2016 Представляю вашему вниманию: Замок для дома на Magnetic Card Reader if data == "RXZlcnlib2R5" then А если у меня например несколько друзей хотят войти и у них свои карты, то что в коде делать портянку из OR-ов чтоли? Фингер и другие, помнят как на ИТ у меня стоял свой комп с авторизацией по карте, если найду бекап его, то может скину, там все сделано для каждого игрока, то есть проверка номера карты идет не из кода, а из некой БД... Ну а в целом респект за первую программу, надеюсь автор ее не забросит, модернизирует и сделает супер-пупер куллхакерц систему защиту Вот @Totoro растет подрастающее поколение, тебе уже точно можно идти на пенсию, ветеран ты наш Мы не забудем твой Тоторо-замок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 17 июня, 2016 ... Ну а в целом респект за первую программу, надеюсь автор ее не забросит, модернизирует и сделает супер-пупер куллхакерц систему защиту Вот @Totoro растет подрастающее поколение, тебе уже точно можно идти на пенсию, ветеран ты наш Мы не забудем твой Тоторо-замок "10/10/2014" Эхехе, давненько я её написал. Старость не радость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka 5 Опубликовано: 1 ноября, 2017 Пароль "RXZlcnlib2R5". Как его в карту записать? Построил, а регать где? https://imgur.com/a/dtOS7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
FelixBanan 8 Опубликовано: 7 ноября, 2017 (изменено) Пароль "RXZlcnlib2R5". Как его в карту записать? Построил, а регать где? https://imgur.com/a/dtOS7 http://computercraft.ru/topic/2247-programma-dlia-raboty-s-rfid-kartami-opensecurity/ посмотри тут есть writer.lua Изменено 8 ноября, 2017 пользователем felixpimp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
lokin135 24 Опубликовано: 7 ноября, 2017 (изменено) Ну что-ж, все мы с чего-то начинали. Давай я тебе подскажу твои ошибки: 1. Объявляй локальные переменные и давай им четкие названия: c = require'component' gpu = require'component'.gpu -> local comp = require("component") local gpu = comp.gpu 2. Используй локальные функции. При программировании больших программ (я например: 200+ строк) это очень сильно поможет: local function Draw() gpu.setBackground(0xFFFF00) gpu.fill(1,1,24,5," ") gpu.setBackground(0xBDBDBD) gpu.set(5,3," ") gpu.setForeground(0xFFFF00) gpu.set(5,3,"Проведите карту.") end 3.Используй отступления (пример не очень, т.к. лучше использовать логические выражения. кто-то писал на форуме): ... if type == "magData" then h = 1 else h = 0 end ... -> if type == "magData" then h = 1 else h = 0 end Ну и на последок: лучше избегать бесконечные циклы. Так-же лучше выносить в отдельную переменную числа, строки и т.п. (в данной программе, пароль, т.е. string) в начало кода программы, что-бы конечному пользователю было проще ее настроить. Изменено 7 ноября, 2017 пользователем lokin135 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 7 ноября, 2017 @@lokin135, советы, конечно, полезные, но автор уже больше года не появлялся на форуме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
lokin135 24 Опубликовано: 7 ноября, 2017 автор уже больше года не появлялся на форуме. все-же другим новичкам будет полезно. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах