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

Поиск по сайту

Результаты поиска по тегам 'Робот'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123
  • mineOS и её удивительный мир
  • Поляна говнокода Bumer 32

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Категории

  • Форум
  • Лаунчер
  • Игровой сервер

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

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

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 44 результата

  1. Сидел читал форум, наткнулся на тему "Управление роботом с планшета" и сразу понял что моего ума хватит на создание программы которая позволит управлять роботом с НАСТОЯЩЕГО ТЕЛЕФОНА на системе android. И так, представляю вам - RRCM - Robot Remote Controll Mobile Что вам понадибится? 1. Телефон на android 2. Робот с минимальными компонентами и open os 3. Интернет карта на роботе Установка: 1. На робота ставим программу RRCM (pastebin get y2Twekz8 RRCM) 2. Ставим серверный скрипт на сервер/свой пк(если порт 5000 открыт): -- 1. Ставим python -- 2. После установки python3 вводим в терминал/cmd команды: "pip install flask" "pip install flask-restful", также если в четвёртом шаге у вас возникнет ошибка, пробуйте "pip3 вместо "pip" -- 3. Скачиваем скрипт - *тык* -- 4. Запускайте скрипт(windows: двойной клик по скрипту, linux: "python3 название_скрипта" 3. Ставим приложение на android - *тык* 4. Запускаем приложение, вводим только домен/ip:port нажимаем connect - если появляются кнопки управления - работает, если приложение виснет - какая-та проблема(скорее всего приложение не видит сервер 5. В скрипте RRCM на роботе изменяем локальный ip:port на ваш домен/ip:port 6. Запускаем RRCM на роботе. 7. Всё должно работать. Если у многих будут проблемы, запишу видео. В будущем планирую сделать скрипт на EFI что-бы не тратится на диск. Не удивляйтесь малому функционалу, проект был заброшен 2 раза, скоро сделаю обнову. (возможно) UPD: Забыл сказать! Для остановки скрипта надо перезагружать робота, но в скором времени сделаю кнопку в приложении для остановки скрипта Если будут ошибки - пишите, разберусь. UPD2: Если вы боитесь за безопасность устройства то вот вам исходник приложения - *тык* Приложение билдить на андроид в unity
  2. В моде OpenComputers есть интересное устройство, которое позволяет определить плотность блока на расстоянии. Но вот беда, данные он выдает довольно шумные и чем больше расстояние, тем больше шума. Чтобы определить подлинную плотность блока, можно просканировать его несколько раз, а результат усреднить. Шум, мешающий сканированию, имеет вероятностную природу. И после нескольких сканирований можно статистически найти, какая вероятней всего плотность у блока. За один тик мы можем просканировать 64 блока. Чтобы проанализировать всю доступную область (65 x 65 x 64) сотней итераций, нам понадобится 422500 тиков, что равно 21125 секунд или 352 минуты, то есть без малого 6 часов. Но сколько раз надо сканировать? Сто? Тысячу? Нам открыто тайное знание и есть точный ответ. Один. Всего за одно сканирование мы можем найти руду среди любых других блоков. Если хочется абсолютной уверенности, придется сделать пару магических пассов и просканировать повторно. Начнем с теории. Для начала откроем код мода и найдем функцию geolyzer.scan, она располагается [здесь] src/main/scala/li/cil/oc/integration/vanilla/EventHandlerVanilla.scala и называется onGeolyzerScan() Просмотрев код, мы можем понять, что функция принимает параметры, по этим параметрам сканирует блоки в мире. Делает разные проверки вроде world.blockExists(x, y, z) && !world.isAirBlock(x, y, z), чтобы убедится, что блок есть. Потом получает информацию о блоке по координатам, делает еще несколько проверок (опять проверить, что блок все-таки есть block != null, проверяет дополнительные параметры: includeReplaceable, isFluid(block), block.isReplaceable(world, blockPos.x, blockPos.y, blockPos.z)) Потом происходит измерение расстояния до блока. И в конце берется плотность, смешивается с шумом и расстоянием. Результат добавляется к таблице блоков и отправляется игроку. Вроде-бы ничего необычного. Шум, расстояние, плотность. Нам и так известна зависимость силы шума от расстояния. И вот тут начинается волшебство. Рассмотрим поподробнее код вычисления итоговой плотности блока. e.data(index) = e.data(index) * distance * Settings.get.geolyzerNoise + block.getBlockHardness(world, x, y, z) Коротко можно это записать в виде формулы: R = G * D * N + H G - это сгенерированный шум. D - расстояние до блока. N - множитель шума из конфига (стандартно - 2). H - настоящая плотность. R - результат работы геосканера. Если мы попробуем в качестве эксперимента отнять от результата предполагаемую плотность, то ничего нового не узнаем. Если обратим все операции с известными значениями, то получим только шум. А можем ли мы так же разобрать формулу шума? Давайте попробуем. Несколькими строками выше [ссылка]. Можно наблюдать получение массива случайных байт. val noise = new Array[Byte](e.data.length) world.rand.nextBytes(noise) Далее следует нормализация значений. noise.map(_ / 128f / 33f).copyToArray(e.data) Хм. Так-так-так. Если мы это все обьеденим с предыдущей формулой, то получится что-то вроде такого: R = G(RANDOM_BYTE / 128 / 33) * D * N + H И что это нам дает? А то, что исходное псевдослучайное число имеет жесткую дискретность. ГПСЧ дает случайные числа типа byte, а это только 256 значений (-128, +127). Нам известны все значения, кроме H и RANDOM_BYTE, что нам это дает? Мы можем предположить значение H и обратить всю формулу. (R - H) / D / N * 128 * 33 Для стандартного конфига можно сократить до: 2112 * (R - H) / D А теперь тайное знание для тех, кто не понял самостоятельно. Мы взяли желаемую плотность блока (например 3 для руды). Подставили вместо H. Получили случайное значение. Можем легко определить, угадали ли плотность или нет. Из-за дискретности случайных значений генератора, распределение вероятностей для блоков с разной плотностью не одинаковое. Перейдем к практике. Вот код простого скрипта, который в заданном радиусе ищет блоки с нужной плотностью. Результат выводится на голопроектор. local sqrt = math.sqrt local component = require('component') local geolyzer = component.geolyzer local hologram = component.hologram local function distance(x, y, z) return sqrt(x^2 + y^2 + z^2) end local function magic(R, H, D) return 2112 * (R - H) / D % 1 end local function visualize(hardness, elevation, size) hologram.clear() hologram.setScale(9) local blocks, result for x = -size, size do for z = -size, size do blocks = geolyzer.scan(x, z, elevation, 1, 1, 32) for i_y = 1, 32 do result = magic(blocks[i_y], hardness, distance(x, i_y+elevation-1, z)) if blocks[i_y] ~= 0 and (result > 0.9998 or result < 0.00005) then hologram.set(x+24, i_y, z+24, true) end end end end end local hrd, ele, siz = table.unpack({...}) hrd = hrd or 3 ele = ele or -32 siz = siz or 16 visualize(hrd, ele, siz) А вот результат: При сканировании заметны артефакты. Когда разные плотности близки на целочисленных расстояниях, позникают коллизии. Это можно частично компенсировать, если есть блок кандидат на ошибку. На любом расстоянии можно рассчитать абсолютный минимальный и максимальный уровень шума. С расстоянием, у близких плотностей пересечение значений увеличивается, но если плотность блока не в области пересечений, то можно точно определить к какой области он относится. Пересечение плотностей руды (3) и камня (1.5), точками обозначены три сканирования блока руды. Результаты обратного вычисления для разных плотностей хорошо это демонстрируют. Для компенсации артефактов надо ввести дополнительное условие: полученный RANDOM_BYTE должен быть в диапазоне -128:127. Вот финальный скрипт и результат. local sqrt = math.sqrt local component = require('component') local geolyzer = component.geolyzer local hologram = component.hologram local function distance(x, y, z) return sqrt(x^2 + y^2 + z^2) end local function magic(R, H, D) return 2112 * (R - H) / D end local function visualize(hardness, elevation, size) hologram.clear() hologram.setScale(9) local blocks, result for x = -size, size do for z = -size, size do blocks = geolyzer.scan(x, z, elevation, 1, 1, 32) for i_y = 1, 32 do result = magic(blocks[i_y], hardness, distance(x, i_y+elevation-1, z)) if blocks[i_y] ~= 0 and result > -128 and result < 127 and (result%1 > 0.9998 or result%1 < 0.0002) then hologram.set(x+24, i_y, z+24, true) end end end end end local hrd, ele, siz = table.unpack({...}) hrd = hrd or 3 ele = ele or -32 siz = siz or 16 visualize(hrd, ele, siz) Для более точного определения плотности можно сделать два сканирования. Одно сместить относительно другого так, чтобы расстояния с артефактами не совпадали. Чтобы не выполнять тяжелую операцию sqrt, можно создать словарь, где [x^2 + y^2 + z^2] = sqrt(x^2 + y^2 + z^2), всего понадобится 1742 уникальных значений. P.S. Пост является компиляцией знаний из [этой] темы. Собрал, чтобы перевести и опубликовать на официальном форуме. Автор идеи хакнуть геосканер - @eu_tomat
  3. Сижу короче я такой и хочу сделать свой проект в майне на OC вот и придумал ЭТУ идею ПРЕДСТАВЛЯЮ ВАМ DISROB а если точнее управление роботом из дискорда! Предыстория: Установка! 1. 1 - Для начала нужен дискорд бот *ТЫК* мы попадаем на Developer portal Дискорда 2 - входим в аккаунт 3 -и нажимаем New application 4 - Даем название.. 5 - 9999... - а дальше нагуглите лень писать ?? - получаем Токин 2. 1 - Качаем моё .exe приложение (делал на пайтон кто боится исходник на GitHub) **ШМЯК** 2 - запускаем и вводим какой либо код Stem 3 - запоминаем код он ещё понадобиться 4 - вводим токен бота(вы же его уже на сервер добавили?) Теперь при сообщении бот отправит сообщение о его намерениях в чат и консоль 3. 1 - Качаем прогу на робота wget https://raw.githubusercontent.com/Bumer-32/Minecraft-opencomputers/main/DisRob/DisRob.lua 2 - Запускаем ... и вбиваем тот же самый код stem (Помните мы его запоминали? не помните? память тренировать надо! стихи учить! быстро стих или 2 в журнал!) давайте давайте стих в обсуждение сюда 3 - написать стих 4 - ставим Stem ***ГРЮК*** НЕ ПУТАЕМ СО СТИМОМ ЭТО СТЕМ запускаем все скачанное Инструкция: Сис требования : Просьба не кри.. а хотя.. КРИТИКУЙТЕ ХОЧУ ПОУЧИТСЯ! и да спасибо @Totoro за прекрасный Stem и @ProgramCrafter за предоставленный код для подключения к Stem на Python Версия : 1.2
  4. Иногда надо уместить программу на EEPROM, но она никак не хочет туда влезать. Есть решение - карта данных любого уровня, может упаковывать и распаковывать программу, а код распаковки не занимает много места. Благодаря алгоритму Deflate теперь есть где развернуться. Я наконец-то смог запрессовать свою копалку, даже без оптимизации кода, и еще свободное место осталось. Требования: Data-card любого уровня. Интернет карта для установки программы. Установка: pastebin run KThbTuZr или wget https://raw.githubusercontent.com/zgyr/bpacker/master/installer.lua && installer && rm installer.lua или oppm register OpenPrograms/zgyr-Programs oppm install bpacker Использование: bpacker [опции] <имя файла> Опции: -q тихий режим, не показываются статусные сообщения -m минификация кода перед упаковкой (работает не всегда) -l использовать алгоритм lzss (Data card не требуется) -h справка Программа сожмет указанный файл и запишет на EEPROM. Код должен быть адаптирован для работы без OpenOS. TODO: Сделать упаковщик немного умнее. (сейчас код распаковки захардкожен, занимает лишние байты и может не работать в очень редких случаях) Улучшить минификатор. (он лучший среди Lua-минификаторов, но иногда ломает код) Ссылки: Github программы. Github минификатора.
  5. Иногда, особенно когда вы занимаетесь строительством реакторов, необходимо очень много укрепленного камня. Можно конечно и вручную залить нужную территорию, но согласитесь, лучше когда за вас это все сделает кто-то еще. Итак представляю вашему вниманию небольшую автоматическую систему по производству укрепленного камня. Вам всего то надо обеспечить эту ферму (генератор укрепленного камня) железными лесами, песком и энергией. Перейдем к постройке: Главным центром всей постройки является робот. Его устройство рассмотрим позднее. Справа от робота необходимо установить любую зарядку для бура/ваджары. Ну или если вы совсем бедные, и планируется что робот будет работать киркой, то установите сундук. Слева от робота устанавливайте Жидкостный/Твердотельный наполняющий механизм. Он заправляет распылитель сразу, за 1 прогон. Это будет наполнитель для зарядки распылителя. Рядом с зарядником распылителя рекомендую установить еще один Жидкостный/Твердотельный наполняющий механизм, который будет генерировать сжатую пену. В слоты улучшения обязательно установите "Выталкиватель жидкости". С подачей воды и смеси думаю разберетесь сами. Не забываем выставить настройки в механизмах как показано на скрине: За роботом нужна зарядка, чтоб он мог работать вечно! И не забываем её стукнуть ключиком, чтоб не заморачиваться с рычагами. Конвертор энергии не забудьте подключить к энергобуферу (или можете не устанавливать его, провода из ИС2 с ОС коннектятся) Над роботом установите сундук, и желательно побольше. В него необходимо засыпать железные леса и песок. Учтите, на 1 блок укрепленного камня необходимо 1 железные леса и 1 песок. Автоматизация засыпания расходников, уже на вас. Под роботом распологается сундук в который будет ссыпаться укрепленный камень. Так как наш робот будет нереально дешевым, не забываем сделать подставку на которой будет готовиться ваш камушек. Рекомендую вообще оградить это место, чтоб ни курица ни игрок не залезли перед роботом (иначе распылитель запенит все в округе). Собственно это все что необходимо вам знать при постройке этой фермы. Переходим к роботу. Программу я сделал для двух типов роботов, простейший Т1 и супердешевый на eeprom. Простой робот-генератор укрепленного камня: Супердешевый робот-генератор укрепленного камня: Настоятельно не рекомендуется лезть перед роботом иначе рискуете получить такое Не лезте своими шаловливыми ручками в слоты к работающему роботу. Можете забрать готовый камень, но расходники не трогайте, так как скорость смены инструмента огромная, и если робот что-то не найдет, вам грозит быть залитым в пену. (смотри скрин выше) Одной заправки распылителя хватает на 80 применений, потом робот автоматически перезаряжает инструмент и распылитель. А в остальном данная ферма работает довольно стабильно и исправно. А рассказал вам о ферме Asior, фармите укрепленный камень, гоняйте кур от фермы и удачи в тяжком труде реактостроителя! P.S. Укрепленный камень выдерживает ядерный взрыв, но радиацию сдержать увы не сможет. Осторожнее.
  6. Remoute Control, ver. 0.1.1 (управление роботом удаленно по сети Wi-Fi с планшета в ручном режиме) многоцелевая программа для мода OpenComputers Программа позволяет Вам получить полный контроль над роботом, совершать множество действий удаленно, при этом видеть самого робота и его параметры. Например, можно пробраться роботом в труднодоступные места, выгрузить уран из реактора при этом не получив облучения, построить простую конструкцию там, куда вы сами не можете пока добраться или наоборот, привезти что-то. Робот под вашим полным контролем. Забавным применением программки является гриф чужого имущества, атаки на игроков. Роботы по настройкам конфига могут производить действия, связанные с использованием предметов, включения и выключения кнопок, рычагов и механизмов и инструментов в чужом привате, хоть приват и не рушат. Можно произвести атаку и снести все опреснители игрока, солярки и ветряки, ели он не в игре и не спрятал все с крыши, или не выставил охрану и не сенсорит атакеров. Можно прикрутить реакторную камеру к стене жертвы, запихать туда 4-х урановый стержень,в включить на роботе редстончик и подорвать стеночку в несколько блоков, если беспечный игрок-жертва заприватил дом тютелька в тютельку по краю стены, как это обычно делают игроки =). Реактор на ИТ в настройках рушит блоки в радиусе 2-4 блоков. Есть шанс, что вы проберетесь в домик жертвы, при этом вы в укрытии и вас не видно никак. Код программы (latest): ПЛАНШЕТ: скачать (pastebin get b8nz3PrH tabletRC.lua) РОБОТ: скачать (pastebin get 7V2fvm7L robotRC.lua) Старые версии (old): Скрины: Требования к комплектации робота и планшета (за основу взял связанную карту, она обязательна, в роботе также обязателен контроллер инвентаря, остальное опционально. Можно выкинуть таблички и запихать контроллер ведра, немного добавить строчку и тырить жидкости и прочее. ЧЛ пока в программе не используется. Для грифа крайне желательна красная плата, магнит, большой инвентарь):
  7. Салют, народ! Итак представьте, раннее утро, вы сидите на берегу речки, тихо материтесь отмахиваясь от комаров плещется где-то в далеке рыба, медленно встает из-за горизонта солнышко. В руках у вас удочка, под боком ведро и банка с червями. Красотааа... Помечтали и ладно. Вернемся к нашей суровой квадратной реальности. Многим игрокам часто не хватает времени чтобы вырастить пшеничку, а есть то хочется, на hot-dog от корпорации тратиться неохота. И тут на помощь приходит маленькая програмка для робота, которая с легкостью наловит для вас много рыбы (иногда может поймать даже алмаз). Вам останется только отобрать её у робота и пережарить. Для начала надо построить особую конструкцию - ферму рыбы. Инструкция по постройке. Данная ферма довольно стабильна, но по предложению игрока eu_tomat выкладываю второй вариант постройки фермы, эконом-класса. Ферма построена, а робота нету, исправляем это недоразумение. Рекомендуемые сборки роботов: Робот 1-го уровня Для запуска этого робота установите в него обязательно красную плату и контроллер инвентаря. Робот 2-го уровня - мультизадачный Для запуска этого робота установите в него обязательно красную плату. Еще одна сборка, Робот 2-го уровня - специализированный рыболов. Для данной программы собирать специализированного робота 3-го уровня нет никакого смысла, вообще под управлением рыболова может работать любой робот, главное чтоб у него была установлена красная плата, контроллер инвентаря рекомендуем, но робот ловит отлично и без него, правда удочки поломанные не сможет менять. По конструкции робота впринципе все, мастерите понравившегося робота, и идете ставите его на конструкцию нашей фермы, мордой чтоб на воду смотрел. Программу вы конечно же записали на диск заранее, ну или скопировали с пастебина, поэтому прописываем Ribolow.lua или как вы там её назвали и запускаем. Все, робот будет работать в бесконечном цикле, вылавливая только лучший хлам)). Если инвентарь заполнится, робот сбросит все под себя, в воронку. Если удочка переломится, робот выбросит все что наловил и вытащит из сундука сверху новую удочку, а если не найдет её, робот громким, душераздирающим писком оповестит вас. Все это возможно если вы конечно же установите контроллер инвентаря. Будьте осторожны, робот стачивает удочки до полной их поломки. При прогрузке чанка иногда клинит удочку и красную пыль, не переживайте, если случится такая ошибка робот через 60 секунд вернется в свой нормальный цикл работы. Ну собственно и все, жуйте рыбу, в ней много фосфора. С вами был Asior. P.S. А программу то забыл)) Ссылка для скачивания pastebin get -f AFgBdeci Ribolov.lua или http://pastebin.com/AFgBdeci P.S.S. Спасибо всем кто помогал по разным вопросом во время создания данной программы
  8. Doob

    Дубокоп

    Представляю вам опять программу для робота, которая позволяет добывать руду, не лазая по пещерам. Робот, используя геолизер, может самостоятельно находить и добывать руду. Реализованы еще не все возможности, поэтому прошу тестировать и сообщать мне о багах. Требования: Корпус компьютера (уровень II или III) Апгрейд инвентарь (больше - лучше) Апгрейд контроллер инвентаря Жесткий диск EEPROM с прошитым Lua BIOS Геосканер Память (уровень I или выше) Процессор (любой) Апгрейд полета (I уровень) Алмазная кирка или аналогичный инструмент. Опционально: Апгрейд верстак Беспроводная сетевая карта Апгрейд батарея Апгрейд опыта Апгрейд чанклоадер Апгрейд генератор Апгрейд солнечная панель Эндерсундук из мода EnderStorage Установка: Скачать и сохранить файл как init.lua wget https://raw.githubusercontent.com/DOOBW/geominer/master/miner.lua init.lua Закинуть этот файл в корень диска. Добавить диск при сборке робота. Установить робота на платформу из твердых блоков. Дать роботу кирку. Поставить возле робота контейнер и зарядник. Нажать кнопку питания и наслаждаться процессом.
  9. Возможно ли исполнение команд из маинкрафт при помощи робота?
  10. serafim

    quarry карьер

    quarry Для тех, кто спешит https://pastebin.com/1m7k9F01 или pastebin get 1m7k9F01 q Основное преимущество этой копалки - минимум телодвижений со стороны игрока. Всё что нужно это поставить робота, дать ему кирку и нажать q По умолчанию робот выкопает карьер 16/16 до бедрока. Можно указать произвольные размеры ширины (x) и длинны (y) не кратной 3 или 2, робот с координат не собьётся например q 31 17 Можно поставить сундук сзади робота, положить туда бур, уголь, робот в таком случае будет приносить руду в этот сундук, брать из него уголь для заправки, складывать разряженный инструмент и брать заряженный. Можно поставить робота на поверхности, а копать он будет глубоко под землей принося руду на поверхность, для этого нужно указать на сколько блоков ему опустится в низ например q 20 16 40 - - 20 (ширина) 16 (длинна) 40 (опустится в низ на 40 блоков) минимальные требования: корпус второго уровня (золотой) + процессор второго уровня улучшение инвентарь (лучше 2 или 3) контроллер инвентаря улучшение парение генератор контейнер для апгрейда, если хотите использовать чанклоадер пример сборки: основной алгоритм: Копает змейкой квадрат проходя три слоя блоков за один подход, пока не выкопает весь объём до бэдрока или не упрётся в не разрушаемый блок, при этом вернётся к старту и сообщит о проблеме, также предложит продолжить копать с последней позиции. Заправляется выкопанным углём из инвентаря и сундука на старте, если энергии не хватает, а уголь в генераторе есть, то возвращается к сундуку и заряжается. При наличии зарядчика на старте, робот ожидает полной зарядки батареи, не смотря на количество угля в генераторе. Сортирует выкопанный лут согласно чёрного списка, мусор выкидывает а инвентарь уплотняет. Умеет работать с электроинструментом, если он разрядился то сначала берёт запасной в инвентаре, а затем в сундуке на стартовой позиции, разряженный складывает в сундук. Если на старте слева от робота стоит зарядчик для электроинструмента, то робот будет его заряжать, включая запасной инструмент Если хотите, вместо обычного сундука можно поставить ender chest и у себя на базе сделать зарядчик для электроинструмента на другом роботе, с помощью этой программы https://pastebin.com/mtKbYn42 или pastebin get mtKbYn42 c список мусора можно настроить под ваши требования на строке 35 требуются только названия блоков, получить их можно тем же роботом с улучшением контроллер инвентаря, и этой программы https://pastebin.com/au9etcfF или pastebin get au9etcfF i Если добавить в робота улучшение опыт то у него будет огромный запас энергии. робот прокаченный на 10 уровней, имеет заряд батареи 70500 против 20500 по умолчанию. робот прокачивается сам когда копает, но если хотите вы сами можете его прокачать, скармливая ему зачарованный лут. прокачать его можно с помощью этой программы https://pastebin.com/ZKFw0Lst или pastebin get ZKFw0Lst e не знаете где взять много зачарованного лута, робот рыболов вам в помощь https://pastebin.com/RPLWqKTZ или pastebin get RPLWqKTZ r краткая статистика с разными инструментами: размер карьера 16/16, высота 70, уровней 22 по 3 слоя блоков, примерно 768 блоков на уровень. испытательный полигон: Программа доработана для нормальной работы на лагающем сервере p.s. отладка велась весьма продолжительное время, все возможные баги были отловлены, но только массовое использование исключит их полностью, так что пишите, не стесняйтесь. скриншоты приветствуются На основе этого карьера было создано несколько модификаций под различные условия Если сундук в привате, то у робота нет прав работать с инвентарём сундука и зарядчика инструмента
  11. Решил как-то раз сделать программу для варки пива. И у меня это получилось. Возможности Выбирать сорт Выбирать густоту Выбирать время выдержки По истечению времени автоматически собирать бочки с пивом (Разливать в кружки он не может) Подсчёт всех ресурсов, необходимых для варки Выбор количества бочек Защита от "Дурака" Инструкция: Принцип работы: 1. Робот берёт ресурсы на обслуживание четырёх бочек (или меньше, в зависимости от указанного общего количества). 2. Обслуживает (закладывает хмель, пшеницу, капсулы в бочку) бочки. 3. Возвращается на начальную точку, если остались не обслуженные бочки, то пункт 1. 4. Ждёт указанное время. 5. Собирает (ломает) бочки, пока не заполнится инвентарь, если заполнился, то возвращается на базу и опустошает место. 6. Возвращается на место, складывает в сундук оставшиеся бочки. 7. Программа завершена. Чтобы скачать, введите команду: pastebin get G0Jnvg0A beer.lua Ссылка на pastebin: http://pastebin.com/G0Jnvg0A Минимальная комплектация:
  12. нужен цикл выполнения работы роботом пример поставить блок (алмаз например) сломать блок повторение цикла
  13. Эта кoпалка не требует для рабoты лишних деталей, т. к. кoд запиcываетcя на EEPROM. При cбoрке рoбoта, вмеcтo ЖД, мoнитoра и клавиатуры мoжнo дoбавить чтo-тo дейcтвительнo нужнoе, например раcширение инвентаря или аккумулятoра. Требoвания: Инвентарь (чем бoльше - тем лучше) Кoнтрoллер инвентаря. Геocканер. Инcтрумент, врoде алмазнoгo или иридиевoгo бура. Хoвер-апгрейд (еcли неoбхoдимo) При cбoрке мoжнo дoбавить: Апгрейд-верcтак. (пoзвoляет экoнoмить меcтo) Чанклoадер. Генератoр. (при наличии чанклoадера реже будет неoбхoдимocть ездить к заряднику) Беcпрoвoдную cетевую карту. (пoзвoлит рoбoту oтправлять cтатуcные cooбщения) Пример минимальнoй и пoчти макcимальнoй cбoрки (при желании, мoжнo дoбавить раcширения) Иcпoльзoвать oчень прocтo: В кoмпьютер c интернет-платoй вcтавить EEPROM. Запуcтить кoманду pastebin get eFkAZP0u b && edit b && flash b -q && rm b Пo желанию, редактирoвать параметры - первые переменные этo кoличеcтвo нoд, минимальная плoтнocть, макcимальная плoтнocть, выcoта (неoбхoдимo указывать для мирoв, в кoтoрых нет бедрoка), пoрт, cпиcoк oтхoдoв. Сoхранить/закрыть файл. Дocтать EEPROM из кoмпьютера и вcтавить в рoбoта. Выдвинутьcя на меcтo дoбычи. Пocтавить рoбoта. Дать рoбoту бур. Пocтавить вoзле негo кoнтейнер и включенный зарядник. Включить рoбoта и ждать завершения рабoты. Функциoнал: Рoбoт cканирует квадраты x8 блoкoв пo гoризoнтали, пocтепеннo oпуcкаяcь вниз. Дoбывает блoки из заданнoгo диапазoна плoтнocтей. Дoйдя дo бедрoка, рoбoт пoднимаетcя на cтартoвую выcoту и перехoдит к cледующей кoлoнне. При низкoм урoвне заряда аккумулятoра, пытаетcя заправить генератoр (еcли имеетcя), в прoтивнoм cлучае или при низкoм урoвне заряда инcтрумента, oтправляетcя на cтартoвую пoзицию, к заряднику. Так же, при запoлнении инвентаря, cбраcывает муcoр, при наличии верcтака упакoвывает реcурcы в блoки и еcли меcта вcе-равнo малo, тo cледует к кoнтейнеру, cбраcывает лут и вoзвращаетcя к рабoте. Еcли имеетcя чанклoадер, тo при начале рабoты oн включаетcя, а при завершении выключаетcя. Еcли имеетcя беcпрoвoднoй мoдем, тo рoбoт пocылает cтатуcные cooбщения: 0 - неразрушимый блок (скорее всего - приват) 1 - контейнер заполнен 2 - контейнер отсутствует 3 - зарядка инструмента 4 - заправка генератора 5 - конец работы
  14. Сделал простенькую программу, которая просто перекладывает стаки предметов из одного инвентаря в другой Код: https://pastebin.com/fnMBh5mw Краш-лог: https://prnt.sc/qg1xvd Что я делаю не так? Там на первой строчке просто таблица создается
  15. (проект в разработке) Цель данного проекта - создание нейросети и условий для ее самообучения. В идеале, это будет бомжовый робот минимальной комплектации (возможно даже без жесткого диска), который в зависимости от окружающих условий будет определять свою полезность. Также, он будет "программироваться" снаружи с помощью окружения оставленного другими роботами, формирующими "улей". Апогеем будет саморепликация. Кроме достижения цели, важен и процесс. Наблюдать за самообучением и выбором действий у нейросети очень интересно. Нейросеть изнутри: Мигающие точки - нейроны, линии - синапсы (связи), справа эмулятор мира майнкрафт на движке Love 2d. Нейросети устроены похожим образом. Есть входные значения, скрытые слои и выходные значения. В моей программе робот собирает информацию вокруг себя. На вход подается: Есть ли блоки над, под и перед ним Насколько много клеток он "разведовал" за последнее действие Его позиция в виде значений x,y,z от 0 до 1 Иногда я тестирую со значениями стороны куда он смотрит, возможностью двигаться, расстоянию до последней удачной копки Нейросеть "думает" и выдает 5 значений, которые соответствуют действиям движения 1) вперед, 2) вниз, 3) вверх, 4) вправо, 5) влево. Робот выполняет большее из этих значений. Далее, после действия, я вычисляю коэффициент полезности r [0..1] для этого действия. -- swingSucces: количество вскопанных блоков за действие [0..3] -- input.exploreSucces: коэффициент разведки [0..1], где 0 - уже разводовал все 3 блока, 1 - впервые проверил эти 3 блока -- logic(input.sweetsD < input.old.sweetsD): расстояние до последней удачной копки увеличилось 0, или уменьшилось 1 r = (swingSucces + input.exploreSucces + logic(input.sweetsD < input.old.sweetsD)) / 5 Нейросеь обучается, и в выбранное выходное значение приписывается r a остальные уменьшаются\увеличиваются на 1-r for i=1, #output do output[i] = switch i when actKey (output[i]+val^2)/2 when rndKey (output[i]+(1-val))/2 when oppositeKey (output[i]+(1-val))/4 else output[i] nn:propagate(output) Теперь матан. В начале я использовал обычный Персептрон, найденный готовый на ЛУА, но который мне пришлось править. Проблема в том, что он не может учитывать последние состояния. Нейросети с памятью называются "Long short-term memory" или LSTM, где каждый нейрон выглядит вот так: Найдя библиотеку synaptic.js, хитрыми путями я извлек из нее готовую LSTM сеть, которая получилась на 53 000 строк. Но это не проблема, если зайдет, я перепрограммирую ее на LUA. Текущее состояние сети - отстой. Я неправильно ее обучаю, так как не знаю какие значения выдавать для "обратного распространения ошибки". Круча разные коэффициенты, у меня получилось научить ее двигаться по спирали, как карьерный робот. Сейчас, когда я добавил во входные значения расстояние до последней удачной копки, он научился "кушать" как яблоко, но с огромный количеством лишних действий. В самом майне блоков намного больше и это выглядит вот так. На первом скрине работал 1 робот, на втором штук 6. Сейчас в их действиях слишком много шума. Я специально не даю им кирки, что бы они не унеслись в бесконечность. Фидбек Мне нужно помощь. Подскажите, что лучше подавать на вход, и как обучать сеть. Главная проблема, что для обучения я должен указать какие значения должны быть на выходах при текущих условиях, а я и сам не знаю. Обычно, робот теряется в пустом пространстве и я не знаю какое действие ему казать как "единственно правильное". А так, буду сюда отписываться и отчитываться о процессе разработки. Update 20.06.19, веб-версия эмулятора
  16. Как собрать робота в 5 шагов (инструкция для самых маленьких) Абстрактное описание сборки робота я уже писал много раз, поэтому это будет короткое руководство на конкретном примере. Соберем и запустим Totoro Recursive Miner. Шаг 1. Подготовка Для создания робота нам потребуется сборщик (assembler). Чтобы он работал - подведите питание. Сборка робота потребует некоторого времени (примерно 5 минут) и энергозатрат. Шаг 2. Подбор железа Запчасти делятся на обязательные и необязательные. Детали обязательные: 1) Корпус Основа робота. Без него никуда. Для TRMiner нужен корпус 2+ уровня, потому что он должен содержать апгрейд-генератор. 2) Процессор Мощность процессора определяет количество выполняемых роботом операций в такт. Т.е. проще говоря - скорость его работы. Однако перемещаться быстрее робот не станет. Этот параметр можно улучшить "прокачав" робота (см. апгрейд-опыт). 3) Память Практика показала, что одной планки 1 уровня для нормальной работы на компьютере недостаточно. TRMiner хранит в памяти данные о жилах руды, поэтому требует как минимум две планки уровня 1.5. При меньшем количестве корректную работу не гарантирую. (Хотя возможно он будет работать.) 4) Монитор Достаточно 1 уровня. Робот не поддерживает цветные экраны. (Можно собрать робота и без экрана. Но это - для любителей хардкора.) 5) Видеокарта Также достаточно 1-го уровня. Требуется для вывода изображения на монитор. Без нее монитор будет просто черным. 6) Клавиатура Чтобы иметь возможность набрать что-то в консоли. 7) Дисковод Для установки OpenOS и копирования программы TRMiner. (Любители хардкора могут попробовать запустить робота без дисковода. Это возможно. Но я не скажу как :P ) 8) Жесткий диск Для хранения ОСи и программы. Первоэтапный диск в 1Мб хватит с головой. Это даже много. Будет занято ~20%. 9) Lua BIOS Этот чип нужен для корректной работы OpenOS. Крафтится из пустого EERPOM и книги. Детали обязательные для Totoro Recursive Miner: 10) Апгрейд-инвентарь. Робот хранит в нем добытую руду. Рекомендуется установить 2 или 3 апгрейда (т.е. 32 или 48 слотов). Больше можно не ставить, ибо обычный сундук, в который робот сбрасывает добычу имеет размер в 27 слотов. 11) Апгрейд-генератор. Нужен роботу для непрерывной работы. Робот будет сам заряжаться с его помощью, сжигая часть добытого угля. (Любители хардкора могу не ставить генератор. Программа будет работать. Вы можете заряжать робот таская за ним заряжающее устройство, или приделав пару солнечных панелей и выкопав вертикальный колодец до поверхности. ) Детали необязательные: 12) Апгрейд-опыт Позволит роботу прокачиваться во время добычи. Со временем он станет быстрее двигаться, меньше тратить энергию и медленнее ломать свой инструмент. Требует Корпуса 3-его уровня. 13) Апгрейд-батарея Ну тут все понятно. Увеличивает емкость аккумулятора. Полезная штука. Детали вредные (эксклюзив для IT 1.7.10): 14) Апгрейд-чанклоадер После включения робота, в момент опустошит его аккумулятор. На том все и закончится. Вот две рабочие конфигурации: Минимальная Рекомендуемая (UPD.: Тут уважаемый Krutoy любезно предоставил картинку, которая иллюстрирует, сколько всего ресурсов у вас уйдет на сборку рекомендуемой конфигурации робота: За что ему большое спасибо.) Уложите выбранные детали в сборщик и запускайте процесс. Шаг 3. Софт Раздобудьте дискету с OpenOS (крафтится из чистой дискеты и книги). Скачайте программу Totoro Recursive Miner на другую, чистую дискету. http://pastebin.com/L21VMm7S Для этого этапа нам потребуется компьютер. Свой или соседа, все равно. Он должен иметь выход в интернет (интернет-плата) и дисковод для дискет. Как скачать программу на новую дискету: 1) Вставить дискету 2) Посмотреть в инвентаре ее адрес. Запомнить первые его буквы-цифры. 3) Написать в консоли команду: label -a xxxx floppy Где xxxx - первые буквы-цифры ее адреса, а floppy - это будущее название (этикетка). В результате ваша дискета получит короткое и ясное название. 4) Написать команды: mount floppy fcd /f В результате вы окажетесь в корневом каталоге дискеты. 5) Скачать программу TRMiner: pastebin get L21VMm7S mine Для этого нужна интернет-плата. Программа будет сохранена на дискету под именем mine. 6) Извлеките дискету. (Также можно поискать игрока с ником Totoro и подоставать его, чтобы дал дискету с программой нахаляву. Тогда и компьютер не нужен.) Шаг 4. Установка Поставьте робота. Можно прямо на месте предполагаемой добычи руды. Чтоб два раза не ходить. Включите его и установите OpenOS (это надо сделать только один раз). Как установить OpenOS: 1) Вставить в робота зеленую дискету. 2) Включить его. 3) Написать в консоли: install 4) Он спросит на какой жесткий диск устанавливать. Напишите 1. 5) Согласитесь на рестарт (y). Теперь сбросьте программу TRMiner с дискеты на жесткий диск робота. (Можно каждый раз вставлять дискету и запускать программу прямо с нее, но это лишние действия. Зачем оно нам?) Как сбросить программу с дискеты: 1) Вставить дискету с программой в робота. 2) Убедиться, что он включен. 3) Написать в консоли робота: mount floppy fcp f/mine mine 4) Достать дискету. Все! Софт установлен. Дискеты больше в принципе не нужны. Но сохраните их на всякий случай. Шаг 4A. Настройка программы (необязательно) Для настройки программы Totoro Recursive Miner, введите в консоль команду: edit mine В двадцатой строке вы увидите константы набранные заглавными буквами: TECH_SLOTS = 6VANILLA_CHEST = truePATHWAYS = trueDROP_TRASH = false TECH_SLOTS - количество слотов с образцами "пустой породы" и сундуками. То есть тех слотов, которые не будут заняты добычей. VANILLA_CHEST - режим для работы с обычными сундуками. Есть возможность работать с сундуком Эндера. Для этого, установите константу в значение false и дайте роботу инструмент с зачарованием "Шелковое касание". В слот с сундуками положите один сундук Эндера. PATHWAYS - если true, робот проделает в шахте дорожки, для удобства хождения игрока DROP_TRASH - если true, робот будет выбрасывать булыжник и другую "пустую породу". После изменения констант, нажмите клавиши Ctrl+S (сохранение) и Ctrl+W (выход). Шаг 5. Добыча полезных ископаемых Принесите робота на место предполагаемой шахты. Поставьте робота в ее воображаемый правый передний угол, передней стороной вперед. Вот так: В инвентаре робота разложите образцы пустой породы (5 штук по дефолту). Причем (лайфхак для ускорения работы робота), кладите в порядке убывания распространенности. У меня это камень-земля-гравий-булыжник-камень Бездны (abyssal stone из RailCraft). В последний из технических слотов (6-ой по дефолту) положите сундуки (или сундук Эндера, если вы перенастроили программу). Роботу в "руку" положите кирку или бур. Чем прочнее и острее - тем лучше. Теперь включите. Введите в консоль команду такого формата: mine <длина> [ширина] [возвращаться_в_начало] Первые два параметра - числовые. Последний - true/false (Если не указать, равен false). Ура! Наконец все ездит, копает и складывает без нашего участия. Остается только иногда менять кирку. И уносить добычу. Enjoy!
  17. Не так давно решил я немного нафармить обсидиана, но прыгать по озерам лавы, тушить её водой, а потом долго и нудно собирать как-то не то. Хотелось автоматизировать этот процесс. Да есть специальные генераторы обсидиана, но там требуются расходники в виде красной пыли или другого горючего материала, что для меня было неприемлимо. Поэтому был собран первый прототип генератора обсидиана. Портатип генератора обсидианта Version 1.0 Довольно сложная но красивая конструкция. Время генерации 1 стака ~ 2 минуты 30 сек. Внешний вид: Инструкции по сборке: По времени работы меня такой результат вполне устраивал, но потом @Romanok2805 показал свою версию похожего генератора. Описывать его я не буду, поясню что смысл работы того генератора, он черпает ведром лаву из бочки, выливает её рядом с источником воды, меняет ведро на бур и разрушает обсидиан. И так по кругу. Обмозговав алгоритм его работы, был придуман улучшенный генератор обсидиана. Генератор обсидианта Version 2.0 Довольно легкая конструкция, дешевый робот. Время генерации 1 стака ~ 15 сек. Внешний вид: Инструкции по сборке: Генератор обсидиана Version 2.1 Довольно легкая конструкция, дорогой робот. Внешняя бочка не требуется. Время генерации 1 стака ~ 15 сек. Внешний вид: Инструкции по сборке: Генератор обсидиана промышленный Version 3.0 Дорогая конструкция, дорогой робот. Навешано чуть больше расчетов, в связи с чем время генерации обсидиана увеличено, но зато данный генератор может обновлять расходники. Время генерации 1 стака ~ 17 сек. Внешний вид: Инструкции по сборке: Собственно такие вот получились варианты сборки фермы обсидиана, я конечно хз зачем вам столько его потребуется, но, коль уж есть программа почему бы ею не воспользоваться. Всем удачи, копайте обсидиан быстрее, чем вам сосед P.S. Большое спасибо за демонстрацию и помощь в написании программы @Romanok2805, за информацию по багам @M_O_R_F_I_K
  18. Данная программа позволяет осуществлять сбор любой ванильной и ваниллаподобной культуры (не проверялось на кактусах, у тростника рекомендуется собирать только верхнюю часть). Под ваниллаподобной культурой следует понимать культуру, сбор которой укладывается в алгоритм: [проверить блок] - (проверить метадату) - [если проверки пройдены, собрать культуру ЛКМ/ПКМ] - (высадить блок ПКМ), где [] - обязательный пункт, а () - необязательный. Жердочки из IC частично поддерживаются (все, кроме резинового тростника и веномилии). Одним роботом может обслуживаться неограниченное (вернее, ограниченное вместимостью инвентаря робота и его ОЗУ) количество полей разных культур. Системные требования: Процессор второго уровня (рекомендуется) Две планки ОЗУ второго уровня (рекомендуется) Жесткий диск первого уровня Геолайзер Улучшения "Инвентарь" и "Продвинутый контроллер инвентаря" Улучшение "Притягивающий луч" как выяснилось, не требуется Видеокарта, монитор, клавиатура (крайне рекомендуется) Пример робота: http://i.imgur.com/q027ast.png Как использовать робота: Первым делом надо определить место установки робота. Программу можно будет запускать только с этого места! Место установки включает в себя координаты по всем трем осям и ориентацию (posx, negx, posz, negz). Под этим местом необходимо разместить воронку для выгрузки собранных айтемов. Также, если робот будет заряжаться, зарядник следует разместить так, чтобы не мешать проходу робота, например, в стене. После этого следует убедиться, что между всеми полями существует свободный проход и что над растениями свободен минимум один блок. Робот не имеет алгоритма поиска пути и будет идти "напролом", а значит, ему нельзя преграждать путь. Крайне рекомендуется располагать все поля в прямоугольной области, а также на одной высоте. Затем следует открыть исходный код и отредактировать переменные c четвертой строки по тринадцатую. Назначение переменных прокомментировано в самом коде. Изменив значения переменных, не листайте дальше, чтобы не увидеть велосипеды на костылях. Далее следует создать текстовый файл по адресу /fields.txt, в котором описать все поля, предназначенные к сбору роботом. После этого робот готов к работе. Установите робота на его место установки и запускайте программу. Cтруктура файла fields.txt: Каждое поле описывается одной строкой, поля идут в порядке сбора. Строка поля должна быть вида: startPosX,startPosZ,anotherPosX,anotherPosZ,fieldY,blockToTake,itemToPlant,fullGrownState,isRight startPosX и startPosZ это координаты начальной точки поля. С этой точки робот будет начинать сбор. anotherPosX и anotherPosZ это координаты противоположной точки (как точки, выделяемые при привате территории). Это не точка, где сбор будет заканчиваться. fieldY это координата, на которой располагаются растения. Робот будет летать на блок выше этой координаты, так, чтобы находиться над растениями. Если растение многоблочное, следует указать координату самой верхней части. blockToTake это name блока, который требуется собирать. Например, minecraft:carrots для моркови или minecraft:melon_block для арбузов. itemToPlant это name айтема, который требуется высаживать. Если после сбора ничего высаживать не требуется, следует написать nil. Можно написать и другое несуществующее name, но тогда робот будет все время пытаться найти ваш айтем (и, следовательно, работать медленнее). fullGrownState это metadata созревшего растения. Если metadata проверять не требуется, следует написать -1. isRight это необязательный флаг, указывающий, что культуру следует собирать ПКМ. По умолчанию стоит в false. Пример файла fields.txt: http://pastebin.com/H10k6QkV Ферма, соответствующая этому файлу: http://i.imgur.com/wP5gAaa.png Скачать: http://pastebin.com/K4DU8d3n Дополнительно: Просьба к играющим на МТ проверить работу робота с тамошними ваниллаподобными культурами, если такие там есть. Автор выражает благодарности: Totoro, который ответил на несколько моих глупых вопросов. AlexCC, который запретил сборщик урожая и тем самым побудил меня написать данную программу. Fingercomp, который натолкнул меня на мысль добавить поддержку сбора культуры ПКМ. UPD: Добавлена поддержка сбора культуры ПКМ. Это открывает возможности для частичной поддержки жердочек из IC - их состояние невозможно узнать, но большинство из них собираются только на последней стадии, так что с ними все-таки можно работать.
  19. И так, наконец-то возвращаюсь к роботу-копателю. Да будут новые баги и новые фичи! Краткий план внедряемых фич: Улучшенное сканирование руд. Робот сканирует под собой квадрат 16x16 блоков, опускаясь блок за блоком. При обнаружении бедрока запускается функция добычи. При добыче робот поднимается и в цикле ищет ближайшие по горизонтали блоки руды, захватывая три слоя - Y+1, Y, Y-1 Определение энергопотребления сборки при запуске. На старте, робот запоминает количество потребленной энергии на один шаг + прочность инструмента. Это будет служить константой при проверке статуса, чтобы была возможность гарантированно вернуться на точку старта. Умная упаковка добычи. Перед обработкой рассыпухи, теперь будет точнее анализироваться свободное место, упаковка не будет происходить механическим перебором, из-за которого бывали внезапные сбои. При наличии генератора, робот всегда будет с собой таскать уголь, при разгрузке на точке старта будет забирать стак угля или угольных блоков. Текущие константа энергопотребления и координаты будут записываться в EEPROM. Следовательно, при наличии сетевой/связанной карты, робота можно будет будить и не бояться выгрузки чанков, лагов, космических лучей. Скорее всего, добавлю функцию аварийного крафта кирок из булыги, в случае работы с ванильными инструментами. Планируется утилита, собирающая программу по параметрам, заданным пользователем. ...Или не планируется, скорее всего все возможности копалки не получится впихнуть на EEPROM, поэтому на EEPROM будет загрузчик с main функцией, а дополнительные модули придется записывать на жесткий диск. Планируется поддержка модов, например, возможность возить с собой и разворачивать заправочную станцию в виде генератора и зарядника. Или скидывать предметы в межпространственные сундуки. Тут надо будет смотреть, как будут развиваться моды. В блоге буду описывать каждую функцию, чтобы отследить создание программы шаг за шагом, надеюсь, кому-то это поможет.
  20. Многие игроки здесь видели или хотя бы слышали про огромный дронодом, который построил @Asior в былые времена на сервере RoboCraft. С тем чтобы прояснить происхождение этой хаты и оставить о ней заметку в этом клубе, специально для «Новостей подполья» @Fingercomp обратился к создателю постройки и попросил рассказать про неё. Редакция представляет обработанную версию истории. История начинается в начале мая 2016 года, когда запустился сервер RoboCraft, на который сразу же хлынули толпы игроков, хотевшие «поскорее стать топовыми игроками, обладателями гор ресурсов и, конечно же, новых идей и программ». Туда попал и герой нашего рассказа. Развитие было довольно сложным. Поначалу он «хотел, как обычно, отстроить бункер и спокойно, потихоньку наращивать силы», но этому воспрепятствовал случай: система автоматического расселения игроков закинула Asior невесть куда — в середину заражённого биома. Очевидно, что герой этому не обрадовался. Ему потому пришлось бегать в поисках нового места. Конечно, Asior таки организовал себе временное убежище и начал стремительное развитие в игре. Но в чате игроки часто оставляли ссылочки на скриншоты своих невероятно красивых палат с невероятно крутых ракурсов. Он перерыл огромное число чертежей домов, замков, статуй — и решил построить дрона. Дрона из OpenComputers. Ведь сервер специально разрабатывался для этого мода. Asior зашёл в сингл и долго, упорно воздвигал новые варианты постройки и безжалостно крушил старые. Наконец, он определился с тем, как именно должно будет выглядеть его будущее жилище. Оставалось лишь воспроизвести это всё на сервере. Но здесь и возникла основная проблема: как добыть такое огромное количество ресурсов для строительства? Разрешена она была путём не самым чистым: Впрочем, и того, что он раздобыл, сполна хватило на постройку основного корпуса дрона. Это потребовало огромного числа строительных лесов и невероятных акробатических способностей и дополнительно осложнялось тем фактом, что полученные вечные блоки не перемещались из хотбара. Но стиснув зубы и получая подкормку от щедрых игроков Asior таки построил дрона. Потому пришлось придумать, как расширить жилище. Некоторые предлагали соорудить какое-нибудь здание, к которому был бы «привязан» дрон, но, увы, это не вписывалось в местность. Далее настала очередь внутренней отделки: ставились перегородки, размещалось оборудование. А монументальное сооружение, памятник роботу и дрону, стал пользовался большой популярностью, чему создатель не противился: «я был не против, чтобы все желающие посмотрели, как я живу, уточнили какие-то вопросы или помогли чем-нибудь». С тех пор сервер RoboCraft давно закрыт, но память о роботе и дроне жива до сих пор. Редакция присоединяется к пожеланию героя остроить то, что поражало бы воображение и отпечаталось в приятных воспоминаниях десятков игроков. И мы всё так же мы призываем вас оформить подписку на «Новости подполья». Годноты здесь много было, есть — а то ли ещё будет.
  21. Автокрафт на роботе. Программа не имет GUI. Всё управление осуществляется через командную строку. Для работы вам потребуется робот и сундук. Сундук должен стоять перед роботом. Робот должен иметь следующие улучшения: Улучшение «Контроллер инвентаря» Улучшение «Инвентарь» Улучшение «Создание» Улучшение «База данных (1-ый уровень)» Процессор уровня 2 и выше. Необходимый объём памяти и жёсткого диска зависит от количества предметов в сундуке и сложности рецепта. При тестировании использовался робот со следующими характеристиками: см. скриншот. Базу данных программа сохраняет в текущем каталоге. Поэтому для работы программы нужно создать отдельный каталог. Недостатки. Предварительный подсчёт достаточности ресурсов для выполнения сложного крафта не выполняется. Планируется исправить в будущих версиях. Инструкция с картинками. Man Скачать Версия 0.10.8 Старая версия
  22. Установка: Планшет-https://pastebin.com/ix7g8xjt Робот-https://pastebin.com/G74a13ev Создаём файл со скрытым расширением(Перед названием файла прописываем точку) Редактируем файл .shrc и вписываем туда название вашего файла(К примеру .robot) Видео: https://youtu.be/PKBDCgEQeH8 UPD:Забыл сказать,если в программе которая работает как основная нету os.sleep или какого-нибудь таймера простоя - программа будет работать только после завершения.
  23. Робот получает сигналы через "улучшение: чат" из мода Computronics Управление q = Вниз e = Вверх w = Вперёд s = Назад a = Поворот налево d = Поворот направот Пример: #qewsad
  24. Иногда надо получить относительные или абсолютные координаты робота или узнать путь, по которому он прошел, чтобы вернуть робота назад. Я немного модифицировал стандартную библиотеку робота, теперь можно задавать/удалять/просматривать координаты робота. Нет функции сохранения координат в файл, поэтому после перезагрузки координаты сбросятся, поэтому это делать надо самостоятельно. Так же, нафигация не работает, если управлять роботом, как компонентом (т.е. в обход robot API) скачать: pastebin get -f Hb32aQeR /lib/robot.lua Список новых функций: robot.getPos() - возвращает текущие координаты, если не заданы, то при первой загрузке библиотеки устанавливаются x, y, z = 0, 0, 0, а направление - север. robot.setPos(x, y, z, side) - устанавливает заданные координаты, side задается в формате N/E/S/W (стороны света) robot.getPath() - возвращает пройденный путь в виде строки, каждому движению соответсвует одна буква - [F]orward, [В]ack, p, [D]own, [L]eft, [R]ight. (например 'FFFULFFD' - три вперед, один вверх, один влево, два вперед, один вниз) robot.setPath(boolean) - активация/деактивация записи маршрута, соответственно true/false Можно было бы сделать в стиле navigation API с использованием sides API, но это не особо удобно. Триггер записи маршрута по-умолчаию отключен, для экономии памяти, ибо каждое движение съедает один байт, по-уму надо прикрутить автоматическое сжатие. Чтобы пройти по пройденному маршруту обратно, надо в начале активировать robot.setPath(true), а в конце запустить примерно такую программку: Полезно для полностью автономных программ. Очень удобно вытаскивать робота-грифера из чужих приватов. Утилита, через которую можно проверить и задать координаты: pastebin get nJ5i4qiL /bin/pos.lua Программа движения сквозь блоки: pastebin get X5G4PHnS /bin/goto.lua Роботу необходим инструмент для разрушения блоков, для запуска надо указать координаты.
  25. Сколько энергии расходуется за действия: 1 передвижение, 1 удар по блоку, 1 проверка блока перед роботом.
×
×
  • Создать...