vx13 2 271 Опубликовано: 30 ноября, 2015 (изменено) Автокрафт на роботе. Программа не имет GUI. Всё управление осуществляется через командную строку. Для работы вам потребуется робот и сундук. Сундук должен стоять перед роботом. Робот должен иметь следующие улучшения: Улучшение «Контроллер инвентаря» Улучшение «Инвентарь» Улучшение «Создание» Улучшение «База данных (1-ый уровень)» Процессор уровня 2 и выше. Необходимый объём памяти и жёсткого диска зависит от количества предметов в сундуке и сложности рецепта. При тестировании использовался робот со следующими характеристиками: см. скриншот.Базу данных программа сохраняет в текущем каталоге. Поэтому для работы программы нужно создать отдельный каталог. Недостатки.Предварительный подсчёт достаточности ресурсов для выполнения сложного крафта не выполняется. Планируется исправить в будущих версиях. Инструкция с картинками. Сборка робота. Требования: Системный блок 2-го уровня Процессор 2-го уровня Память — 2 планки 2-го уровня Жёсткий диск от 1-го уровня EEPROM (Lua bios) Видеокарта 1-го уровня Интернет-карта (для скачивания программы с pastebin) Улучшение «Контроллер инвентаря» Улучшение «Инвентарь» Улучшение «Создание» Улучшение «База данных (1-ый уровень)» Клавиатура Монитор (1-й уровень) Дисковод Установка робота.Устанавливаем робота. Перед роботом ставим сундук. Установка программы.Вставляем дискету с OpenOS в робота. Выделяем программе отдельный каталог. Я использую жёсткий диcк робота целиком (система на дискете). Переходим в него. Скачиваем программу с pastebin. cd <каталог для программы> pastebin get GLFBg1cQ craft.lua Для ускорения набора команду craft.lua можно переименовать в однобуквенную. Подготовка к работе.Загружаем в сундук ресы, которые нам потребуются для крафта.Вводим команду «craft -u». В текущем каталоге будут созданы файлы с названиями предметов (пробелы и символы «/» в названии заменяются на символ «_»). Запрос предметов.Набираем команду «craft имя кол-во». Если количество не указано, будет выдан один предмет. При наборе можно использовать автодополнение по нажатию клавиши TAB. craft Железный_слиток Предметы выдаются в инвентарь робота. Если инвентарь полный, робот предметы не выдаст.Если робот не найдёт предмета и у предмета нет рецепта, робот сообщит об этом. Если рецепт есть, то робот попытается скрафтить предмет. Крафт многоступенчатый, то есть будут крафтиться недостающие предметы. Если робот сообщил, что ему не хватает какого-либо предмета, то добавьте этот предмет (или рецепт для его создания) и повторите запрос. Добавление предметов в сундук.Можно просто положить предметы в сундук и выполнить команду «craft -u». Но полное обновление может занимать около 30 секунд, поэтому лучше добавлять предметы через робота.Положите предметы, которые вы хотите добавить в рабочие слоты робота. Выполните команду «craft -c»Рабочие слоты робота 1, 2, 3, 4, 5, 6, 7, 9, 10, 11. Если вы что-нибудь положили в сундук (или взяли из него) в обход робота, и не выполнили команду craft -u, робот прервёт выполнение запроса. Добавление рецептов. Выкладываем рецепт в левом верхнем углу робота. Набираем команду «craft -w». Программа анализирует рецепт и пробует выполнить крафт. Если успешно, то рецепт записывается в базу. Результат крафта лежит в 4-м слоте. Если рецепт неверный, будет выведено сообщение об ошибке. Если предмет вам не нужен, отправьте его в сундук, набрав команду «craft -c». Man Использование: craft -w Запись рецепта, выложенного в левом верхнем углу инвентаря робота. craft <файл с хешем предмета> [<Кол-во>] Выдаёт предметы. Крафтит недостающие. Например «craft Дубовые_доски 2» Опции: -s отправить результат крафта в хранилище. -o не искать в хранилище. Только крафт. -u просканировать хранилище. -c очистить рабочие слоты робота. -r вывести отчёт. -l создать файлы с хешами. Файл с хешем — это файл содержащий хеш предмета. Файлы с хешами создаются автоматически. Могут быть востановлены командой «craft -l». Имя файла с хешем — это имя предмета в котором пробел и слеш(/) заменены на знак подчёркивания(_). Скачать Версия 0.10.8Старая версия Изменено 20 сентября, 2017 пользователем vx13 9 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 30 ноября, 2015 Была у меня прога, может, кто помнит, тоже автокрафт. http://computercraft.ru/blog/3/entry-412-avtokraft-opencomputers/ Всё было хорошо: и поиск, и рецепты, и дерево крафта, и проверки, кроме одного: оно на АЕ. Пробовал переписать — лень стало. Так что жду озарения пока. По поводу прожки — молодец! Правда, подсчёт нужен очень для АК. Ибо основная фишка — это объёмные крафты. То есть крафтить верстак, если имеется только бревно, например. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 30 ноября, 2015 Была у меня прога, может, кто помнит, тоже автокрафт. http://computercraft.ru/blog/3/entry-412-avtokraft-opencomputers/ Всё было хорошо: и поиск, и рецепты, и дерево крафта, и проверки, кроме одного: оно на АЕ. Пробовал переписать — лень стало. Так что жду озарения пока. По поводу прожки — молодец! Правда, подсчёт нужен очень для АК. Ибо основная фишка — это объёмные крафты. То есть крафтить верстак, если имеется только бревно, например. Если робот сможет скрафтить верстак ... сам, то игрок ему, уже будет - не нужен. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 30 ноября, 2015 @@vx13, молодец, но немного описание уточни (добавь), мол один сундук, или несколько (например, сверху снизу, справа и слева), где они стоят, есть ли многоуровневый крафт, или только крафт в один шаг и прочее, куда оно вылетает готовое скрафченное, что робот говорит, если чего-то не хватает( ИД или имя, пищит, не пищит, пишет ли, чего именно и сколько не хватает), пример рецепта в базе, как он именно записан, что планируется добавить в программу в будущем и т.п., И скинчики кинь более информативные (мордофейс, создать рецепт, скрафтить, скрин комплектующих для робота в ассемблере на ванильных текстурах и прочее по мелочи) А то пока только с ходу понятно, что робот работает с одним сундучком и может или записать выложенный рецепт, или покопаться в сундучке и скрафтить что-то, или вывалить все из себя в сундук. Нам то понятно в целом, кто видел ОС, но у новичка будет миллион вопросов. И будет бомба, а не программка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 1 декабря, 2015 Добавил инструкцию с картинками. Программу написать легче, чем мануал к ней. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 3 декабря, 2015 Я как-то тоже боролся с автокрафтом, все уперлось в скорость, потому-что робот с одним сундуком, без посторонней помощи не может крафтить абсолютно все, а с несколькими сундуками он будет медленно искать предметы. Чтобы ускорить работу без разделения рецептов на диапазоны, для кучи роботов, необходимо сделать автоматизированное хранилище, к которому робот будет иметь доступ. Сделал небольшой набросок: Бирюзовые сундуки это хранилища, красные - буферы, синий - ввод. Раз в несколько секунд компьютер должен проверять наличие во входном сундуке наличие предметов и распределять по хранилищу, обновляя базу данных. Робот, когда ему поступает задание на крафт, запрашивает предметы из хранилища и почти моментально крафтит предметы. Чтобы сделать такую систему хранилищ с транспозерами надо автоматизировать подключение новых ячеек. Я не смог сделать автоматическую биндилку, поэтому задавать направления переноса предметов, расположение буферов и хранилищ придется вручную, а это очень и очень нудное занятие. Можно было-бы сделать быстрое создание хранилищ при помощи адаптеров, они могут получать названия контейнеров, следовательно можно легко сделать автоматическую конфигурацию по типам хранилищ, но мне лень с этим возиться, да и вряд-ли это кому-то нужно. Для одного человека совершенный автокрафт не особо нужен, а большой толпой в майне никто не уживается, потому-что чем больше народу, тем больше шума и меньше порядка. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 3 декабря, 2015 Раз Санги ввел транспозеры, нужно ему толкануть идею перемещения реса в другой транспозер по нашим цифровым проводочкам, аля АЕ-шка=) Мол, типа, из слота 5 стороны 1 транспозера A переместить рес в инвентарь, сторона 3, слот 2 транспозера Б. Тогда ОС-ка заменит все на свете и можно будет полностью автоматизировать реактор, печечку и дробилку какую-то на одном компе, без дополнительных роботов, воронок и прочего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 3 декабря, 2015 Не, из транспозера в транспозер это тоже самое что и с сундуками-буферами, проблема в том, что нельзя настроить автоматическое направление предметов, т. е. не указать в какую сторону двигать ресурсы в хранилище и обратно, в этом трубы удобней. Но можно сделать длинную кишку из транспозеров и сундуков, а буферы определять по размеру контейнера (к примеру, использовать в качеств буферов какие-нибудь дропперы) Если эту кишку протянули с юга на север, то ставим на юге вывод, а на севере ввод, алгоритм распределения будет очень простой - с ввода по направлению на вывод перекидываются предметы и распихиваются по хранилищам. Ну, а с в выводом наоборот - загребаются из хранилищ и двигаются на юг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 3 декабря, 2015 В том то и дело, что эти длинные кИшки никто не будет строить и синхронизировать и заморачиваться с ними. Да и я о другом, именно о передаче реса ОС-кой дальше, чем на 2 блока, а именно вроде как по проводам ОС в другой транспозер единой локальной сети, а можно и вай-фай сети. Будет вообще цифровой тессеракт типа с настройками программными))). А крафт на транспозерах пока гемОрно делать, максимум - это робот-сундук или робот-база сундуков. Транспозерам только можно пополнять базу как-то или сообщить роботу, что там реса нет, чтобы он туда не ехал. Хотя это и адаптерами можно сканить или киллить рес в слотах ненужный. Сейчас от транспозера толку мало. Это по сути гибрид адаптера+управляемая воронка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 3 декабря, 2015 Транспозеры можно объединить в одну сеть через якорный сундук края, выделив там один слот для системы транспортировки. Управлять передачей будет компьютер. Задать маршруты в конфиге, что-то вроде «из инвентаря на стороне «Верх» в транспозере A пересылать в инвентарь на стороне «Низ» в транспозере B» Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 6 января, 2016 Версия 0.9.3 — Исправлена потеря доступа к рецепту предмета при наличии в сундуке предмета с таким-же именем, но без рецепта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 7 января, 2016 Вопрос: а как быть с такими предметами, которые можно крафтить из составляющих разного типа? Например, одну и туже палку можно скрафтить из березовых досок, из еловых, из дубовых, а также из разных их комбинаций. Как научить робота крафтить палку из любых доступных досок? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 7 января, 2016 Вопрос: а как быть с такими предметами, которые можно крафтить из составляющих разного типа? Например, одну и туже палку можно скрафтить из березовых досок, из еловых, из дубовых, а также из разных их комбинаций. Как научить робота крафтить палку из любых доступных досок? В моей программе это не предусмотрено, так как слишком усложняет алгоритм крафта (нужно оптимально распределить предметы в сетке для максимальной скорости крафта, так как крафтить по одному предмету слишком долго). Нет способа определить разные типы досок, так как предметы в бд хранятся по их хешу. И я не знаю как удобно указать при записи рецепта, что для определённого предмета метаданные нужно игнорировать. В общем, овчинка выделки не стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 7 января, 2016 Вопрос: а как быть с такими предметами, которые можно крафтить из составляющих разного типа? Например, одну и туже палку можно скрафтить из березовых досок, из еловых, из дубовых, а также из разных их комбинаций. Как научить робота крафтить палку из любых доступных досок? Я думаю можно сделать таблицу с ключом plank, и забить туда все названия планок. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 20 сентября, 2017 Версия 0.10.8. Изменён формат БД. Конвертер из старого формата присутствует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 144 Опубликовано: 15 августа, 2018 (изменено) Класная прожка ток жаль что на 1 сундук Изменено 15 августа, 2018 пользователем whiskas Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stanislavich 0 Опубликовано: 27 сентября, 2018 Простите возможно за глупый вопрос. У нас на сервере обновили опен, перестала работать старая версия. ПОставил новую, но она теперь не может видить сундук. НЕ подскажите в чем может быть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 27 сентября, 2018 52 минуты назад, Stanislavich сказал: Простите возможно за глупый вопрос. У нас на сервере обновили опен, перестала работать старая версия. ПОставил новую, но она теперь не может видить сундук. НЕ подскажите в чем может быть проблема? В связи с переходом на новый движок форума куда-то пропали все экстрасенсы. Остальным форумчанам нужен проблемный код и, желательно, версия OpenComputers, в которой этот код не работает. Возможно, тогда кто-то сможет ответить на этот вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stanislavich 0 Опубликовано: 28 сентября, 2018 Версия опена - OpenComputers 1.7.2.1166 . Проблем с кодом никаких не выбивало, просто при использовании craft -u выбивает, что сундук не найден. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 Автор темы 2 271 Опубликовано: 28 сентября, 2018 Если запускашь на сервере, то нужно добавить робота и мод в приват. Для WG: rg addmember приват ник_владельца rg addmember приват -n [OpenComputers] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах