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

serafim

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

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

  • Посещение

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

    46

Все публикации пользователя serafim

  1. serafim

    quarry карьер

    обнова, робот будет принтить причину непреодолимого препятствия, ссылка таже что то типа причина возврата: entity, block и т.д. @van2614 если можешь, обнови прогу и отправь в соседний чанк чтоб робот вернулся с ошибкой, думаю многим будет интересно что там происходит, а может и найдём решение
  2. serafim

    quarry карьер

    В принципе можно добавить в код, но не знаю насколько полезна будит эта инфа
  3. serafim

    quarry карьер

    Похоже что сервер грузит меньше чанков чем хотелось бы, отсюда и застревания Выдержка из вики
  4. serafim

    quarry карьер

    Я рад что это помогло, и то что ты поделился решением с остальными, но думаю не всё так просто. Робот это часть сервера, если сервер лагает (пропускает тики) , то и робот тоже. То что робот выполняется на сервере можно заметить дав ему чанк-лоадер, робот будет работать и без присутствия игрока. @van2614 Если не сложно, можешь поменять значение с 10 на 1 и понаблюдать куда именно он там упирается, скриншот приветствуется
  5. serafim

    quarry карьер

    Уф, это прям плюс минус километр, так робот никуда не доедет А вот эта идея интересная Вместо очень примерных замеров, можно сделать "режим паника" Сначала делать замер износа инструмента только в начале и в конце линии, и в случае износа меньше определённого значения (например 20%) проверять износ при каждом движении, да это не так эффективно, но робот точно не застрянет
  6. serafim

    quarry карьер

    вот этот конфиг по умолчанию Игрок расходует кирку со значением 1 а вот робот 0,1 Например прочность железной кирки = 251, игрок сломает 251 блок, а вот робот по замерам может и 500 блоков сломать Видимо придётся делать примерный замер на сколько расходуется инструмент за удар, так как делал doob
  7. serafim

    quarry карьер

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

    quarry карьер

    пока без изменений, с частой проверкой прочности if r.durability() == nil or r.durability() <= 0.03 then А вообще протестирую, какой вариант лучше будет, но судя по расчётам то без изменений if r.durability() == nil or 100*r.durability() <= length*3+length then robot.durability() возвращает дробное значение от 1 до 0 в виде 0,950 , 100 - это округление к 95 (возможно надо до 1000) length*3 длина линии Х в три ряда +length запас прочности на манёвры, в принципе можно поставить 16 (тут надо тесты) в общем это не финальный вариант для расчётов
  9. serafim

    quarry карьер

    В итоге пришёл к такому коду, для проверки хватит ли выкопать линию Ну ок, пусть будет как есть
  10. serafim

    quarry карьер

    Если подумать, то весь объём мне не требуется вычислять, достаточно знать сколько блоков в линии (х), и хватит ли инструменту прочности чтоб эту линию выкопать к примеру: x = 16 durability = 1500 w_r = x*3/durability+16 *3 потому что в одной линии 3 ряда блоков +16 запас на манёвры, но лучше использовать значение (х) чтоб наверняка докопать или сделать сравнение if durability > x*3+х then
  11. сервер на стадии теста, играть не получится и да, странно но ланчер не доступен
  12. serafim

    quarry карьер

    Проверил все правки, залил обнову, ссылка таже Теперь алгоритм копания и движение немного эффективней работает Бур в режиме 3х3 баги не вызывает, но движение робота под этот режим копания не заточен, робот будет делать лишние повороты
  13. serafim

    quarry карьер

    вроде всё отладил, завтра протестирую, если всё норм выложу меня беспокоит ещё один момент, можно ещё немного ускорить копание убрав постоянную проверку инструмента 404 tool() в гео-копалке @Doob использован интересный метод, работающий на тёмной магии надо бы поколдовать на досуге
  14. serafim

    quarry карьер

    тут кстати норм, копание и навигация раздельно работает (так робот не делает лишних поворотов, да и мне так проще)
  15. serafim

    quarry карьер

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

    quarry карьер

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

    quarry карьер

    я думаю можно поступить проще, если условие if r.detectDown() and not r.swingDown() then срабатывает, проверяем его три раза, и тогда окончательно делаем вывод что это бедрок. в случае бура 3х3 оно выполнится только один раз, если внизу бедрок, то все три.
  18. serafim

    quarry карьер

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

    quarry карьер

    На данный момент определение бедрока сводится к одному условию if r.detectDown() and not r.swingDown() then status("низ достигнут !") bedrock = true end Если робот видит под собой блок, но не может его сломать, то это бедрок Вообще работает безотказно на всём инструменте. как оказалось не на всём Бур в режиме 3х3 не возвращает информацию, сломал он блок или нет в итоге беда, робот считает что он уже возле бедрока, и это последний слой который нужно выкопать Тут можно попробовать иной подход, после взмаха смотреть изменился ли инвентарь, хотя бы просто ловить событие "inventory_changed" В общем можно попробовать
  20. serafim

    quarry карьер

    бур в режиме 3х3 ? Вот, это уже лучше, развернулся потому что последний раз при копании карьера смотрел в сторону сундука А вот сломать сундук он не должен был, возможно остаточная команда Ок, так будет проще найти косяк Или как вариант перед спуском разворачивается в сторону карьера, в общем навигация на доработку, помойму это уже в 4й раз
  21. serafim

    quarry карьер

    подобная конструкция используется ещё с computercraft с черепашек это из серии работает, не лезь но это не значит что не нужно искать более оптимальный вариант 1 если робот не может идти вперёд ( значит что-то ему мешает (блок,моб,игрок) ) - атакуй 2 если робот не может атаковать или разрушить блок (значит перед роботом пусто) - идём вперёд В первом случае робот будет максимально быстро идти, пока во что-то не упрётся, затем атакует и пойдёт дальше Во втором случае робот будет махать киркой а затем идти, не важно есть там что-то или нет Возможно верным решением будет смотреть если перед роботом что-то, а затем пробывать идти чтото типа этого, а ещё лучше вывести функцию while true do if r.detect() then r.swing() elseif r.forward() then xPos = xPos - 1 break end end
  22. serafim

    quarry карьер

    С рельсами пока не понятно для теста извоял прогу робот спокойно ломает рельсы, попробую поискать шахту Бур в режиме 3х3 действительно вызывает баг, из за того что робот видит блок под собой, а его уже нет исправлю изменив обнаружение бедрока По всей видимости нет улучшения парения без него он не сможет двигается над пустотой пожалуй добавлю в статус вместо "непреодолимое препятствие" что-то типа "не могу подняться" а ещё лучше каким то образом проверять наличие улучшения тут посложнее, бум искать
  23. serafim

    quarry карьер

    рельсы кстати в отладки не участвовали, возможно с ними есть подвох тут явно подвох с определением бедрока а вот этого он делать не должен, похоже функция goto() шалит @van2614 спосиб за инфу, попробую отловить баги
  24. На просторах github можно найти полную копию MineOS с приложениями, правда им 300 лет, но инфо панель там работает Ссылку на репозиторий выкладывать не буду(если только очень надо) поскольку там всё давно устарело. Сделал Fork (воскресить приложение для MineOS обращайтесь к @ECS) отвязал от MineOS(по другому никак), также тут нет двойной буферизации, выпилил кучу посторонних библиотек, оставив прежний функционал Чтобы скачать нужна интернет карта установка pastebin run 9fYvnz1L download В папке Pages будут страницы для настройки в виде текстовых документов запускать набрав info добавлен пример отрисовки случайно-сгенерированной картинки test_image создавать картинки с помощью этой проги https://github.com/IgorTimofeev/OCIFImageConverter/releases/tag/1.0.0 Чтобы добавить картинку, в папке Pages, в текстовых страницах пишем <image>1.pic</image> Тег <image>Путь к картинке</image> Также в текст добавляем пустые строки, столько, сколько занимает картинка, например 1.pic занимает 10 строк или получим пропуски отрисовки заполненные текстом
×
×
  • Создать...