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

hohserg

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

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

  • Посещение

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

    37

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


  1. Получается, лучше не предлагать решения, которые приведут к удалению ОС с сервера? В частности, не предлагать решение, которое выглядит как "программа воспроизводит любое количество реакторов полностью автоматически, от юзера требуется только указать точки, где строить и закинуть необходимые компоненты во входной сундук" ?

    Почему я об этом задумываюсь:

    • если нельзя не строить очень много реакторов, то лучше полностью автоматизировать процесс, потому что это гринд, а не интересная игра
    • строительство кучи реакторов приводит к повышению нагрузки на сервер и автоматизация процесса может усугубить ситуацию

    Если кто-то считает, что утверждения выше не истинны, пожалуйста, покажите почему они не истинны. А до тех пор:

    Это две истины, противоборствующие за выбор "автоматизировать или нет?"

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

    • Грусть 1

  2. В 04.12.2020 в 10:47, eu_tomat сказал:

    Что ты имеешь в виду, говоря "заранее"?

    До того, как он поедет размещать схемы в реакторах.

      

    В 04.12.2020 в 10:47, eu_tomat сказал:

    При таком подходе появляется риск сказать, что робот "заранее" все сделает

    В данном случае имеется ввиду использование инкрементального вычисления результата на основе результата предыдущего вычисления вместо повторных вычислений с нуля.

    Уменьшить числа в таблице быстрее, чем заново просканировать инвентарь. И это даст одинаковые результаты при условии, что на инвентарь робота не производится иного влияния кроме извлечения предметов самим роботом.

     

    ~~~

    Т.к. количество реакторов ограничено - 81 - то не имеет смысла делать схему расстановки супер-быстрой. Достаточно сделать ее автономной и быстрее, чем ручное раскладывание. В конце концов, обсуждение задачи продолжается уже второй день. за 48-18 часов(с учетом еды и сна) можно было уже заполнить все реакторы, тратя на каждый реактор по ~20 минут. Однако это скучно и поэтому мы здесь собрались и обсуждаем эту задачу.

    В 04.12.2020 в 10:47, eu_tomat сказал:

    параллельно тому, как игрок закидывает компоненты в инвентарь робота.

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

    Я не знаю, как интересно и как не интересно проводить время @demongts1998, но разве это не часть скучного гринда? Вроде бы это должен делать робот: кататься до стартового сундука и пополнять свой инвентарь. Или дрон, который бы заменил в этой скучной работе игрока

    • Грусть 1

  3. 7 часов назад, eu_tomat сказал:
    • 0.05 сек на считывание стака

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

     

    7 часов назад, serafim сказал:

    0,33 секунды

    Вероятно, это сделано транспозером? Вроде бы, транспозер, перемещающий предмет за один тик должен потратить минимум 54/20=2.7 сек

    • Грусть 1

  4.  

    В 02.12.2020 в 17:14, eu_tomat сказал:

    В схеме с двумя роботами робот-установщик выполняет одно действие каждые 8 тиков. Робот-добытчик на протяжении этих 8 тиков делает один успешный взмах киркой за 3 тика, а оставшиеся 5 тиков тратит на бесполезные взмахи киркой. Получается 5 бесполезных действий на каждые 8 тиков или на каждый обработанный блок руды.

    Как были произведены такие точные измерения?


  5. 2 часа назад, eu_tomat сказал:

    Хорошая идея, но запоздалая. Если описанный выше эксперимент воспроизводится, то схема с двумя точками установки блоков лишается смысла.

    Не очень понял. В чем состоит эксперимент?


  6. А что, если сделать такую схему: красный робот ставит зеленые блоки перед собой и под собой, а синий ломает перед собой и над собой?

    pz2MswP.png

    В то время, как синий ломает один блок, красный будет занят установкой другого. Таким образом, время процессинга двух блоков будет сокращено до max(placeTime*2, digTime*2), что лучше, чем в схеме с одним местом установки блока - 2*(placeTime+digTime)


  7. Сделал для ОС поддержку любых http-методов. Чтобы всякие веб сервисы использовать полноценно.

    https://github.com/MightyPirates/OpenComputers/pull/3374

    Есть одна проблема - не получается заюзать через apache http прокси из MinecraftServer.getServer.getServerProxy.

    Кто шарит, помогите, плиз.


  8. Обнова!

    Теперь интернет-карту нужно установить только в компьютер сервера HoverHelm - еще меньше требований железа, еще дешевле юз!

     

    Для обновления скачайте дополнительную библиотеку HoverHelm: wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/player-monitoring/home/lib/hoverhelm/addition_radar.lua /home/lib/hoverhelm//home/lib/hoverhelm/addition_radar.lua 

    И обновите программу радара https://github.com/hohserg1/OpenComputersPrograms/blob/master/player-monitoring/radar.lua

     

    Теперь гитхаб токен хранится в addition_radar.lua, поэтому программу радара можно положить в папку ядра

     

    Большое спасибо @nikitaaaaa за тестирование программы на продакшене в боевых условиях

    • Нравится 1
    • Спасибо 1

  9. PlayerMonitoring - программа мониторинга посещения игроками некой области. Это может быть ваша база или какое-то другое интересующее место.

     

    Позволяет

    • сканировать область на наличие игроков раз в N секунд
    • выводить список игроков на монитор
    • выводить список игроков на гист
    • уничтожает gist id и токен авторизации гитхаба при приближении опасных игроков ближе чем на 20 блоков - чтобы сохранить логи
    • поддерживаются радар из Computronics и детектор сущностей из OpenSecurity

     

    Githubhttps://github.com/hohserg1/OpenComputersPrograms/tree/master/player-monitoring

     

    Видео-демонтрация

     

    Текстовая инструкция по установке

    1. Это программа для HoverHelm, поэтому сначала нужно установить HoverHelm-сервер (pastebin run xh61Yx8a)

    2. Далее установите сканирующее устройство(их можно сделать несколько)

        Его минимальная конфигурация(на основе сервера 1 тира):

    minimal%20radar%20configuration.png?raw=

    3. Подготовьте для него eeprom (командой prepare_eeprom <device name> modem <port>) и убедитесь, что устройство коннектится к серверу

    4. После скачайте radar.lua (wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/player-monitoring/radar.lua radar.lua)

        radar.lua должен лежать в папке programs конкретного устройства

    5. В начале файла есть секция конфигурациии, настройте в ней gistId и githubToken, если хотите выгружать логи на гист.

        Подробнее про конфигурацию гиста:

    Скрытый текст

    1. Создайте аккаунт GitHub, если еще нету

    2. Посетите https://github.com/settings/tokens

    3. Сгенерируйте новый токен с единственной включенной опцией gist

    help1.png?raw=true

    4. Скопируйте и вставьте токен в radar.lua

    help2.png?raw=true

     

    5. Создайте новый гист(New gist)

    3uQ8ttx.png

    6. Последний сегмент его url - это gistId, скопируйте и вставьте его в radar.lua

    peHtUrR.png

    6. Запустите программу из терминала HoverHelm командой your device name>radar

        Также можно настроить автозапуск. Для этого:

    7. Скопируйте дефолтный конфиг из /home/hoverhelm/device_core/lib/config.lua в /home/hoverhelm/devices/<device name>/lib/config.lua

    8. Установите опцию autorun в конфиге устройства на значение "radar"

    • Нравится 4
    • Спасибо 1

  10. 8 часов назад, ProgramCrafter сказал:

    Создать компонент "лампа", светящийся при сигнале красной пыли.

    А потом все остальные компоненты редстоуна.

    А потом весь  остальной контент майна

    А потом forge, чтобы можно было эмулировать работу с модами

    А потом... Упс, кажется, это уже не эмулятор

     

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

    • Нравится 2
    • Ха-ха 1

  11. Обнова!

    Теперь есть инсталятор и апдейтер, процесс установки существенно упростился.

    Для сравнения

    До

    Скрытый текст

    Установка сервера:

    1. Установите OpenOS
    2. Создайте папку /home/hoverhelm/
    3. Загрузите в нее файл https://raw.githubusercontent.com/hohserg1/HoverHelm/master/server/home/main.lua
    4. Создайте папку /home/lib/hoverhelm/
    5. Загрузите в нее все файлы из https://github.com/hohserg1/HoverHelm/tree/master/server/home/libs/hoverhelm
    6. Откройте /home/lib/hoverhelm/config.lua для редактирования
      1. Добавьте желаемые к использования сетевые и связанные карты по образцу
      2. Можно настроить пути расположения пользовательских папок  и папки клиентского ядра
    7. Создайте папку ядра устройств(по умолчанию /home/hoverhelm/device_core/)
    8. Загрузите в нее файлы из https://github.com/hohserg1/HoverHelm/tree/master/core

    Установка клиента:

    1. Загрузите в /home/hoverhelm/ файл https://raw.githubusercontent.com/hohserg1/HoverHelm/master/eeprom-client/primary-eeprom.lua
    2. Откройте /home/hoverhelm/primary-eeprom.lua для редактирования
    3. Если устройство будет использовать сетевую карту, то замените строку ---[[#if_def tunnel на --[[#if_def tunnel
    4. Если устройство будет использовать связанную карту, то замените строку ---[[#if_def modem на --[[#if_def modem
    5. Прошейте свободный EEPROM: flash -q primary-eeprom.lua <deviceName>
    6. Если устройство будет использовать сетевую карту, то
      1. Откройте интерпретатор lua
      2. Запишите в eeprom.setData адрес сетевой карты сервера, порт и адрес сетевой карты устройства через ":"
        • eeprom.setData("server-address:111:device-address")
        • адрес сетевой карты устройства указывать необязательно, если имеется только одна сетевая карта

    После

    Скрытый текст

    Установка сервера:

    1. Установите OpenOS
    2. Выполнить команду pastebin run xh61Yx8a
    3. Отредактируйте открывшийся конфиг
      1. Добавьте желаемые к использования сетевые и связанные карты по образцу
      2. Можно настроить пути расположения пользовательских папок  и папки клиентского ядра

    Установка клиента:

    1. Запустите HoverHelm server
    2. Выполните команду prepare_eeprom <имя устройства> <адрес сетевой карты со стороны сервера или ее тип(если она одна)> <порт> <адрес сетевой карты со стороны клиента, необязательно если карта одна>

     

    Оптимизирован сетевой диск: появился файл конфигурации /frequentlyReadedFiles.txt, задающий список часто читаемых файлов. Контент этих файлов отправляется устройствам на ранней стадии инициализации без запросов со стороны устройств. Когда устройству в дальнейшем нужно будет прочитать этот файл, то вся необходимая информация уже имеется локально и не требуются вызовы сетевой карты.

    Время инициализации снижено с 5.5сек до 3.5сек. А время второй и последующих инициализаций снижено до 2.9сек благодаря сохранению кэша файлов во временной файловой системе.

     

    Добавлена программа lua repl - можно в интерактивном режиме выполнять код на устройствах

    NxIokIR.png

     

    Добавлена серверная команда about - краткое описание, ссылки, версия и благодарности

     

    • Нравится 6
×
×
  • Создать...