Перейти к публикации

Doob

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

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

  • Посещение

  • Дней в лидерах

    74

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


  1. На старой версии светлая тема была норм.

    Кнопки в шапке норм, но немного сливаются с фоном, можно было бы их оживить цветом. Или вообще стиль переделать.

    Блок чата вообще расползается, я долго не мог понять, как в него писать. Обе темы вырвиглазные, но светлая еще и кислотная.

    Все блоки слишком массивно смотрятся, на oc.cil.li визуально тоже самое, но выглядит аккуратней.

     

    Надо глядеть на другие игровые проекты, сделать такой дизайн, какой ожидают увидеть потенциальные игроки. А то сейчас человек попадает сюда, а тут какой-то потусторонний даркнет.

     

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

    Или текстуры для контента, чтобы не платить $30 за новую тему, а проапгрейдить текущую.

    • Like 1
    • Thanks 1

  2. Опечатка тут: gpu.setForeground(cf) аргумент приходит cF

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

    • Like 2

  3. В коде есть переменные, которые можно настроить.
    chunks - сколько чанков нужно обработать
    min и max - минимальная и максимальная твердость добываемых блоков
    port - порт для взаимодействия с роботом (если установлена беспроводная карта)


  4. Скачал демку, все работает идеально. Как я и предполагал, есть артефакт склейки, по осям X и Z координаты 111, -112 (т. е. мир квадратный) но артефакт незначительный - просто не рендерится рука и предмет в ней.

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

     

    Падал в туннель.

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

     

    P.S. Однако, находясь на шве мира, нельзя взаимодействовать с блоками, которые находятся на другой стороне. Если с одной стороны блока нет, а с другой есть, то на грани не рендерятся текстуры и вся планета видна насквозь.


  5. 1 час назад, vx13 сказал:

    getAllStacks и getAllStacks().getAll() по-разному работают на разных версиях MC

    На 1.7.10:

    • индексация  массива из getAllStacks().getAll()  начинается с 0, а не с 1.
    • getAllStacks().getAll()[slot] для пустого слота возвращает пустую таблицу, а не таблицу с «воздухом»
    • getAllStacks()[slot] для пустого слота возвращает nil, а не таблицу с «воздухом»

    Понял, исправлю.

     

    Отвечаю по порядку.

    3 часа назад, Appo сказал:

    Чем обусловлен длительный переход между чанками?
    Как продумана система взаимодействия с труднодобываемыми блоками? (обсидианом/досками в шахтах) Копает или обходит?
    Исключена ли возможность застрять роботу в пористой структуре бедрока? Так как при калибровки в новом чанке он опускается вниз до бедрока и, как мне кажется, из за неоднородности по высоте может опуститься ниже.
    Оправдала ни схема, при которой робот отвязывается от привязки к чанкам? И тогда уже потом добавлять ограничения по чанкам в N диапазоне, если есть необходимость.

    Как мне кажется задача состоит в минимизации времени добычи, и если произвести изначальное сканировании территории, и определить места жил как ноды, то задача превратится в задачу Коммивояжера с возвращением в исходную точку, или же до станции зарядки или склада, с обходом препятствий и учетом условий заряда батареи/прочности инструментов/размера хранилища и т.д.

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

    По дефолту обсидиан вне области видимости, доски не проблема.

    Площадь сканирования 16x16 блоков, бедрок хорошо обнаруживается, а если не обнаруживается, то робот не застрянет.

    В программе можно настроить, сколько чанков добывать.

     

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

    Но я сделал проще и быстрей, подход не идеальный, но очень хорошо оптимизирован при помощи практических тестов.


  6. lVIijDy.png

     

    Представляю вам опять программу для робота, которая позволяет добывать руду, не лазая по пещерам. Робот, используя геолизер, может самостоятельно находить и добывать руду.

    Реализованы еще не все возможности, поэтому прошу тестировать и сообщать мне о багах.

     

     

    Требования:

    • Корпус компьютера (уровень II или III)
    • Апгрейд инвентарь (больше - лучше)
    • Апгрейд контроллер инвентаря
    • Жесткий диск
    • EEPROM с прошитым Lua BIOS
    • Геосканер
    • Память (уровень I или выше) 
    • Процессор (любой)
    • Апгрейд полета (I уровень)
    • Алмазная кирка или аналогичный инструмент.

     

    Опционально:

    • Апгрейд верстак
    • Беспроводная сетевая карта
    • Апгрейд батарея
    • Апгрейд опыта
    • Апгрейд чанклоадер
    • Апгрейд генератор
    • Эндерсундук из мода EnderStorage

     

    Установка:

    • Скачать и сохранить файл как init.lua
    • wget https://raw.githubusercontent.com/DOOBW/geominer/master/miner.lua init.lua
    • Закинуть этот файл в корень диска.
    • Добавить диск при сборке робота.
    • Установить робота на платформу из твердых блоков.
    • Дать роботу кирку.
    • Поставить возле робота контейнер и зарядник.
    • Нажать кнопку питания и наслаждаться процессом.
    • Like 6

  7. Тут весь фокус в том, что нет реальных торов и сфер. Есть плоскость, которая модификацией рендера выглядит как сфера.

    Я даже могу реализовать похожий эффект при помощи OpenComputers, если можно получить эффект этого рыбоглазного искажения.

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

     

    Я давно хотел сделать кое-что подобное, там игрок мог бы перемещаться по гиперграням тессерактов, сложенных в какую-нибудь фигуру. Получался бы трехмерный лабиринт, заключенный в четырехмерный. Для игрока это выглядело бы как приключения из фильма Куб. Но все уперлось в малое быстродействие телепортера. Телепортация дебагой занимает минимум два тика, это очень режет глаз, поэтому без специально созданного мода, красивой иллюзии не добиться. И я отказался от этой затеи.


  8. Нужен мод на рендер и генерацию.

    Разделить платформу на две части, свернуть перпендикулярно самой себе. Надо только понять, как рендерить место склейки платформ и скрыть переходы. Локальная система координат никак не изменится.

    • Thanks 1

  9. Есть такое, OpenPython называется. Но клепает его один человек, поэтому похвастать нечем. Работает кое-как, даже стабильной версии нет, годится только для микроконтроллеров.

    Где-то еще встречал упоминания о питоно-подобном процессоре для опенкомпов, но сейчас найти не могу.

    • Like 1

  10. Странно, у меня личные сообщения нормально обрабатываются.

    Флаг для логирования можно тоже сунуть в конфиг.

    Конфиг следует сделать в виде lua-таблицы - быстрей и меньше кода.

     

    Изначально все задумывалось как программный модем между компами. Логин для NickServ и прочие изощрения поверх стандарта, пользователь должен был организовывать в своей программе. imodem это всего-лишь интерфейс, совместимый с OpenOS.

    Хотя, да не сделал пинг в сторону сервера, каюсь.

    • Like 1

  11. Тут какое-то сильное колдунство.

    В 1.7.10 чанки дюпают это всем понятно, но в данном случае программа должна выполняться дальше, даже после сотни дюпов. Я немного не понял, как будет вести себя computer.uptime() после отката чанка, вроде-бы оно привязано к времени всего мира. Но в любом случае, назад оно не пойдет.

    Надо повесить хук и при очередном таком баге отловить значения computer.uptime() и timestamp в основном цикле до проверки.


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


  13. Недавнo завезли нескoлькo нoвых функций.

    canSeeSky():boolean - вoзвращает true, если виднo небo. Прoзрачные блoки, стекла, крoвати не мешают, а ступеньки и пoлублoки считаются непрoзрачными.

     

    detect(стoрoна:number):boolean, string - кoпия функции component.robot, прoверяет наличие блoка с указаннoй стoрoны. Вoзмoжные варианты выдачи:
    (false, 'air') - пустo, блoк вoздуха.
    (false, 'replaceable') - есть блoк, кoтoрый мoжнo сдвинуть этo цветы, трава, лианы (пoка неизвестнo, как будет пoсле апдейта MC1.14). В приватах мoжнo считать за true, т. к. рoбoтoм лoмаются тoлькo кактусы.
    (false, 'liquid') - блoк жидкoсти, текущая жидкoсть
    (true, 'solid') - есть твердый блoк.
    (true, 'entity') - какая-тo сущнoсть.
    (true, 'passable') - блoк, через кoтoрый мoжет хoдить сущнoсть - флаг, кувшинка, паутина, пoртал и т. п. Некoтoрые блoки имеют нескoлькo сoстoяний, например, дверь и люк в oбoих solid, а вoрoта тoлькo закрытые.

     

    store(стoрoна:number, адрес_БД:string, слoт_БД:number):boolean - сoхранить блoк с указаннoй стoрoны в базу данных.

     

    isSunVisible():boolean - вoзвращает true, если пoгoда ясная, вo время дoждя или грoзы - false

    • Like 5

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

×