Поиск по сайту
Результаты поиска по тегам 'robot'.
Найдено 22 результата
-
Пока что приложение не до конца разработано, есть только сервер и скрипт для робота. Так что - ждите, мои дорогие форумчане. Для чего это нужно? Каким то образом, вы узнали что вас гриферят(допустим так) и решили не отдавать свои ресурсы и взорвать всё к чертям! Но вы не можете зайти на сервер или вы даже не дома! Просто взорвите свой дом роботом! ИЛИ Захотели потроллить друзей? Выйдите с сервера и начните управлять роботом! Они точно афигеют, особенно если их дома будут подорваны роботом. ИЛИ Сидите вы значит на диване и вам лень подойти к компу что-бы что-то сделать? Решение есть! Просто сделайте это с помощью телефона и робота! Выпуск первого релиза был назначен на 30.08.2021, но у меня юнити решила не качать Android Support для билда приложения. Постараюсь как можно быстрее поставить андроид саппорт и дам вам наконец эту безделушку. P.S. В первом релизе будет крайне малый функционал в виде передвижения во все 4 стороны + поднятие и спуск на 1 блок. P.S.2. Это мой первый проект, так что не бомбите от багов и проблем. 03.09.2021 19:50 UPD: Возможно сегодня если приложение будет работать, я выложу всё.
-
Привет, это моя первая программа для робота. Автоферма пшеницы. local args = {...} local io = require("io") local robot = require("robot") local comp = require("computer") local filesystem = require("filesystem") local r_forward = robot.forward local arg1 = args[1] local arg2 = args[2] function robot.forward() repeat os.sleep(0) until r_forward() return true end if (arg1 == "size") then if (arg2 == nil) then return print("Не указан размер") end local farmsize = io.open("/home/farm.cfg", "w") farmsize:write(arg2) farmsize:flush() farmsize:close() return print("Позиция установлена") end if (filesystem.exists("/home/farm.cfg") == false) then return print("Файл конфигурации не создан! пожалуйста используйте аргумент size *Размер поля*") end local farmsize = io.open("/home/farm.cfg") local size = farmsize:read() farmsize:close() function farm() robot.forward() for y = 1, size do -- собрать 1 линию robot.swingDown() robot.useDown() robot.placeDown() for x = 1, (size - 1) do robot.forward() robot.swingDown() robot.useDown() robot.placeDown() end -- поворот if y % 2 == 1 then robot.turnLeft() robot.forward() robot.turnLeft() else robot.turnRight() robot.forward() robot.turnRight() end end if(size%2 == 0) then robot.turnLeft() robot.turnLeft() robot.turnLeft() -- возвращение на базу for y = 1, (size - 1) do robot.forward() end robot.turnRight() robot.turnLeft() robot.forward() robot.turnRight() robot.forward() robot.turnAround() else for y = 1, (size - 1) do robot.forward() end robot.turnLeft() for y = 1, (size) do robot.forward() end robot.turnRight() robot.forward() robot.turnAround() end end function dropitem() robot.turnAround() for c = 2, 16 do robot.select(c) if robot.count() > 0 then robot.drop() else robot.select(1) break end end robot.turnAround() end if arg1 == "primary" then farm() if robot.count(2) == 64 then dropitem() end end local primary = nil while true do -- таймер(1час) for i = 1, 10 do os.sleep(370) print((10 * i) .. '%') end farm() if robot.count(2) == 64 then dropitem() end end Пару слов об аргументах *name*.lua primary(принудительный запуск сбора) *name*.lua size *size*(установка размера фермы) Также о настройке 1.Ферма должна быть одинаковая по размерам. т.е. 15x15 или 9x9 и т.д. 2.Робот должен быть установлен следующим образом(см.ниже) 3.(по желанию) дать роботу мотыгу чтобы он сам вспахал землю(в принципе просто можно задать ему размеры и дать семена и он сам вспашет землю и посадит семена) Просьба не судить строго так как это моя первая программа и вообще первая программа на языке LUA Жду адекватной критики и предложений. Спасибо за помощь игроку Asummonster
- 2 ответа
-
- 8
-
- farm
- opencomputers
-
(и ещё 1 )
Теги:
-
Давненько не было автокрафтеров тут. Может, кому-то пригодится моя версия. Предназначена в первую очередь для крафта всяких часто необходимых мелочей со сложными крафтами (например, компоненты OpenComputers) из примитивных исходных ресурсов (например, процессор из слитков золота и железа, тростника и редстоуна), которые у пользователя отнимают кучу времени на поиск всех транзисторов и крафт недостающих. Рассчитана на использовании робота и двух сундуков, один из которых - основное хранилище (может быть покрупнее), а другой предназначен для резервирования компонентов при крафте. Ссылка: https://pastebin.com/1gqtWLub Необходимая конфигурация робота: Проверялась работа на компонентах (корпус, память, процессор, жёсткий диск) второго уровня. Screen, Keyboard Crafting Upgrade Inventory Upgrade и Inventory Controller Видеокарта и экран первого уровня Для дальнейших потенциальных расширений: Беспроводная карта Upgrade Container Конфигурация установки: Перед роботом - контейнер ресурсов (любой из возможных инвентарей достаточного размера) Под роботом - контейнер-буфер (можно обычный сундук) Рядом желательно поставить зарядник Возможности: Рекурсивный крафт сложных рецептов. Ресурсов расходуется, по результатам практических испытаний, ровно столько, сколько необходимо. Каталог рецептов для крафта, разбитый на страницы по 10 предметов для более удобного пролистывания на маленьком экране робота. Портативность - требуется только робот, два сундука и исходные ресурсы. Желателен также источник энергии Сообщения о том, каких конкретно исходных ресурсов не хватает для крафта (исходные ресурсы - те, для которых не найдено рецепта) Процесс крафта подробно отображается на экране, чтоб за ним было не так скучно и одиноко следить (см. недостатки) Об окончании крафта робот сообщит приветливым писком. Равно как и о неудаче. Недостатки и известные недочёты: Скорость..... Крафт занимает значительное время. Например, изготовление процессора 3го уровня из примитивных ресурсов (тростник, красный камень, алмазы, дерево для резаков, слитки золота, железа) занимает около 5 минут. Стоит отметить что количество изготавливаемых предметов не сильно влияет на время (2 процессора, скорее всего, будут делаться те же примерно 5 минут). Не умеет работать с альтернативными ресурсами. Возможно, когда-нибудь исправлю. Не умеет работать с инструментами (имеются ввиду многоразовые, как молот ИК2). Возможно, так же когда-нибудь исправлю. Не умеет работать с количествами предметов более стака, а также не гарантируется корректная работа с предметами, не складывающимися в стак. Постараюсь исправить в ближайшее время. Нет поиска по именам компонентов (то есть, либо задаёте название компонента целиком, либо задаёте крафт через каталог). Когда-нибудь поправлю Проверок на наличие контейнеров не делается, так как программа писалась "для себя" и находится в разработке. В дальнейшем будут введены. Также не везде гарантируется наличие защиты от "Количество предметов: Привет". Особенности: Шаблоны содержатся в одном файле, что облегчает переносимость, но приносит определённые неудобства всвязи с размерами файла (12 строк на предмет). Буду думать, как лучше сделать (разбить на разные файлы?). Файл имеющихся шаблонов могу выложить при необходимости (на разных сборках эти шаблоны могут отличаться) Дальнейшее развитие (no promises!): Исправление имеющихся недочётов Поддержка работы по сети (заказ компонентов, сообщение о готовности - дистанционно). Работа с более сложными инвентарями - сборщики, и т.д. Работа с машинами-обработчиками ресурсов - когда-нибудь в отдалённом будущем, скорее всего. Управление: Интерфейс текстовый. Посмотреть команды главного меню можно, нажав "Enter" (оставив поле ввода пустым).
-
Я предлагаю запилить экспериментальный проект. Кодовое название - "Цитадель". Кавайная заставочка - сверху. Суть вкратце такова. Необходимо полностью развиться в Minecraft, с нуля, используя ТОЛЬКО роботов и дронов из OpenComputers. Делать что либо руками запрещается. (Если кто-то читает мою группу в ВК, там мелькал пост одного чувака, который снимает серию летсплеев с похожей идеей.) Для проекта берём сервер в сингле (например). Ставим несложную сборку - например Minecraft 1.12 + OpenComputers 1.7 + какой-нибудь тех. мод с хорошей OC-интеграцией, например - Mekanism. Далее генерим мир. Игрок будет обитать на спавне - в стартовой базе. У него в наличии будет: * закрытый ангар, в котором он живёт (выходить из него игроку нельзя), * вечный источник энергии, * компьютер третьего тира с беспроводной картой и интернет-платой, * пять доков с роботами (док - это ячейка с зарядником и люком наружу, где стоит робот), * пять доков с дронами, * небольшой запас провизии на первое время. Конфигурация дронов и роботов - тир три, с вайфай-картами и чанклодерами. На компы и роботов установлена OpenOS последней версии. Дроны прошиты нет-флашем. Основные задачи проекта: * наладить поставку провизии игроку * наладить добычу и хранение важных ресурсов * развернуть репликацию роботов и дронов Условие поражения: * потеряны все роботы и не выполнены основные задачи Сюжетный обоснуй: Игрок не совсем удачно десантировался с орбиты. У него мало ресурсов, но сохранился рабочий комплект робототехники и ядерный энергогенератор с ресурсом в тысячу лет бесперебойной работы. Атмосфера планеты непригодна для жизни человека. Что думаете по поводу идеи? Какие моды должны войти в состав сборки? Какие технические препятствия видите? Какие поправки стоит внести в стартовые условия? Какие действия по вашему стоит предпринять игроку первым делом?
- 60 ответов
-
- 2
-
- opencomputers
- minecraft
- (и ещё 4 )
-
Иногда надо получить относительные или абсолютные координаты робота или узнать путь, по которому он прошел, чтобы вернуть робота назад. Я немного модифицировал стандартную библиотеку робота, теперь можно задавать/удалять/просматривать координаты робота. Нет функции сохранения координат в файл, поэтому после перезагрузки координаты сбросятся, поэтому это делать надо самостоятельно. Так же, нафигация не работает, если управлять роботом, как компонентом (т.е. в обход 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 Роботу необходим инструмент для разрушения блоков, для запуска надо указать координаты.
- 2 ответа
-
- 2
-
- navigation
- robot
- (и ещё 3 )
-
Затеял строить машинный зал, но вручную копать было лень. Поэтому я набросал небольшую (на 100 строк) программку. Всё что она умеет - это копать ямы. Я думаю все мы писали такие программки время от времени, чтобы помочь со строительством или добычей. И эта программа не представляет из себя ничего особенного нового. Я попробовал слегка оптимизировать процесс выемки породы, но не более. Предлагайте свои улучшения по коду и алгоритму, чтобы создать THE BEST ULTIMATE DIGGER EVER и возвести стандарты рытья ям на новый уровень! Код: https://pastebin.com/rQ71KRND Установка: 1) Вручную. Копируем текст программы, открываем новый файл командой edit dwarf, нажимаем Insert чтобы вставить код, а затем Ctrl+S и Ctrl+W чтобы сохранить и закрыть файл. 2) С Pastebin. Выполняем команду pastebin get rQ71KRND dwarf. 3) С Hel. Выполняем команду hpm install dwarf.
-
Выкладываю код бота, с которым участвовал в UT2: Deathmatch. Много костылей и багов, да и код не образец красоты, но может кому-то будет интересно. https://pastebin.com/WHj45CNm Самое полезное там, наверное это функция raytrace. Она получает на вход две точки в трёхмерном пространстве, строит отрезок между ними, и возвращает все "кубы" которые этот отрезок пересёк. Использовалась для просчёта выстрела робота, чтобы исключить friendly-fire и стрельбу в молоко. Можно ещё глянуть алгоритм совместного гео-сканирования карты всеми роботами команды. Он позволял нормально сэкономить батарею.
- 1 ответ
-
- 5
-
- unreal tournament
- robot
-
(и ещё 1 )
Теги:
-
Итак, сегодня ночью я извлёк свою лопату и воскресил давно забытую тему... Погодите-ка. Гм. Месяц назад, как вы помните, у нас проходил первый этап Unreal Tournament (у нас даже топик остался) — песочница. Суть была такова: роботы по сигналу выползали из укрытия и начинали собирать монетки из появляющихся сундуков, а затем они относили всё на базу. Получился ивент эпически крутым: 4 участника и много зрителей. Подробнее почитать можете в топике, опять же. С сегодняшнего дня начинается обсуждение второго этапа Unreal Tournament. Этап 2: Deathmatch Ориентировочное время проведения второго этапа — середина апреля. У нас есть полтора месяца на подготовку арены и написания софта. Участники второго этапа: @electronic_steve, @FluttyProger, @astral17, @Totoro. Оставить заявку можно: в ЛС @Totoro или @Fingercomp; в этой теме; сообщением в IRC. Правила Правила второго этапа просты. Все участники играют против всех. Весь этап будет разбит на несколько матчей, по четыре участника. Каждый участник будет вести команду из 8 роботов. У каждого робота будет в арсенале запас из 1 бомбы и лазерной винтовки. После сигнала сервера роботы выползают из своих баз и выходят на поле. Цель роботов — убить своих соперников, не повредив своих. Сделать они могут бомбой — она может быть по таймеру (тогда взрыватель должен успеть удрать от неё до того, как она взорвётся) или по сигналу (все одинаковые, взрываются по сигналу любой команды и сразу все) — или лазерной винтовкой — но тут нужна прямая видимость. На поле будут в случайных местах генерироваться дроп (в виде выкинутых предметов) с дополнительными плюшками: уголь для пополнения энергии, бомбы и т.д. Та команда, которая последняя останется в живых, побеждает. Робот может получить дисквалификацию за: Ломание блоков арены. При этом можно уничтожать роботов и ящики. Фальстарт. Если начнёт двигаться до сигнала сервера. Забагованность и тормоза. Если программа случайно или намеренно создаёт жуткие тормоза или просто направлена на вредительские цели. Тут, конечно, решать будет админ. Ориентировочное время раунда — от старта до конца игры — 15 минут (если 3 из 4 команд сдохнут раньше — раунд, соответственно, закончится раньше). Каждые 10 секунд сервер будет рассылать сообщение для синхронизации времени. После финального сообщения раунд считается завершённым, и тут же происходит обновление счёта. Технические детали По части модов и версий ориентируемся на MC 1.10.2, OC 1.6, CX 1.6.2, OpenGlasses 1.4. Генерация лута будет происходить с помощью дебаг-карты. Чтобы роботы узнали о расположении бонуса, после генерации сервер будет слать сообщение с его координатами по беспроводной сети. Все роботы будут иметь одинаковую конфигурацию и чистую OpenOS 1.6 на борту. Однако разрешается писать разные программы для разных роботов. Арена не будет известна заранее. Нужно использовать какие-либо существующие (или пилить самому) библиотеки для поиска пути. Поиск роботов будет осуществляться геонализатором. Подготовка К ивенту нам необходимо подготовить несколько вещей. [Готово] [2017-02-26] Определиться с правилами. Для этого и создана эта тема. Пишите сюда ваши идеи и вопросы. [Готово] [2017-03-08] Подготовить арену. Надо построить поле, подходящее по размеру для четырёх команд по восемь роботов. Построить заграждения на арене для усложнения игры. Однако слишком ударяться в хардкор не надо. Сверху оградить стеклом, чтобы не дать роботам шанса удрать. Поставить где-нибудь компьютер центрального сервера. Обустроить как-то площадку для просмотра. [Готово] [2017-03-16] Написать софт для сервера. Сервер должен уметь объявлять начало матча по сети, генерировать бонусы, рассылать сообщения с их координатами и считать живых роботов. [Готово] Собрать заявки участников. [Готово] [2017-04-15] Провести игру. Обновления Здесь находятся ссылки на посты для ориентирования. Под каждой ссылкой вкратце рассказана суть. Если вы планируете участвовать в обсуждении, обязательно читайте обновления. [2017-02-26] Ссылка. Правила Софт Арена Планы Люди Обновления [2017-03-08] Ссылка. Арена Итоговая сборка Казусы Сервер [2017-03-17] Ссылка. Сервер Комплектация робота Арена Сборка Сигналы сервера [2017-03-30] Ссылка. Плазмаган Лончер Сайт [2017-04-08] Ссылка. Бомбы Геолайзер Стрим Готовность участников Ориентировочное расписание Бета-тест Сборка [2014-04-13] Ссылка. [2014-04-14] Ссылка. [2014-04-15] Ссылка. Проблемные вопросы Что из себя будет представлять бомба? Ориентировочно, будет два вида бомбочек — подрывающиеся по таймеру и по сигналу. Это будут микроконтроллеры, которые посылают сообщение на сервер с координатами и типом бомбы. А сервер уже рисует частицы и играет звуки, разнося роботов. Какие бонусы будут появляться? Бомбы двух видов, уголь для подзарядки, лазеры. Как находить роботов на арене сервером? Сервер будет слать сообщение "кто жив?", на которое роботы должны ответить, указав свой цвет. Какая комплектация робота? Ну что, посражаемся?
- 123 ответа
-
- 4
-
- opencomputers
- robot
- (и ещё 2 )
-
Сколько энергии расходуется за действия: 1 передвижение, 1 удар по блоку, 1 проверка блока перед роботом.
-
1) Может ли робот получить доступ к component.openperipheral_sensor через адаптер или только через компьютеры и контроллеры? 2) Можно ли определить, как подключены внутренние компоненты, вставлены ли они при сборке, либо в слоты расширения?
-
Это моя первая программа на этом ресурсе. Буду рад вашей критике, идеям по оптимизации кода. Загрузить можно по ссылке http://pastebin.com/bzBkTvkZ или набрать в терминале: pastebin get bzBkTvkZ cactus Начальные установки: 6 local len,w = 8,8 -- длинна и ширина поля 7 local s = 200 -- время ожидания созревания В 6 строке кода надо указать размеры вашего поля. По умолчанию стоит 8 х 8. В 7 строке время полного созревания урожая. Робота нужно установить на высоте 4 блока от уровня будущего поля. За ним поставить сундук. Робот должен обладать Апгрейтом -солнечная панель для подзарядки. Если поле еще не сформированно, то робот сам может засеять поле кактусами в шахматном порядке. Робот будет информировать вас о количестве высаженных кактусов, заряде батареи. При необходимости подзаряжаться. P.S. Хочу сказать спасибо Alex, за гайд http://computercraft.ru/topic/1520-chto-takoe-for-in-pairs/ Эта статья стала настольной книгой, чтобы разобраться в работе таблиц. Fingercomp за объяснение логики lua. Отдельное спасибо Totoro и qwertyMAN за быстрые ответы на мои порой нубские вопросы. Спасибо вам за терпение. )
-
Программа, которая заставляет робота копать 3x3. Скриншоты работы: TODO: Программа заставляет робота копать слоями 3х3 и выбирать подходящий инструмент при вскопке. Скачать прототип можно вот где-то тут Что думаете?
-
Библиотека создавалась для облегчения передвижения, навигации и работы с инвентарем. Робот отслеживает позицию и вращение относительно стартовой точки. Добавлена возможность движения по линии, просто говоришь в какую сторону идти или копать и сколько блоков. Может осматриваться вокруг себя в поиске сундука или блока по имени. Сделал отображение помощи по использованию функций робота в интерпретаторе lua, или с помощью tostring(robot.functionName). Весь стандартный функционал робота работает как описано в robot API, я переопределил то, что связанно с движением, чтобы не нарушалось отслеживание позиции, но сохранил выход, так что robotExt можно использовать вместо robot в ваших программах без каких либо изменений кода. Список функций: Исходный код http://pastebin.com/nTVxAQWA В будущем, возможно, добавлю еще дополнительные возможности, пока выкладываю то что есть. В проекте вывод статистики и предположительный запас заряда/прочности инструмента в режиме передвижения/копки. Пожелания, предложения и критика приветствуются.
-
Перенос статьи Эта тема была перенесена из блока "Статьи". Сама программа SnailExcavate - http://pastebin.com/LiUNDnUB, код LiUNDnUB. Текущие функции: выемка содержимого из заданного объема, выгрузка инвентаря, подзарядка робота и инструмента. При 2х сундуках на борту затруднений с выкапыванием шахты 48*48*7 не обнаружено. Требования к роботу: обязательные: инвентарь - 2 шт, контроллер инвентаря, ангел; желательные: улучшение опыт, улучшение парение2, батареи, чанклоадер, дополнительные 2 шт. инвентаря. Обязательные инструменты: бур в руке и что-нибудь в 1 слоте. Лучше факелы, т.к. возможно я будет реализация расстановки факелов на полу после раскопок, для облегчения встречи с роботом. ;рычаг - 2 слот, зарядник для робота - 3 слот, трансивер ЭИО (приемопередатчик) - 4 слот. Парение2 обеспечит безопасность в аду и энде, опыт увеличивает промежутки между зарядками робота и инструмента, особенно актуально при 4ех инвентарях, чанклоадер обеспечивает автономность. Главное отличие такого способа копания - это экономичность и скорость. При наличии GT это очень актуально, т.к. добыча топлива во время работы не происходит. По-умолчанию, робот выкапывает объём 48*48*7 с толщиной добываемого слоя 3. Параметры адаптированы для игры с GT. Добычу обсидиана лучше производить слоями в 1-2 блока. Иначе вода не попадает вовремя на лаву. Установка робота производится как на скрине (т.е. робот копает вперед (х) направо (у) вниз (z) с заданной толщиной слоя (d)) Запуск: SnailExcavate <x> <y> <z> <d> PS: Темная кирка полностью прокачанная у робота выше 10го левла способна выкопать 64*64*3 блока без полной разрядки. PPS: Жду в комментах пожеланий по улучшению программы и предложений по снижению энергозатрат при ее выполнении. Например, стоит ли делать проверку на пустоту перед добычей блока?
-
Пoлнoфункциoнальная прoграмма для кражи чужoгo имущества. Ну и в хозяйстве пригодится! Пoчему Wabbajack? Да пoтoму-чтo этo инструмент безумия! (Вooбще такoе название пoдoшлo бы бoльше автoматическoму гриферу с геoсканерoм, нo этo будет абсoлютнoе безумие, егo лучше назвать Sheogorath) Этa прoграмма прoста как тапoк и так же надежна, я сделал как мoжнo прoще, пoэтoму тут нет никаких излишеств, нет никаких забинденых кнoпoчек, кoтoрые надo жать пo стo раз. Чтoбы начать безумствoвать: Устанавливаем прoграмму на планшет и рoбoта (oба дoлжны быть с WiFi). Пoдхoдим пoближе к рoбoту. Запускаем прoграмму на рoбoте, затем на планшете (неудoбнo, нo не хoчу нагружать кoд сущнoстями, если и так рабoтает). На планшете вбиваем название любoй прoграммы, устанoвленнoй на рoбoте (например "go forward 5") и oна испoлняется. Чтoбы пoслать сooбщение не в терминал, а в интeрпретатoр, тo ставим перед сooбщением слеш (например "/print('Waaaaagh!')") Для бoлее удобнoгo безумства настoятельнo рекoмендую устанoвить на рoбoта этo: А если вы уже забрались в чужой приват и не можете открыть интерфейс робота, то можно установить ее через планшет: echo local r,a=require('"'robot'"'),{...}if a[1]=='"'suck'"'then for i=1,a[2] or 1 do r.suck()r.suckUp()r.suckDown()end elseif a[1]== '"'use'"' then for i=1,a[2] or 1 do r.use()r.useUp()r.useDown()end elseif a[1]=='"'drop'"'then for i=1,r.inventorySize()do r.select(i)r.drop()end end >> 1 Кoманды у прoги прoсты - 'suck' высасывает лут из кoнтейнерoв спереди, сверху и снизу, 'use' - юзает в тoй же пoследoвательнoсти, 'drop' - дрoпает все предметы, кoтoрые есть в инвентаре. Опциoнальнo мoжнo задать скoлькo раз надo юзать или высасывать. Примеры: 1 use 2 - скручивает механизмы, если есть ключ 1 suck 27 - высасывает 27 стаков из контейнера Если неудобно вводить длинные команды, можно назначить алиасы: Передвижение переназначается на WASD и Q = вверх, E = вниз, F = взять, G = использовать, H = дропнуть. После буквы можно указать, сколько раз надо совершить это действие, например: w 10 - сделать 10 шагов вперед. Q: Я ничего не понял, что делать? A: Значит мы скоро придем и добавим стержней в твой реактор!
-
Перенос статьи Эта тема была перенесена из блока "Статьи". Как известно, в ГТ основная головная боль - это поиск руд. Для этого приходится прокапывать километры шахт на разных высотах. Данное приложение позволяет сделать это без мучительных трудозатрат. По-умолчанию, робот копает 1024 блока длины, 2 блока высоты тоннеля, затем поднимается на 20 блоков выше и делает следующий тоннель, при этом он смещается на 1 блок, что помогает в случае использования пера 1ого левла. Всего получится 3 тоннеля. Остается пробежать по ним со сканером и пометить залежи руд. Робот в конце работы спускается примерно на ту же глубину, немного сместившись от места где начал. Настройка автоматизации непроста. Поэтому программа подойдет не всем. Но тоннель в километр робот 10 левла выкапывает без подзарядки. Требования: Робот алмазный. Апгрейды: 1 инвентарь, контроллер инвентаря, опыт, перо желательно 2 левла (если поручить роботу делать более 3 тоннелей), ангел. Инструменты: рука - лазер полностью заряженный, 1 слот - кирка или бур, 2 слот - блок красного камня или рычаг, но со вторым работать на сухую, 3 слот - зарядник, 4 слот - трансивер. Настройка оборудования: На базе трансивер должен быть связан с МФСУ для зарядки лазера. Трансиверы должны быть связаны двумя каналами приема-передачи лута. Т.е. игрок должен добиться такого результата: если положить разряженный или наполностью разряженный лазер в трансивер со стороны робота, то лазер должен попасть в МФСУ, зарядиться и вернуться полностью заряженным. Описание: Робот выкапывает 1ый тоннель полностью, заряжает лазер и себя, выкапывает следующий тоннель. И т.д. В конце работы спускается на начальную глубину, немного сместившись. Дальнейшие планы: 1. Возвращать робота точно в место старта. (не задавайте нечетное произведение значений высоты тоннеля и количества тоннелей, иначе искать робота придется с другой стороны) 2. Создание объемной системы тоннелей. 3. Создание карты ресурсов с помощью геоанализатора. (Грандиозный план будущего ) Программа: http://pastebin.com/5T70d5QF Имя: LaserTonnel.lua Код: 5T70d5QF Скрины будут позже. Программа полностью не отлажена. Просьба сообщить об обнаруженных ошибках и недочетах. Так же рад буду пожеланиям. PS: Сбор лута делать не планирую. Это технологические тоннели. И потребуется еще один апдейт - магнит. Либо несколько изменить логику работы. В любом случае, это сильно увеличит энергозатраты. Но, возможно и сделаю. Подпрограммы выгрузки уже есть в программе. Уже опробованные в другом месте. PPS: Программа будет прекрасно работать и с буром. Это несколько дольше. (Как приятная неожиданность) PPPS: Начальную точку копания советую иметь на глубине 13+граница бедрока. Тогда сканер покажет все содержимое до бедрока. Можно еще сэкономить, если учесть, что толщина любой жилы 7 блоков, то можно взять начальную высоту 13+4+граница бедрока(6)=23. У сканера останется еще 3 блока на захват полезного. Но в этом случае сканировать придется чаще, чтобы не пропустить.
-
Перенос статьи Эта тема была перенесена из блока "Статьи". Шахта копает квадрат со стороной до 65 блоков и 22 блока высотой. Сначала сканирует породу и ставит сундук для ресурсов, затем идёт собирать найденные руды и возвращается на начальную позицию. Что нужно: Библиотека smartMoving Сама программа бур(желательно иридиевый) сундук(желательно алмазный) Робот с такими апгрейдами: геосканер инвентарь(чем больше, тем лучше) контроллер инвентаря парение. Установка: Устанавливаем библиотеку - /lib/smartMoving.lua Устанавливаем программу. Использование: Ставим робота лицом на север!, высота зависит от того, что вы собираетесь добывать (робот будет копать 5 блоков вниз и 16 вверх).Даём ему бур и кладём в первый слот сундук. Запускаем программу, вводим число от 1 до 32 (радиус) и ждём завершения. Скриншоты: Большое спасибо @MineUbuntu за moving-api, я кое-что добавил в ней для работы в шахте и возможности обходить ульи.
-
Зачем для разных ферм писать разные программы? При помощи двух функций, я теперь могу сделать ферму crops и кактусов с минимумом изменений. Работает на любой длине и ширине поля, на любом роботе с инвентарем, пока робот висит у сундука, можно расширить грядку (не забыв при этом обновить границу из твердых блоков) Код библиотеки: pastebin get 3fYPKZ8v /lib/farmer.lua Настройки на строках 8 и 9 Ставим робота так, чтобы он стоял задом к сундуку, закидываем в первый слот сундук, чтобы робот мог найти отправную точку, делаем бордюр вокруг поля из любого твердого блока (уткнувшись в него, робот переходит на следующую линию) Примеры использования: Ферма кактусов Ферма на жердочках еще проще:
-
Ногами не пинать, это только ради фана. На дронах можно летать, все видели? А я катаюсь на роботах. Хоть по воздуху, хоть под землей. Нам нужны два робота с ангел-апгрейдом, вайрлесс картой и инвентарем, для одного нужен апгрейд- поршень. Ставим робота с поршнем, перед ним, через два блока ставим второго робота. (чтобы они смотрели в одну сторону) Кидаем обоим в первый слот по стаку грязи, в руки даем по кирке. На оба робота загружаем программу: http://pastebin.com/r4mJsSnS На заднем (который с поршнем) ничего не меняем, а переднему в первой строке меняем 'back' на 'front'. Заднему запускаем программу без аргументов. Ну а с переднего управляем всей этой ересью. Надо стоять прямо за рулевым, и писать команды: cart go [расстояние] cart turn left/right cart - название программы [1][2][3][4] [<][P][ ][<] 1, 4 - роботы P - игрок Прога жутко примитивная, но думаю, суть ясна))
-
Так уж вышло, что Сябро первый выложил на форум библиотеку для робота, а я свою написал ещё неделю назад (скрипач Морф - свидетель) Так вот, данное поделие служит для управления роботом и получением его координат. Сам код на pastebin кидать не буду, ибо он слишком прост. Для тех, кто ничего не понял, вот список функций (вместо {side} подставить North, South, West или East соответсвенно): getCoordinates():x,y,z,d Возвращает текущее положение робота и его направление (x,y,z - числа, d='N','S','W','E') go{side}():boolean Перемещает подопытного. Возвращает true в случае успеха. goUp() и goDown() делают то же самое, только... угадайте куда . smartTurnRight(), smartTurnLeft() и smartTurnAround() - ну тут всё понятно. turn{Side}() - поворачивают на север, юг... в общем, куда надо. getX(), getY(), getZ(), getDirection() - интересно, что же они возвращают... (подсказка - первые три - числа, четвёртая - строку) --------------- Новая версия! Изменения: Почти ничего, а именно: добавлены функции goX(), goY(), goZ(). Cкачать можно на Яндекс.Диске.
-
Уважаемые форумчане заметил что многим нужен насос,а так как он раздаётся только за голоса ,я решил сделать альтернативу ему. Вся эта конструкция состоит из 1 робота,1 зарядника,1 ведра,1 источника воды,и 1 цистерны воды. Комплектация компьютера: Золотой системный блок. все элементы 1 уровня, то есть процессор память,жесткий диск. еще нужен монитор, дисковод и клавиатура. Можете обойтись без дисковода ,установив все нужное ПО на жесткий диск перед установкой в робота. Программа всего 10 строк,очень маленькая ,но я пытаюсь не программу сделать,а саму идею вам дать. P.S Когда цистерна заполниться робот начнёт обратно откачивать,так что выкачивайте из цистерны быстрее чем робот набирает,вот такой баг(я постараюсь его исправить). ссылка на пастебин: http://pastebin.com/J2rgFAvy
-
Написал небольшую утилиту,для расчета координат черепахи без gps.Pastebin http://pastebin.com/jEsjVFjt Описание: есть все стандартные функции turnLeft() turnRight() forward() up() down() все я думаю знают что они делают,если не знаете бегом на вики. эти функции использовать как стандартные. это не библиотека ,это больше похоже на шаблон,в переменных x,y,z хранятся координаты,sides сторона, SOUTH= 0 -- юг EAST= 3 -- восток NORTH= 2 -- север WEST= 1 -- запад . можно изменять только Max_World_Y ,и Min_World_Y ,они обозначают пределы мира по y координаты,не изменять больше чем пределы мира. про все баги сообщать мне. Использование: при запуске программы вести аргументы это данные черепашки ,их можно узнать став на нее сверху и нажать F3 1. сторона f в которую черепаха смотрит(линия на черепашке, похожа на дисковод) 2. x 3. y-1 так как вы стоите на ней,она ниже на 1 блок вас. 4. z