[TechnoMagic 1.7.10] OpenComputers Создание робота для убийства мобов
Автор: Even1s · Обновлён:
Принцип работы
Данный гайд описывает создание робота для автоматического убийства мобов. Примечание: инструкция подходит для многих сборок, но автор использует сборку TechnoMagic. Отличия для других сборок будут отмечены отдельно.
Принцип работы: мобы спавнятся и притягиваются к роботу через материальный притяжатель. Робот убивает их и периодически складывает лут в сундук. Для удобства соединения лут направляется в другой сундук, от которого трубы ведут в систему ME и в таум-восстановитель. Из восстановителя меч возвращается к роботу. Цикл повторяется.
Сборка робота и установка OpenOS
1
Для сборки робота необходимы следующие компоненты (минимальные требования):
- Системный блок 2
- Процессор 1
- Видеокарта 1
- Память 1 (у автора 2 плашки, но можно использовать и одну)
- Жёсткий диск 1
- Дисковод
- EEPROM (Lua BIOS)
- Монитор 1
- Клавиатура
- Улучшение «контроллер инвентаря»
- Улучшение «инвентарь»
Соберите робота в сборщике роботов. Запускать его сразу не обязательно; если запустить, ничего не произойдёт, но робот не сломается.
- Достаньте дискету с OpenOS.
- Запустите робота и введите команду
install, затемopenosи подтвердите установку. - После установки дискету можно убрать.
Размещение блоков и настройка сервомеханизмов
Расстановка блоков может отличаться в зависимости от сборки. Вместо таум-восстановителя можно использовать любой блок, чинящий предмет, или хранилище, ведущее к нему.
Принципиально важно только местоположение сундука, остальное можно расставить по удобству.
Настройка сервомеханизмов:
- Вместо артаны положите меч, которым будете пользоваться вы.


- В третий сервомеханизм установите фильтр, чтобы он забирал все предметы из таум-восстановителя.
Инструментарий робота
3

Роботу необходим меч. Все предметы с мобов он должен собирать сам. Если по каким-то причинам робот не собирает предметы или вам нужно, чтобы он складывал их в сундук, поставьте рядом с ним кинетический притяжатель и голодный сундук или другой блок, всасывающий предметы.
Программирование робота
- Введите команду
edit[название команды, которое вам нравится] (также можно использовать для дальнейших правок). - Скопируйте код и вставьте его кнопкой Insert на клавиатуре или через настройки управления OpenComputers («вставить буфер обмена»).
- Для вызова команды введите её название.
Код программы
local robot = require("robot")local component = require("component")local inv = component.inventory_controller
local MIN_TOOL_CHARGE =0.6whiletruedofor i=1,200do
o,p= robot.detect()if o==truethen
robot.swing()else
os.sleep(1)endendfor n=1,16do
robot.select(n)
robot.dropDown()endif robot.durability()< MIN_TOOL_CHARGE then
robot.select(1)
inv.equip()
robot.dropDown()
os.sleep(1)
d = robot.compareTo(1)while d ==truedo
os.sleep(1)
d = robot.compareTo(1)end
robot.select(1)
inv.equip()endend
Разбор кода
Ниже приведено подробное описание работы кода. Если полное понимание работы робота не требуется, можно пропустить этот раздел.
local robot = require("robot")
local component = require("component")
local inv = component.inventory_controller
local MIN_TOOL_CHARGE = 0.6
Эта часть нужна для общей работы робота: чтобы он мог работать с инвентарём и функционировать корректно.
for i=1,200 do
o,p= robot.detect()
if o==true then
robot.swing()
else
os.sleep(1)
end
end
Здесь робот делает 200 ударов. Если мобов нет, он ждёт 1 сек (это немного лучше для оптимизации, но блок else можно убрать).
for n=1,16 do
robot.select(n)
robot.dropDown()
end
После этого робот сбрасывает все вещи, кроме меча.
if robot.durability() < MIN_TOOL_CHARGE then
robot.select(1)
inv.equip()
robot.dropDown()
os.sleep(1)
d = robot.compareTo(1)
while d == true do
os.sleep(1)
d = robot.compareTo(1)
end
robot.select(1)
inv.equip()
end
Финальная часть кода. Если у меча осталось менее чем 0.6 прочности (значение можно менять в самом начале кода, изменив MIN_TOOL_CHARGE), то он сбрасывается вместе с остальными вещами. Если сервомеханизмы настроены правильно, меч попадает в таум-восстановитель, а затем возвращается к роботу. После этого робот экипирует меч.
Примечание: при написании кода автор вдохновлялся гайдом «Зябл» на ферму дерева, но адаптировал его для убийства мобов.


