PandaDoddo 13 Опубликовано: 4 июля, 2016 (изменено) Доброго времени суток , недавно задумывался о том чтобы создать комнату для системы безопасности... Как и в любом стратегическом помещении в комнате должна быть кодовая дверь... посмотрел на OpenSecurity и тут понеслась...накидал основу +- пару часов на добавление плюшек и вот что получилось: >жмяк< . | pastebin get iA7jGLCd door | Как оно работает?> Для начала нужно установить аппарат на котором будет базироваться наша дверь : В моем случае это компьютер с характеристиками: Корпус: 2 ур. GPU: 1 ур. RAM: 2x1.5 ур. HDD: 1 ур. CPU: 2 ур. Процессор и уровень самого блока стоит выбирать из того сколько компонентов вы хотите прикрутить. > Далее собираем саму дверь: Обязательно: Door Controller. Keypad. Security Door. Дополнительно: Entity Detector. ЧатБокс (OpenTechnology) Запуск.> При первом запуске программы нужно ввести пароль который будет использоваться для открытия двери. Внимание!!! -! При запуске программы все двери закроются.-! При перезапуске программы пароль не сохраняется.-! При верном пароле откроются все двери подключенные к вашему аппарату. -! Не стоит подключать более 1 ЧатБокса , а также более 1 Entity Detector'a. Итог: > что получается в итоге: > C ЧатБоксом и Entity Detector:> С ЧатБоксом , но без Entity Detector:> Без ЧатБокса с Entity Detector: Изменено 4 июля, 2016 пользователем PandaDoddo 6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 4 июля, 2016 Чистенький код, приятно читать. (Не то что у некоторых. ) Немного предложений: 1) Однобуквенные названия переменных (особенно глобальных) снижают читабельность кода. Для циклов например, юзать название i - нормально. Но переменную, которая широко используется во всем коде, стоит назвать говоряще. Не c, а например component или com. 2) Имеет смысл объявлять все локальные переменные словом local. Хотябы потому, что это повышает скорость выполнения кода. function findControllers() local controllers = com.list('os_door') ... Ну и может быть случай, когда две такие переменные будут мешаться друг другу, потому что объявлены как глобальные. В то время как локальные переменные видны только тому блоку кода, который их объявил. 3) Если в цикле есть event.pull(...) то os.sleep(...) уже можно не ставить. Потому что пулл - это сам по себе слип. И OpenComputers это учитывает. while true do -- os.sleep(0.001) -- не обязательно ... local key, b, num, name = event.pull('press_key') -- потому что это тоже слип 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
PandaDoddo Автор темы 13 Опубликовано: 4 июля, 2016 (изменено) Чистенький код, приятно читать. (Не то что у некоторых. ) Немного предложений: 1) Однобуквенные названия переменных (особенно глобальных) снижают читабельность кода. Для циклов например, юзать название i - нормально. Но переменную, которая широко используется во всем коде, стоит назвать говоряще. Не c, а например component или com. 2) Имеет смысл объявлять все локальные переменные словом local. Хотябы потому, что это повышает скорость выполнения кода. function findControllers() local controllers = com.list('os_door') ... Ну и может быть случай, когда две такие переменные будут мешаться друг другу, потому что объявлены как глобальные. В то время как локальные переменные видны только тому блоку кода, который их объявил. 3) Если в цикле есть event.pull(...) то os.sleep(...) уже можно не ставить. Потому что пулл - это сам по себе слип. И OpenComputers это учитывает. while true do -- os.sleep(0.001) -- не обязательно ... local key, b, num, name = event.pull('press_key') -- потому что это тоже слип воткнул туда os.sleep потому что при быстром нажатии на клавишу стереть , дисплей начинал мигать , а после добавления задержки стало лучше , не знаю на сколько это помогает но все же оно работает)) сейчас исправлю , спасибо за советы Изменено 4 июля, 2016 пользователем PandaDoddo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 723 Опубликовано: 4 июля, 2016 Да, код красивый и читабельный. Но всегда ставить локальные переменные всё же - хорошая привычка. И увы в данном примере функции глобальны. Нехорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
PandaDoddo Автор темы 13 Опубликовано: 4 июля, 2016 Блин , да вас не поймешь... то хорошо , то плохо xD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ItsMakar 1 Опубликовано: 21 января, 2022 а где код? я хотел в нем посмотреть как открывать дверь из опен секьюрити ибо ее нет в списке компонентов редстоуном не открывается а кабель и опенкомпов подключается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 21 января, 2022 4 минуты назад, ItsMakar сказал: а где код? В 04.07.2016 в 16:05, PandaDoddo сказал: и вот что получилось: >жмяк< . | pastebin get iA7jGLCd door | 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ItsMakar 1 Опубликовано: 21 января, 2022 1 час назад, eu_tomat сказал: а.. оно не отображалось чтото Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах