Перейти к публикации

В ближайшее время постараюсь разобраться с картой сервера/ЛК/бб кодами

Внимание, с 14 февраля до 20 февраля могут проходить работы на сервере, где также находится лаунчсервер. В связи с этим авторизация в лаунчере может не работать

BarBoss

Спиральный карьер для робота

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

Сделал было робота-карьериста вырубающего сплошной массив, но оказалось, что на ИТ он малоэффективен. Основная добыча - кобла. Горизонтов руд, как на МТ, здесь нет.  Если нет чанклоадера, то карьер вообще бесполезен. Всё равно приходится стоять рядом и пасти его.

Испробовал вариант проще. Это модификация широко известной "бесконечной комнаты", которая роет горизонт высотой 3 блока по спирали от центра. С  небольшим изменением - добавлен ограничитель радиуса и, самое главное, робот роет не сплошной горизонт, а движется по спирали, оставляя между витками стенку толщиной в два блока. Дополнительным ограничением является износ кирки (я использую самые простые - бронзовые). Сломав кирку он останавливается и ждёт, когда её заменят.  Дополнительным бонусом "спиральной" траектории является то, что робот нырнув в лаву или воду с большой вероятностью вернётся в мои цепкие лапы. :)

 

Робот использован простой. Второй уровень, память Т2.5, 1 инвентарь и генератор. Желателен  контейнер 3-го уровня - туда можно поместить апгрейд "опыт". Ангельский апгрейд тоже не помешает - робот сможет поставить сундук в лаву или навесу и нормально разгрузиться. Иначе он лут просто выбросит.

 

Вот сама програмуля:

 

 

 

-- В последний, 16 слот,несколько сундуков (чем больше, тем лучше).
-- В предпоследний, 15 слот, топливо (любое, которое горит);


local long = 25 -- ограничитель - радиус спирали
local r = require("robot")

local component = require("component")
local g = component.generator

local leng = 3

local i = 0
local j = 0

function eat()
local selectedSlot = r.select()
--begin
r.select(15)
g.insert(8)
r.select(selectedSlot)
end

function fillChest()
local selectedSlot = r.select()
local k = 0
--begin
r.select(16)
r.placeDown()
for k = 1, 14 do
r.select(k)
r.dropDown()
end
r.select(selectedSlot)
end

function checkInv()
--begin
if r.count(14) > 0 then
fillChest()
end
end

function forward()
checkInv()
repeat
r.swing()
until not r.detect()
while not r.forward() do os.sleep(0.2) end
r.swingUp()
r.swingDown()
end

--begin

forward()
r.turnRight()
forward()
r.turnRight()

-- while true do
for k = 1, long do
print("Current tunnel length: "..leng)

if g.count() < 1 then
eat()
end

for j = 1, 2 do
for i = 1, tonumber(leng) - 1 do
forward()
end

r.turnRight()
end
-- для спирали добавил два шага вперёд
leng = leng + 3
end

 

 

Итак, ставим робота даём ему кирку, сундуки и уголь. Запускаем. А потом топаем сзади и выколупываем из стен то, что нам приглянулось.

Изменено пользователем BarBoss
  • Like 1

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


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

Я тоже себе с месяц назад подправил этот код до спирали. Рад что не я один так подумал. Только радиус ограничения не ставил и использовал бур как инструмент (бур разрядился и робот приостанавливает работу). Сейчас еще можно и генератор не ставить т.к. энергии у робота и так много, а от генератора он все равно не успевает заряжаться.

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

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×