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

Totoro

Гуру
  • Публикации

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

  • Посещение

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

    289

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


  1. Как обстоят дела с критическими точками и состоянием гонки?

    А эти проблемы актуальны для сопрограмм Lua?

    Проблема может возникнуть при неправильном проектировании программы (например доступа к файлу), но это уже проблема программиста а не библиотеки. Или я ошибаюсь?


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

    Верно. Следовательно, весь Муравейник может развернуть один робот, который имеет апгрейды инвентарь, контроллер инвентаря, верстак и генератор (или панель).

     

    Пришла интересная мысль. При наличии RailCraft может ли робот поставить зарядник, конвертер и Clockwork Engine, а далее заряжать сам себя периодически "подкручивая" пружину двигателя? 

    • Нравится 1

  3. С черепашками проще - нашел лавовое озеро, сбегал на угле и заправился на год.

    С роботами сложнее. Нужно целую базу строить что бы их заряжать. Но думаю тоже возможно.

    Насчет лавы не уверен, но ездить на любом горючем материале или заряжаться от солнца могут и роботы. Им тоже не нужна база.

     

    А вот реализация более сложной системы, когда роботы воспроизводят себя, на черепашках будет действительно проще. (С тех пор как роботы собираются не на верстаке, а в сборщике, который требует для работы внешний источник энергии.)

     

    Чтобы упростить задачу, можно изменить стартовые условия и включить в минимальный "набор для захвата мира" сборщик и угольный генератор.  :D

    • Нравится 1

  4. Все здорово осложняется необходимостью иметь источник энергии.

    Самодостаточный "Скайнет" будет вынужден практически повторять путь развития обычного игрока в Майнкрафт (а ГрегТех дополнительно осложняет этот процесс).

    • Нравится 1

  5. Судя по всему, тебе нужен API redstone (или, кратко - rs).

    Описание здесь - http://computercraft.info/wiki/Redstone_(API)

    Краткий перевод здесь - http://minecraft-ru.gamepedia.com/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Xytabich/ComputerCraft/API/Redstone

     

    Делаешь примерно такую программу:

    while true do
      event = os.pullEvent("redstone")  -- ждем сигнала
      if rs.getAnalogInput("left") == rs.getAnalogInput("right") then
        rs.setOutput("top", 15)    -- если сигналы слева и справа совпали по силе - шлем сигнал вверх
      end
    end

    Там есть три набора функций:

    redstone.getInput - возвращает просто true/false если есть/нет сигнала с заданной стороны

    redstone.getAnalogInput - возвращает числовое значение от 0 до 15

    redstone.getBundledInput - для работы с пучками проводов RedPower

    Используй какой нужен.


  6. немогу понять как работает лифт Totoro,(при выборе этажа должны загоратся красные камни на нужных этажах? или как-то по другому ?)

    у меня почемуто не загораются красные камни

    Не думал, что кто-то серьезно будет строить его, поэтому не сделал удобного интерфейса для настройки  :D

     

    Лифт строится так: делается рельса, этажи.

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

    С тыльной стороны ставится компьютер, а его монитор используется как монитор первого этажа.

     

    Скачиваем на него программу Elevator, изменяем константу TRACK_SIDE в начале. Она обозначает в каком направлении на рельсу будет подаваться сигнал редстоуна на этажах. Может принимать значения north, south, west и east (или back, front, right и left соответственно).

     

    Далее надо сохранить и запустить на этом компьютере программу Elevator (должна появиться зеленая менюшка с одной кнопкой).

     

    Теперь можно подключать этажи. Каждый этаж - это пара монитор и красный контролер (красные блоки на скриншотах сверху). Их можно соединить одним длинным кабелем с компьютером, который стоит внизу.

     

    Хитрость в том, что этажи надо подключать поочередно. Чтобы они не перепутались в программе. 

    Сначала первый контроллер и монитор (они создадут кнопку "2" в меню), затем следующие контроллер и монитор (в меню появится кнопка "3") и т.д.

     

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

     

    Все, осталось оторвать клавиатуру от самого первого монитора - и можно пользоваться. По клику на кнопке, контроллер соответствующего этажа выдаст сигнал на ту сторону, которая обозначена в начале программы константой TRACK_SIDE и вагонетка передвинется.


  7. Я правильно понял, теперь что бы включить новый компьютер одной OP-дискеты не достаточно? Нужно еще Lua BIOS EEPROM. Или можно загрузиться только с EEPROM?

    Чтобы загрузить стандартную OpenOS - да. Нужен Lua BIOS (или свой чип выполняющий аналогичные действия).

     

    С одного только EEPROM тоже можно загрузиться. Если написать свой. (Я в блоге писал про особенности программирования EEPROM'а). Всю нужную функциональность надо будет тоже самому описать в коде (не больше 4 Кб, если больше - надо выносить код. На дискету (как делает OpenOS) или подгружать из сети).

    Например надо будет забиндить видеокарту к монитору, иначе не будет видно изображения.


  8. ...

    Не удивлюсь, если в ОС завтра появиться встроенный БиолокRFID cards, Cryptographic accelerator, Speaker, свои сортировщики предметов такие как в MiscPeripherals, анализаторы гейтов и прочее. А возможно даже скоро в ОС появиться свой встроенный термоядерный реактор и молекулярная сборочная крафтящая машина. B-)

    ...

     

    Так что ОС - это аля-солянка всего что есть, скажем так, единый универсальный компьютерный мод, в котором скоро будет все, возможно даже свои мобы и картошка Фри. Так что все там будет хорошо, я думаю.

     

    Пока что в ОС нет ничего лишнего. :)

    Я не думаю, что автор будет изобретать свой ТЯР.  Ибо во-первых мод просто поддерживает интерфейсы к уже существующим тярам. А во-вторых мод придерживается простых правил - если есть моды на энергию - они могут быть подключены к компьютерам. Если играешь без модов на энергию - компьютеры энергии не требуют.

     

    Всякие добавляемые плюшки просто расширяют охват "компьютеризации". Чтобы компьютер был не просто фиговиной, которую зачем-то строят серверные фрики, а полезной и интересной вещью. (Моя точка зрения.)

     

    P.S. А свой моб есть - дрон. :D

    • Нравится 1

  9. А есть ли возможность ОС-компьютер включить в Craftnet?

    СС-компьютер подключается по Craftnet к ОС-компьютеру. То подключается к мосту и регистрирует канал с именем, совпадающим с адресом СС-компьютера. Может ли такой ОС-компьютер обслуживать несколько клиентов?

    Мне нужно разобраться с подключением к CraftNet из OC. Думаю, особых проблем не будет.

    Что касается нескольких клиентов: программа может авторизоваться несколько раз, с разными ключами. Но, она не сможет отсортировать приходящие сообщения. Мост не уточняет для какого ключа сообщение (или от какого). Поэтому они будут просто приходить кучей, со всех ключей.

     

    Особенно порадовала строчка 93 :lol:

    :)


  10. Ну так теперь надо мост CC-OC делать.

    Это несложно. Получится примерно такая программа:

    local event = require('event')
    local br = require('bridge')
    local modem = require('component').modem
    
    local PORT = 27
    
    modem.open(PORT)
    
    local ready = false
    ready = br.init()
    print("Подключение: ", ready)
    if not ready then
      print("[ОШИБКА] Не удалось установить соединение с мостом. Проверьте наличие интернет платы!")
    end
    
    io.write("Введите ключ: ")
    local key = io.read()
    ready = br.auth(key)
    print("Авторизация: ", ready)
    if not ready then
      print("[ОШИБКА] Не удалось авторизоваться с выбранным ключем!")
    else
      print("Авторизация успешна.")
    end
    
    print("Нажмите любую клавишу для выхода.")
    
    while ready do
      br.pull()
      name, data = event.pull(0.5)
      if name == 'key_down' then break
      elseif name == 'socket_message' then
        modem.broadcast(data)
      end
    end
    
    modem.close()
    br.finish()
    print("Трансляция завершена.")
    

  11. Дааааа. дроны, это что-то веселенькое, интересное и крутое. Я так понял они летят по  кратчайшему пути между двумя точками, а не так как роботы и черепахи?

    Похоже на то.

     

     

    И их можно использовать, как доставщиков предметов и жидкостей кому-то? Или они только пока зверей на веревках таскают? И по сундукам они не шаряться чужим?

    Да, они умеют вещи и жидкости таскать.

    Насчет чужих сундуков - надо тестить, тестить! =)

    Вообще - это же идеальный робот шпион. Пролез в форточку, пошарился по сундукам и смылся. И все на дистанционном управлении.

     

    Своя программа есть. Она на его EEPROM пишется. Там в видео видно.

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

    Радиус связи тоже надо потестить.

    • Нравится 1

  12. Итак, близится Новый Год. Что нас ждет в очередном пре-релизе?

    OpenComputers Version 1.4.3 Beta 1

     

    Автор обещает подробный чейнджлог чуть позже, а пока - кратко о самом главном:

    • Добавлено: Микроконтроллер 2 уровня. Это означает, что вы сможете поставить в него более мощные детали. (Возможно даже красную плату 2 уровня, которая умеет работать с многожильным редстоуном. =) Прим. Totoro)
    • Добавлено: Дроны!
    • Добавлено: Апгрейд-поводок. (Или "лассо", как вам больше нравится. Прим. Totoro)
    • Изменено: Переписано изрядно внутренней роботической логики. Чтобы она подходила и дронам.

     

    Drones? Drones!

    Дроны для роботов - это как микроконтроллеры для компьютеров. Они более ограничены, но зато - дешевле. И имеют другие возможности. В частности: они представляют из себя "существа" (Entity), что дает им новые возможности по взаимодействию с миром. (Он умеет летать сквозь двери, йуххууу!  Прим. Totoro) Пока, это используется только для одной цели - апгрейда-лассо. Он позволяет дрону заарканить животное и таскать его его повсюду за собой.

    Дроны не умеют переключать рычаги, ломать или ставить блоки, также как и использовать предметы или инструменты. Они - что-то вроде всем известных почтовых голубей.

     

    Вот здесь вы можете посмотреть на дрона, на то, как он выглядит, и что он умеет:

     

    Также обновилась документация на http://ocdoc.cil.li/, а я скоро подтяну статьи на gamepedia.

     

     

    Beta?

    Да. Автор будет рад, если вы поможете ему с тестированием всего добавленного. В особенности - роботов (взаимодействие с инвентарем/сундуками и цистернами/жидкостями), микроконтроллеров (обоих уровней) и дронов.

    Все найденные проблемы отправляйте сюда: https://github.com/MightyPirates/OpenComputers/issues

    Или на английский форум: http://oc.cil.li/index.php?/index

    Автор заранее благодарит вас.

    • Нравится 2

  13. В итоге получилось вот это:

     

    Ты удалил строки

    if type=="motion" and nick==prnick and pass==(z<0) then
              wait=false; print("passed at "..x..y..z) end
    

    которые закрывали дверь раньше, чем истекут 5 секунд, если игрок уже прошел через нее.

     

    И поменял местами строки

    break
    os.sleep(5)
    

    В результате команду os.sleep() программа пропускает и  нет задержки в 5 сек. после того как кто-то прошел.

     

    Странный баг был из-за того, что ты поменял условие на pass=(x>0) в одном месте, в в другом (тот кусок, который ты потом вырезал) - не поменял.

     

    PS. Я бы выкинул все "реквайры" в начало программы, и добавил бы брейк таймера в условие преждевременного выхода. :P


  14. Отличная штука, а  я думал на 1.7.10 ставить плагинчик

    И не понял, мод требует Forge 10.13.2.1236+ что ли?

    Да, похоже на то.

     

    И когда видно голограмку, только в очках?

     

    Да. Это "очки дополненной реальности". Терминал - центр. Он создает и управляет виртуальными объектами.

    Игроки биндят очки к терминалу, надевают - и видят виртуальный текст и объекты.

     

    Можно, например, написать программу мониторинга машин, цистерн и батарей. Бегаешь по дому, взглянул на машину - выкатывается оконко с инфой. Взглянул на цистерну - появляется другое окошко, показывает уровень жидкости. И т.д.

     

    Глянул на дверь - список всех, кто в нее входил :D


  15. 0dae77fa683bde0a44bfe27a611c6214.png

     

    Мод, который придется очень кстати - очки виртуальной реальности для OpenComputers!

    http://oc.cil.li/index.php?/topic/351-mc-1710oc-140-openglasses/

     

    (Скачивать здесь: http://starchasers.pl/OpenGlasses/doku.php?id=download)

     

    Помимо уже знакомых возможностей очков из OpenPeripherals (которые, к слову, поддерживаются в OC не полностью), как то:

     - рисовать перед глазами точки, линии, четырехугольники, а также писать текст разных размеров и цветов;

     

    Мод добавляет новые возможности:

    - виртуальные кубы, которые как бы дополняют мир (см. скриншот)

    - точки, линии и фигуры, которые тоже "находятся" в мире. (то есть ты можешь обойти вокруг них, к примеру)

    - текст, висящий в мире (наподобии ника над игроком)

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

    - функция, определяющая расстояние от игрока до виртуального объекта (чтобы скрывать объекты, от которых игрок далеко)

    - функция, которая устанавливает, видны ли виртуальные объекты сквозь реальные

     

    fetch.php?cache=&media=screen:sphere.png

     

    Чертовски интересная штука, этот мод.  :D   А что вы думаете?

    • Нравится 6

  16. OpenComputers Patch 1.4.2

    Итак, мод получает еще одно обновление и пару важных изменений:

    • Добавлено: EEPROM, содержит BIOS - код используемый для загрузки компьютера.
    • Добавлено: Блок микроконтроллера. Собирается в ассемблере (сборщике). Это очень ограниченный, одноблочный, не конфигурируемый компьютер для мелких задач (вроде контроля сигнала редстоуна).
    • Добавлено: RAID-блок. Хранит три жестких диска. Создает из них одну файловую систему, суммарного объема.
    • Изменено: В слот для дискеты в сборщике электроники (Electronic's Assembler) теперь нужно класть EEPROM. Это означает, что устанавливать ОСь роботу вы должны на жесткий диск (нельзя поместить дискету с ОСью в конструкцию, как раньше).
    • Пофикшено: физика блоков клавиатуры и кабелей, которая создавала проблемы движению.
    • Пофикшено: more.lua - некорректная обработка длинных строк.
    • Пофикшено: внутри-серверное сообщение передающееся другим не подсоединенным серверам. На этот раз действительно пофикшено. Кажется.
    • Пофикшено: ввод на планшетах работал только в том мире, где планшет был запущен (и другие связанные с этим глюки работы).
    • Пофикшено: несколько мелких багов.

    EEPROM

    Что это такое, и зачем оно?

    Это новый предмет, который необходим всем девайсам - компьютерам, серверам, роботам, планшетам - чтобы с него загружаться. Он содержит часть кода, которая прежде была жестко вписана в сам мод. Этот код - первое, что загружает компьютер при включении. EEPROM может быть только один в каждом компьютере (в отличии от файловых систем). Стандартный Lua BIOS (который крафтится из EEPROM и книги) делает то же, что и раньше: ищет файловую систему с файлом init.lua и запускает его. Далее операционная система загружается как обычно.

    В то же время, это нововведение позволяет загружать компьютер с посторонних (даже не из OpenComputers) устройств. Например с кода переданного по сети. Или с ленточных кассет из Computronics.

     

    Чтобы избежать поломки ваших, уже существующих компьютеров, они все автоматически получат Lua BIOS EEPROM в новом EEPROM-слоте. Таким образом они смогут работать и загружаться как и раньше. А при создании новых компьютеров, вы уже будете должны установить его сами.

     

    EEPROM может быть перепрограммирован через его компонент. Поместите EEPROM в работающий компьютер, и используйте команду component.eeprom.set(newCode) или воспользуйтесь новой программой flash.lua в OpenOS (переустановите систему, если необходимо, чтобы эта программа появилась).

     

    Microcontrollers

    Это экономичные, очень простые компьютеры. Они не могут подключаться к внешним компонентам - как и роботы - и даже не имеют видеокарты. Также у них нет файловой системы. Программирование микроконтроллера осуществляется исключительно через программирование EEPROM встроенного в него! (Думаю будет уместен термин "прошивка" =). прим. Totoro) Чтобы сделать этот процесс немного легче, у вас есть возможность совместить на верстаке готовый микроконтроллер и новый EEPROM, чтобы заменить на него старый EEPROM, внутри микроконтроллера. (Так меняются карты в навигационном апгрейде).

     

    В отличии от корпусов компьютеров (case), микроконтроллеры сохранят всю свою начинку, если вы их сломаете. По сути, у них и нет никакой "начинки". Вы просто включаете и выключаете их на ПКМ.

    Они предназначены для простых задач (ткнуть в угол и забыть), ради которых не стоит собирать полноценный компьютер.

    Единственный минус пока - они не умеют работать с "многожильными" редстоун-проводами. Только обычный редстоун. Так что будьте креативными ;)

     

     

    P.S. Очень интересное обновление. Я займусь некоторыми экспериментами, а потом обновлю по возможности статьи на gamepedia.

    Обнаружите, что-то что я упустил - пишите, дополню.

    • Нравится 1

  17. Программа в первом посте -  это стандартная OpenComputers Dig, которая включена в мод (ее можно найти на  дискетах в сокровищнице).

    Написана Kenny, оригинал можно найти здесь: http://openprograms.github.io/

    Была залита анонимом (GravityFolls, я полагаю) на pastebin 1 декабря.

    • Нравится 3

  18. Использовать OpenComputers!!!

    Там и мониторы имеют большее разрешение!

    В OpenComputers под 1.6.4 многоблочные мониторы тоже "гасят" изображение, когда смотришь на них "краем глаза".

    Мы установили это, когда тестировали тир (экран 6х8), возле моего дома.

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