Перейти к содержимому

PandaDoddo

Пользователи
  • Публикации

    7
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем PandaDoddo


  1.  

    Чистенький код, приятно читать. (Не то что у некоторых. :) )

     

    Немного предложений:

    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 потому что при быстром нажатии на клавишу стереть , дисплей начинал мигать , а после добавления задержки стало лучше , не знаю на сколько это помогает но все же оно работает))

     

    сейчас исправлю , спасибо за советы :)


  2. Доброго времени суток , недавно задумывался о том чтобы создать комнату для системы безопасности... 
    Как и в любом стратегическом помещении в комнате должна быть кодовая дверь... посмотрел на OpenSecurity и тут понеслась...
    накидал основу +- пару часов на добавление плюшек и вот что получилось: >жмяк< . | pastebin get iA7jGLCd door |

    Как оно работает?

    > Для начала нужно установить аппарат на котором будет базироваться наша дверь :
     В моем случае это компьютер с характеристиками:

     

     

       Корпус: 2 ур.
       GPU: 1 ур.
       RAM: 2x1.5 ур.
       HDD: 1 ур.

       CPU: 2 ур.

     

    Процессор и уровень самого блока стоит выбирать из того сколько компонентов вы хотите прикрутить.

     

    UhACp6ZNNI8.jpg

     

     

     

    > Далее собираем саму дверь:

     Обязательно:
        Door Controller.
        Keypad.
        Security Door. 

      Дополнительно:
        Entity Detector.
        ЧатБокс (OpenTechnology)

     

    Запуск.

    > При первом запуске программы нужно ввести пароль который будет использоваться для открытия двери.

     

    Внимание!!!

     

    -! При запуске программы все двери закроются.
    -! При перезапуске программы пароль не сохраняется.
    -! При верном пароле откроются все двери подключенные к вашему аппарату.

    -! Не стоит подключать более 1 ЧатБокса , а также более 1 Entity Detector'a.

    Итог: 

     

     


    > что получается в итоге:
     

    vHCCJ_k0mj4.jpg

    > C ЧатБоксом и Entity Detector:

    0nF7o91Y8GA.jpg

    > С ЧатБоксом , но без Entity Detector:

    rVusTwxG4oA.jpg

    > Без ЧатБокса с Entity Detector:
     

    O7LDoyr8Yz4.jpg

     

     

      










     

    • Нравится 6

  3. Я не совсем понял в чем суть... но я бы хотел увидеть следующие моды:

    - GrowthCraft , добавляет некоторую еду , бамбук , пчел , рис , виноделие и пивоварение в общем для фермеров.
    - MrCrayfish's Furniture Mod - добавляет мебель , но думаю он не столь важен если будет OC.
    - OpenComputers + аддоны.
    - N
    ot Enough Items , тут все ясно.
    - VoxelMap или аналогичную карту.
    - Mo Creatures Mod , добавляет тучу мобов , от муравьёв до вервульфов.
    - Thermal Expansion или что либо для получения энергии и переработки руд.
    - Gregtech (На случай если есть желание сделать сервер более хардкорной.).

    если надо было кидать уже сборку то отпишитесь , попробую собрать)


  4. Руководство по настройке сервера сообщений и пример работы с клиентом

    На первый компьютер (который будет сервером) записываем файл mess_serv.

    Запускаем mess_serv

    При первом запуске сервер создает:

    - файл passwd, в котором будут храниться пароли пользователей

    - директорию messages, в которой будут храниться непрочитанные сообщения

    - директорию readed, в которой будут храниться прочитанные сообщения

    - директорию news, в которую необходимо помещать новости

    На другой компьютер записываем файл mess_client. Придется подкорректировать

    первую строчку этого файла, указать ID первого компьютера.

    Запускаем mess_client. В дальнейшем все команды вводим на компьютере-клиенте

    Видим меню

    Регистрируем первого пользователя. Клик по пункту "New user"

    Вводим ник и пароль, например Vasya и 123

    Видим сообщение "User Vasya connected"

    отконекчиваемся "Logout"

    и регистрируем второго пользователя "New user"

    Petya 456

    Посылаем сообщение первому пользователю "Send mess"

    После запроса Destination user nick вводим имя первого пользователя (Vasya)

    или стрелками Вверх-Вниз выбираем из уже зарегистрированных

    и текст сообщения (Privet ot Peti)

    отконекчиваемся "Logout"

    Регистрируем третьего пользователя

    Посылаем сообщение первому пользователю

    отконекчиваемся

    Заходим снова под первым пользователем: "Login", вспоминаем имя и пароль

    Проверяем почту "Check mess"

    Видим сообщение You have 2 new message(s)

    Читаем первое сообщение "Read mess"

    Видим <Petya> Privet ot Peti

    Его можно удалить <Del> или перейти к следующему <Стрелка вправо>

    Видим <Sasha> Privet ot Sashi

     

    На сервере:

    a - для получения id и имен активных пользователей

    u - для получения имен всех зарегистрированных пользователей

    q - выход

     

    В директории news создаем несколько файлов с текстами новостей и снова

    запускаем сервер, после чего их можно будет почитать с клиента нажав пункт "News"

     

    Сервер http://pastebin.com/K7VhM2N5

    Клиент http://pastebin.com/1RUTNKNx

    Какие библиотеки нужно "подключить"

    т.е

    local component = require("component") например. выходит ошибка на eventKey[keys.f6] (клиент)

    pwdfilename=shell.resolve('passwd') (сервер)

    помогите пожалуйста! 

    версия майна 1.7.10

     

×
×
  • Создать...