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

Автономный робот

Вопрос

Привет всем, играл я как-то на сервере, где стоит ограничение 1 зарядное устройство для робота на чанк и я наткнулся на комнонент генератор.Не подскажете как лучшим образом написать функцию зарядки для робота. В идеале я хочу робота, который будет кликать пкм предметом в его руке и когда заряд падает ниже 25%, то он начинал заряжаться, при этом не делая пкм дальше т.к, когда он кликает пкм во время зарядки, то он кликает углём по блоку. Тем самым закидывает толпливо в блок, по которому должен просто пкм кликать. Такая ошибка происходит, когда я отгружаю чанк и он выплёвывает своё топливо в блок и вокруг.

P.s пытался автоматизировать пкм по рунической матрице из Botania

local component = require("component")
local robot = require("robot")
local computer = require("computer")

local generator = component.generator
local maxEnergy = computer.maxEnergy()

while true do
    local energy = computer.energy()
    local energyPercentage = energy / maxEnergy

    if energyPercentage < 0.20 then
        robot.select(1)
        generator.insert()
    else
        generator.remove()
        robot.select(16)
        robot.use()
    end
end

 

Изменено пользователем eu_tomat
оформление кода

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Скорее всего, надо убрать generator.remove() из ветки else, чтобы робот не доставал уголь обратно из топки.

Но вообще, ничто не мешает роботу параллельно заряжаться и кликать:

local component = require("component")
local robot = require("robot")
local computer = require("computer")

local generator = component.generator
local maxEnergy = computer.maxEnergy()

while true do
    local energy = computer.energy()
    local energyPercentage = energy / maxEnergy

    if energyPercentage < 0.60 and generator.count() < 64 then
        robot.select(1)
        generator.insert(1)
        robot.select(16)
    end
    
    robot.use()
end 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если уголь в слоте 1 поддерживается трубой, в таком случае желательно там оставлять 1 уголь, чтоб он заменился на что то другое.

local component = require("component")
local robot = require("robot")
local computer = require("computer")

local generator = component.generator

robot.select(16)

while true do
  if computer.energy() / computer.maxEnergy() < 0.20 and robot.count(1) > 1 then
    robot.select(1)
    generator.insert(1)
    robot.select(16)
  end
  robot.use()
end 

Также можно не проверять если уголь в генераторе, если энергия упала ниже 20 %, то там пусто

Изменено пользователем serafim

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...