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

Lgmrszd

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

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

  • Посещение

  • Победитель дней

    1

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


  1. Тем временем написал программку для раздатчика.
    Что она делает? Сканит сундук под раздатчиком, и выдаёт из случайного слота предмет в случайном количестве от количестве от 1 до 1+(кол-во в слоте)//4.

    Код:

     

     

    local component=require('component')
    local tr = component.transposer
    local rs = component.redstone
    local event = require('event')
    
    in_side=0 -- сторона от транспонзера, где находится сундук
    out_side=1 -- сторона с раздатчиком
    rs_side=2 -- сторона с проводом
    
    function getSlot(maxslot)
      s = math.random(1,maxslot)
      print(s)
      if tr.getStackInSlot(in_side,s) ~= nil then
        n = math.random(1,1+tr.getStackInSlot(in_side,s).size//4)
        print (s,n)
      else
        s, n = getSlot(maxslot)
      end
      return s, n
    end
    
    work = true
    while work do
      eventname, address, value = event.pull()
      if eventname == 'key_down' and value == 113 then
        work = false
      elseif eventname == 'redstone_changed' and rs.getInput(rs)>10 then
        print('POOTIS')
        s,n=getSlot(tr.getInventorySize(in_side))
        tr.transferItem(in_side,out_side,n,s,1)
        os.sleep(0.65)
        for i=1,n+1 do
          rs.setOutput(rs_side,255) -- если подведена ванильная пыль, то 255 заменить на 15
          os.sleep(0.05)
          rs.setOutput(rs_side,0)
          os.sleep(0.05)
        end
      end
    end
    

     

     

    Программка далеко не идеальна, сделал для демонстрации.

    Что нужно:

    • Комп 1 лвл
    • Красная карта 1 лвл
    • Транспозер

    Экран и клава необязательны.

    Пример установки: клик!


  2. «Job well done»

    — Engineer

    Вы — инженер? Всем вокруг что-то надо? Скаут надоедает вам своим "Need a dispenser here!" ? Выход есть! Постройте раздатчик!
     

    Раздатчик — это:

    1. Эстетично. Больше никаких каменных плюющихся кубов.

      L4xAqFk.png

    2. Красиво. Посмотрите на него. Он прекрасен.

      Jt0c8e4.pngHXDrN9T.png

    3. Эффективно. Нажимная плита заедает, а кнопка выглядит коряво? Поставьте Раздатчик! Теперь вам всего лишь нужно нажать на его дисплей!

      jvdu4mV.png

    Модели:

    1. Центральная верхняя часть:

      {
        label = "BLU Dispenser top center",
        emitRedstone = true,
        buttonMode = true,
        shapes={
          {1,0,15,15,14,16,texture="opencomputers:White",tint=0x1A4780},
          {1,14,2,15,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,15,4,16,16,11,texture="opencomputers:White", tint=0x808080},
          {0,10,0,16,15,2,texture="opencomputers:White",tint=0x1A4780},
          {2,0,1,14,2,2,texture="opencomputers:White",tint=0x1A4780},
          {1,0,0,15,1,1,texture="opencomputers:White", tint=0x808080},
          {0,0,1,2,10,2,texture="opencomputers:White",tint=0x1A4780},
          {14,0,1,16,10,2,texture="opencomputers:White",tint=0x1A4780},
          {0,0,0,1,10,1,texture="opencomputers:White",tint=0x1A4780},
          {15,0,0,16,10,1,texture="opencomputers:White",tint=0x1A4780},
          {0,0,2,1,15,16,texture="opencomputers:White",tint=0x1A4780},
          {15,0,2,16,15,16,texture="opencomputers:White",tint=0x1A4780},
          {2,2,2,14,10,3,texture="opencomputers:White", tint=0x808080},
          
          {1,0,15,15,14,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {1,14,2,15,15,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {0,15,4,16,16,11,texture="opencomputers:White", tint=0x808080, state=true},
          {0,10,0,16,15,2,texture="opencomputers:White", tint=0x1A4780, state=true},
          {2,0,1,14,2,2,texture="opencomputers:White", tint=0x1A4780, state=true},
          {1,0,0,15,1,1,texture="opencomputers:White", tint=0x808080, state=true},
          {0,0,1,2,10,2,texture="opencomputers:White", tint=0x1A4780, state=true},
          {14,0,1,16,10,2,texture="opencomputers:White", tint=0x1A4780, state=true},
          {0,0,0,1,10,1,texture="opencomputers:White", tint=0x1A4780, state=true},
          {15,0,0,16,10,1,texture="opencomputers:White", tint=0x1A4780, state=true},
          {0,0,2,1,15,16,texture="opencomputers:White", tint=0x1A4780, state=true},
          {15,0,2,16,15,16,texture="opencomputers:White", tint=0x1A4780, state=true},
          {2,2,2,14,10,3,texture="opencomputers:White", tint=0x7DF9FF, state=true}
        }
      }
      

    2. Передняя верхняя часть:

      {
        label = "BLU Dispenser top front",
        shapes={
          {0,10,15,2,15,16,texture="opencomputers:White", tint=0x1A4780},
          {14,10,15,16,15,16,texture="opencomputers:White", tint=0x1A4780},
          {2,11,15,14,14,16,texture="opencomputers:White", tint=0xC0C0C0},
          {2,10,15,14,11,16,texture="opencomputers:White", tint=0x1A4780},
          {2,14,15,14,15,16,texture="opencomputers:White", tint=0x1A4780},
          {0,2,15,1,10,16,texture="opencomputers:White", tint=0x1A4780},
          {15,2,15,16,10,16,texture="opencomputers:White", tint=0x1A4780},
          {0,0,15,1,2,16,texture="opencomputers:White", tint=0x808080},
          {15,0,15,16,2,16,texture="opencomputers:White", tint=0x808080},
          {1,0,15,15,1,16,texture="opencomputers:White", tint=0x808080}
        }
      }
      

    3. Задняя верхняя часть:

      {
        label = "BLU Dispenser top back",
        shapes={
          {0,2,15,16,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,0,15,16,2,16,texture="opencomputers:White",tint=0x808080}
        }
      }
      

    4. Левая верхняя часть:

      {
        label = "BLU Dispenser top left",
        shapes={
          {14,0,4,15,16,11,texture="opencomputers:White", tint=0x808080},
          {15,15,4,16,16,11,texture="opencomputers:White", tint=0x808080},
          {15,2,0,16,15,5,texture="opencomputers:White",tint=0x1A4780},
          {15,2,10,16,15,16,texture="opencomputers:White",tint=0x1A4780},
          {15,0,0,16,2,5,texture="opencomputers:White", tint=0x808080},
          {15,0,10,16,2,16,texture="opencomputers:White", tint=0x808080},
          {8,12,4,13,13,11,texture="opencomputers:White", tint=0x808080},
          {8,6,4,13,7,11,texture="opencomputers:White", tint=0x808080},
          {7,7,4,8,12,11,texture="opencomputers:White", tint=0x808080},
          {13,7,4,14,12,11,texture="opencomputers:White", tint=0x808080},
          {8,7,9,13,12,10,texture="opencomputers:White", tint=0xC0C0C0},
          {8,7,10,13,12,11,texture="opencomputers:White", tint=0x808080},
          {8,7,4,13,12,5,texture="glass"},
          {8,7,5,9,8,9,texture="opencomputers:White", tint=0x808080},
          {12,7,5,13,8,9,texture="opencomputers:White", tint=0x808080},
          {8,11,5,9,12,9,texture="opencomputers:White", tint=0x808080},
          {12,11,5,13,12,9,texture="opencomputers:White", tint=0x808080},
          {10,9,8,11,10,9,texture="opencomputers:White", tint=0x0F0F0F},
          {9,9,8,10,10,9,texture="opencomputers:White", tint=0x0F0F0F},
          {9,5,6,12,6,9,texture="opencomputers:White", tint=0x808080},
          {10,3,7,11,5,8,texture="opencomputers:White", tint=0x808080},
          {9,3,6,12,4,9,texture="opencomputers:White", tint=0xFDE910},
          {8,0,5,13,3,10,texture="opencomputers:White", tint=0xFDE910},
          
          
          {14,0,4,15,16,11,texture="opencomputers:White", tint=0x808080, state=true},
          {15,15,4,16,16,11,texture="opencomputers:White", tint=0x808080, state=true},
          {15,2,0,16,15,5,texture="opencomputers:White",tint=0x1A4780, state=true},
          {15,2,10,16,15,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {15,0,0,16,2,5,texture="opencomputers:White", tint=0x808080, state=true},
          {15,0,10,16,2,16,texture="opencomputers:White", tint=0x808080, state=true},
          {8,12,4,13,13,11,texture="opencomputers:White", tint=0x808080, state=true},
          {8,6,4,13,7,11,texture="opencomputers:White", tint=0x808080, state=true},
          {7,7,4,8,12,11,texture="opencomputers:White", tint=0x808080, state=true},
          {13,7,4,14,12,11,texture="opencomputers:White", tint=0x808080, state=true},
          {8,7,9,13,12,10,texture="opencomputers:White", tint=0xC0C0C0, state=true},
          {8,7,10,13,12,11,texture="opencomputers:White", tint=0x808080, state=true},
          {8,7,4,13,12,5,texture="glass", state=true},
          {8,7,5,9,8,9,texture="opencomputers:White", tint=0x808080, state=true},
          {12,7,5,13,8,9,texture="opencomputers:White", tint=0x808080, state=true},
          {8,11,5,9,12,9,texture="opencomputers:White", tint=0x808080, state=true},
          {12,11,5,13,12,9,texture="opencomputers:White", tint=0x808080, state=true},
          {10,9,8,11,10,9,texture="opencomputers:White", tint=0x0F0F0F, state=true},
          {11,10,8,12,11,9,texture="opencomputers:White", tint=0x0F0F0F, state=true},
          {9,5,6,12,6,9,texture="opencomputers:White", tint=0x808080, state=true},
          {10,3,7,11,5,8,texture="opencomputers:White", tint=0x808080, state=true},
          {9,3,6,12,4,9,texture="opencomputers:White", tint=0xFDE910, state=true},
          {8,0,5,13,3,10,texture="opencomputers:White", tint=0xFDE910, state=true},
        }
      }

    5. Верхняя правая часть:

      {
        label = "BLU Dispenser top right",
        shapes={
          {0,2,0,1,15,5,texture="opencomputers:White",tint=0x1A4780},
          {0,2,10,1,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,0,0,1,2,5,texture="opencomputers:White",tint=0x808080},
          {0,0,10,1,2,16,texture="opencomputers:White",tint=0x808080},
          {0,15,4,1,16,11,texture="opencomputers:White", tint=0x808080},
          {1,0,4,2,16,11,texture="opencomputers:White", tint=0x808080},
          {2,11,5,4,12,10,texture="opencomputers:White", tint=0x4F4F4F},
          {4,10,5,5,11,10,texture="opencomputers:White", tint=0x4F4F4F},
          {5,6,5,6,10,10,texture="opencomputers:White", tint=0x4F4F4F},
          {4,5,5,5,6,10,texture="opencomputers:White", tint=0x4F4F4F},
          {3,0,5,4,5,10,texture="opencomputers:White", tint=0x4F4F4F}
        }
      }
      

    6. Верхний уголок:

      {
        label = "BLU Dispenser top corner",
        shapes={
          {0,2,15,1,15,16,texture="opencomputers:White", tint=0x1A4780},
          {0,0,15,1,2,16,texture="opencomputers:White", tint=0x808080}
        }
      }
      

    7. Нижняя передняя часть:

      {
        label = "BLU Dispenser low front",
        shapes={
          {0,0,15,16,2,16,texture="opencomputers:White",tint=0x1A4780},
          {0,6,15,16,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,15,15,16,16,16,texture="opencomputers:White",tint=0x808080},
          {0,10,14,16,15,15,texture="opencomputers:White",tint=0x1A4780},
          {0,2,15,2,6,16,texture="opencomputers:White",tint=0x1A4780},
          {1,1,14,15,7,15,texture="opencomputers:White",tint=0x082567},
          {0,0,14,16,1,15,texture="opencomputers:White", tint=0x808080},
          {0,1,13,16,2,14,texture="opencomputers:White", tint=0x808080},
          {0,1,14,1,2,15,texture="opencomputers:White", tint=0x808080},
          {15,1,14,16,2,15,texture="opencomputers:White", tint=0x808080},
          {14,2,15,16,6,16,texture="opencomputers:White",tint=0x1A4780},
          {2,11,12,4,13,14,texture="opencomputers:White", tint=0xCCCCFF},
          {7,11,12,9,13,14,texture="opencomputers:White", tint=0xCCCCFF},
          {12,11,12,14,13,14,texture="opencomputers:White", tint=0xCCCCFF},
          {1,10,11,5,14,12,texture="opencomputers:White", tint=0x808080},
          {6,10,11,10,14,12,texture="opencomputers:White", tint=0x808080},
          {11,10,11,15,14,12,texture="opencomputers:White", tint=0x808080},
          
          
          {0,0,15,16,2,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {0,6,15,16,15,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {0,15,15,16,16,16,texture="opencomputers:White",tint=0x808080, state=true},
          {0,10,14,16,15,15,texture="opencomputers:White",tint=0x1A4780, state=true},
          {0,2,15,2,6,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {1,1,9,15,2,15,texture="opencomputers:White",tint=0x082567, state=true},
          {0,0,14,16,1,15,texture="opencomputers:White", tint=0x808080, state=true},
          {0,2,14,16,3,15,texture="opencomputers:White", tint=0x808080, state=true},
          {0,1,14,1,2,15,texture="opencomputers:White", tint=0x808080, state=true},
          {15,1,14,16,2,15,texture="opencomputers:White", tint=0x808080, state=true},
          {14,2,15,16,6,16,texture="opencomputers:White",tint=0x1A4780, state=true},
          {2,11,12,4,13,14,texture="opencomputers:White", tint=0xCCCCFF, state=true},
          {7,11,12,9,13,14,texture="opencomputers:White", tint=0xCCCCFF, state=true},
          {12,11,12,14,13,14,texture="opencomputers:White", tint=0xCCCCFF, state=true},
          {1,10,11,5,14,12,texture="opencomputers:White", tint=0x808080, state=true},
          {6,10,11,10,14,12,texture="opencomputers:White", tint=0x808080, state=true},
          {11,10,11,15,14,12,texture="opencomputers:White", tint=0x808080, state=true}
        }
      }
      

    8. Нижняя задняя часть

      {
        label = "BLU Dispenser top back",
        shapes={
          {0,0,15,16,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,15,15,16,16,16,texture="opencomputers:White",tint=0x808080}
        }
      }
      

    9. Нижняя левая часть:

      {
        label = "BLU Dispenser low right",
        shapes={
          {15,0,0,16,15,16,texture="opencomputers:White", tint=0x1A4780},
          {15,15,0,16,16,16,texture="opencomputers:White", tint=0x808080},
          {14,0,4,15,16,11,texture="opencomputers:White",tint=0x808080},
          {8,15,5,13,16,10,texture="opencomputers:White", tint=0xFDE910},
          {7,14,4,14,15,11,texture="opencomputers:White", tint=0x808080},
          {8,11,5,13,14,10,texture="opencomputers:White", tint=0xFDE910},
          {8,10,5,13,11,10,texture="opencomputers:White", tint=0x808080},
          {8,7,6,13,10,10,texture="opencomputers:White", tint=0x808080},
          {8,7,6,13,10,10,texture="opencomputers:White", tint=0x808080},
          {10,9,5,11,10,6,texture="opencomputers:White", tint=0x1A4780},
          {9,8,5,12,9,6,texture="opencomputers:White", tint=0x1A4780},
          {10,7,5,11,8,6,texture="opencomputers:White", tint=0x1A4780},
          {8,9,5,10,10,6,texture="opencomputers:White", tint=0x808080},
          {11,9,5,13,10,6,texture="opencomputers:White", tint=0x808080},
          {8,7,5,10,8,6,texture="opencomputers:White", tint=0x808080},
          {11,7,5,13,8,6,texture="opencomputers:White", tint=0x808080},
          {8,8,5,9,9,6,texture="opencomputers:White", tint=0x808080},
          {12,8,5,13,9,6,texture="opencomputers:White", tint=0x808080},
          {8,5,5,13,7,10,texture="opencomputers:White", tint=0x808080},
          {7,3,7,10,4,8,texture="opencomputers:White", tint=0x808080},
          {6,2,6,7,5,9,texture="opencomputers:White", tint=0x808080},
          {10,2,7,11,5,8,texture="opencomputers:White", tint=0x808080},
          {9,0,6,12,2,9,texture="opencomputers:White", tint=0x808080},
          {12,1,7,14,2,8,texture="opencomputers:White", tint=0x808080}
        }
      }
      

    10. Нижняя правая часть:

      {
        label = "BLU Dispenser low right",
        shapes={
          {0,0,0,1,15,5,texture="opencomputers:White", tint=0x1A4780},
          {0,0,10,1,15,16,texture="opencomputers:White", tint=0x1A4780},
          {0,15,0,1,16,5,texture="opencomputers:White", tint=0x808080},
          {0,15,10,1,16,16,texture="opencomputers:White", tint=0x808080},
          {1,0,4,2,16,11,texture="opencomputers:White",tint=0x808080},
          {2,11,4,7,13,5,texture="opencomputers:White",tint=0x808080},
          {2,11,10,7,13,11,texture="opencomputers:White",tint=0x808080},
          {6,11,5,7,13,10,texture="opencomputers:White",tint=0x808080},
          {3,13,5,4,16,10,texture="opencomputers:White", tint=0x4F4F4F},
          {2,8,5,3,13,10,texture="opencomputers:White", tint=0x4F4F4F},
          {3,7,5,5,8,10,texture="opencomputers:White", tint=0x4F4F4F},
          {5,8,5,6,11,10,texture="opencomputers:White", tint=0x4F4F4F},
          {4,11,5,5,13,10,texture="opencomputers:White", tint=0x4F4F4F},
          {5,13,5,7,14,10,texture="opencomputers:White", tint=0x4F4F4F},
          {7,12,5,8,13,10,texture="opencomputers:White", tint=0x4F4F4F}
        }
      }
      

    11. Нижний уголок:

      {
        label = "BLU Dispenser low corner",
        shapes={
          {0,0,15,1,15,16,texture="opencomputers:White",tint=0x1A4780},
          {0,15,15,1,16,16,texture="opencomputers:White",tint=0x808080}
        }
      }
      

    «Dispense-O-Matic 9000 Раздатчик автоматический». Теперь в Minecraft.

    Предупреждение! Раздатчик можетиспользоваться для запуска стрел и/или огненных шаров, а также других опасных предметов. Компания "Гравийные шахты MineUbuntu" не несёт ответственности за причинённый раздатчиком ущерб.

    • Нравится 7

  3. А можно сервису ипользовать сервис?

    Да, можно. Всё зависит от проги

     

     

    Можно ли обращаться сразу ко всем сервисам с одной функцией? Например, контроллеры датчиков движения, которые будут отсылать и сваливать в кучу всё, что они видят и где это.

     

     

    В цикле пройтись по каждому сервису, вызвать функцию. А так, есть идея: комп с несколькими датчиками/радарами, который устанавливает абсолютные (ну, то есть относительно какой-то точки :) ) координаты игрока. А потом... план дома с игроками, кто где и проч... Но всё потом.

     

     

    А также, можно ли сделать сеть сервисов низшего уровня?

     

    Сервис для сервиса? Вполне возможно. (два-три компа с 3-4 сенсорами, один главный.)


  4. Подробности:

    Сервев имён хранит информацию о сервисах в виде двух таблиц. Первая имеет вид: services[<тип сервиса>][<имя сервиса>]={address=<адрес сетевой платы компа-сервиса>,<поле1>=<значение 1> и т.д.}. Вторая: addresses[<адрес сетевой платы компа-сервиса>]={type=<тип сервиса>,name=<имя сервиса>}

    Библиотека для сервисов на самом деле подгружает другую библиотеку для каждого типа сервиса, сама лишь служит для регистрации "слушателя".

    Описание, понятно, ужасное, но скоро залью примеры.


  5. 1. Оператор связывается с сервисом, сервер служит для хранения списка сервисов. (сервис ---регистрация в списке сервера---> сервер.

    оператор серверов.

    оператор сервис)

    По сути, можно обойтись без сервера, но тогда сеть будет заспамлена информационными сообщениями (мол, я такой-то сервис, делаю то-то)

    2. Всё зависит от программы, библиотеки реализуют лишь упрощение взаимодействия. Насчёт компонентов... предполагалось, что каждый сервис соответствует одному компоненту (группе компонентов), однако, один комп может регистрировать несколько сервисов.

    3. Системник 1 лвл без монитора с модемом или другого уровня (для нескольких компонентов), монитор можно использовать для сервиса-авторизации, к примеру. Возможно (но маловероятно) сделаю прогу для микроконтроллера, но они не поддерживают внешние компоненты.

    4. Что-то не понял. Все компы подключены в одну сеть с коммутатором, пока что пакеты беспроводных плат не фильтруются.

    5. Напишу, когда с компа буду.

    • Нравится 1

  6. Библиотеки и программы для умного дома:

    "SWTF, в общем, вумная коблокоробочка."

    © Fingercomp

     

    программа dns.lua:

    55%

    Стадия: улучшение/написание базовых функций.

    Pastebin: uDrk5unp

    библиотека operator.lua:

    0%

    Стадия: подготовка.

    библиотека SHCS.lua:

    50%

    Стадия: улучшение/написание базовых функций.

    Pastebin: F37yFUhs

    Подбиблиотеки для SHCS:

     

    Для использования подбиблиотеки нужно прописать SHCS.<Название подбиблиотеки>=require('<название библиотеки>')

    SHCS-doors.lua:

    85%

    Стадия: обработка напильником

    Pastebin: rEW4h4Bi

    Описание, использование:

     

    Эта подбиблиотека позволяет управлять дверьми с помощью сигнала красного камня.

     

     

     

     

    Решил я недельку назад во время отсутствия на сервере сделать полезную библиотеку (ибо нефиг, я ж прогер, а прог не выкладываю), которая позволяла бы объединять все компы в единую сеть, чтобы они могли свободно использовать сервисы друг друга. Позже выяснилось, что библиотек должно быть несколько. Суть такова, что в общей сети есть несколько видов компов:

    1. Сервер имён сервисов (по сути dns). Он регистрирует сервисы и сообщает остальным компам (по запросу) о подключённых сервисах.
    2. Комп-сервис. Имеет подключённый компонент(ы) (или отвечает за определённую функцию, к примеру, контроль дверей). Библиотека была названа SHCS (Smart Home Control System)
    3. Комп-оператор, работает с компами-сервисами.

    Описание функций:

     

    dns.lua

     

     

    Далее запись вида функция(знач1, знач2): знач3, знач4 обозначает, что запрос к серверу посылается в виде modem.broadcast(порт, функция, знач1, знач2) и сервер отсылает ответ вида знач3, знач4 на адрес, с которого был получен запрос.

     

    searchDns(): address:string -- возвращает свой адрес (вернее, адрес сетевой карты) address

    addService(type:string,name:string): result:string, type, name -- регистрирует сервис. В случае успеха result равно 'registered', иначе там тип ошибки

    servicesTypes(): type1:string, type2:string... -- возвращает типы сервисов

    servicesOfType(type:string): name1:string, name2:string... -- возвращает имена сервисов для типа сервиса type

     

     

     

     

    SHCS.lua

     

     

    Work in progress

     

     

     

     

    operator.lua

     

     

    Work in progress

     

     

     

    Пример программы для управления дверьми:

     

     

    local component=require('component')
    local rs=component.redstone
    local modem=component.modem
    local event=require('event')
    local SHCS=require('SHCS')
    
    PORT=111
    
    f={}
    
    local side=2
    local mdopen=5
    local mdclose=14
    
    --Функции для открывания/закрывания/проверки двери
    
    local function checkDoor()
      if rs.getBundledOutput(side,7)>100 then
        return true
      else
        return false
      end
    end
    
    local function openDoor()
      rs.setBundledOutput(side,7,255)
      return true
    end
    
    local function closeDoor()
      rs.setBundledOutput(side,7,0)
      return true
    end
    
    
    modem.open(PORT)
    
    --создаём новый сервис дверей с названием 'entrance'
    doors=SHCS.services.doorControl:new('entrance')
    --добавляем дверь 'main'
    doors:addDoor('main',openDoor,closeDoor,checkDoor)
    --запускаем сервис
    SHCS.startService(doors)
    
    
    

     

     

    • Нравится 1

  7.  

     

    с компа на комп или с робота на комп.

    -----

    Сделать выбор в программе как передавать файл.

    апгрейд соединенной платы или апгрейд беспроводной карты.

     

     

    обычная сетевуха или беспроводная будет использоватся?

    В ТЗ ведь описано всё.


  8. Можно сделать морской бой на дебаг-картах, чтобы корабли выстреливали заряженный TNT и попадания проверялись через testforblock. При определенном проценте повреждений корабль тонет, можно еще добавить возможность перемещать корабли во время боя.

    Только есть два минуса - нужна дебаг-карта и много места. Но зато будет намного зрелищней.

    Я один вспомнил рекламу сухариков, когда двое мужиков на замёрзшей реке корабли небольшие из льда сделали, а потом поля заминировали и по очереди взрывали клетки?

    ----------------

    А так, на сервере отключено уничтожение блоков взрывом.


  9.  

     

    Хорошо спрошу по другому - как попасть в их репозиторий? как мне например загрузить в их репу свою программу?

    Тем более надо нам свое.

    oppm работает с GitHub.

    Подробнее о добавлении своих прог описано на майн-вики.

    Но я бы не отказался от твоего менеджера пакетов, если он с домино и буфетчицей.

     

    А то не известно что там "буржуи" вшили :-)

    Это же ОпенСорс!

  10. Шикарно!

    Сделай режим "игрок vs игрок" на OpenNet. Недавно как раз была идея такая: в датацентре стоит сервер с логинами/паролями, который обслуживает игроков, прога-клиент может запрашивать список игроков, ожидающих игру, попасть в список ожидающих и выбрать другого игрока. Потом сервер просто обменивает сообщения клиентов.

    За такое и медаль выдать можно!

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