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

Asior

Пользователи
  • Публикации

    570
  • Зарегистрирован

  • Посещение

  • Победитель дней

    70

Сообщения, опубликованные пользователем Asior


  1. Насчет лаунчера, все проще простого, самый обычный запуск на загрузку по очереди всех файлов. Вот пример например загрузчика бота.

    local fl = require('filesystem')
    
    os.execute('rm -r /bot')
    if not fl.exists('/bot') then
      fl.makeDirectory('/bot')
    end
    os.execute('pastebin get -f Wm7H7Nb4 /bot/bot.lua')
    os.execute('pastebin get -f MvR7FTGS /bot/imodem.lua')
    local f = io.open('/home/.shrc','w')
    f:write("/bot/bot.lua")
    f:close()
    os.execute('reboot')

     

    • Одобряю 1

  2. 54 минуты назад, serafim сказал:

    Лучше использовать дополнительно внешнюю защиту от перегрева на датчике температуры из IC2NuclearControl плюс элемент И

    сгорит весь редстоун нафиг. Там температура большая, все горит. Хотя если на сервере, то приват от пожара защитит


  3. Пароль менять как я понимаю только залезая в саму программу?

    Необходимо добавить подстройку под разное разрешение мониторов, а то print('------------') на других мониторах будет выглядеть очень коряво.

    Советую собрать какой нибудь установщик. Типа 1 файл грузим, запускаем, а он сам уже раскидывает все файлы по папкам, и прочее.

    Не проще было использовать os.execute() для запуска? Быстрее же и меньше мороки.

    Укажи для какой версии ОС это написано, например init в разных версиях сильно отличается, поэтому можно убить свою систему если ошибиться


  4. ОС то какой версии? Если ниже 1.7.2 то тогда да, там вроде масскана не добавляли еще. Странно что они его еще используют, там же баг на баге и багом погонят. Не помню уже, в этой ли версии можно в папочку сервера зайти или как ...


  5. Уу, тогда все вообще печально. Скорость программы высокая за счет массового сканирования слотов. Эта штука памяти жрет будь здоров, но выдает информацию по всем предметам за секунду. Если использовать послотовый скан, то там все будет печально и медленно. Походу и масс скан на твоем проекте не работает, тогда вечером перепишу на послотовое сканирование, хотя тогда шансы взрыва вырастут еще выше ...

    Стоп, стоп! Первый же скрин это программа для реактора на компе... короче вали с того проекта или пресуй админов хелперов чтобы они нормально приват помогли настроить. Ошибка возникает из за того, что транспозер в упор не видит сундуки и реактор ...

    Попробуй команду к привату /rg flag название_привата robots ник_игрока

    хотя наверное не сработает


  6. Насчет символов которые лепятся при копировании. Подозреваю в этом виноваты некоторые символы юникода. Пока закономерности не выявил, но программа явно распознает текст с интернет страниц как html.

    Насчет конденсаторов, красных и синих из индастриала. Щас потыкал потыкал, и не нашел как их собрать. У нас на проекте тоже крафта кстати нет, @Alex это к тебе такое напоминание, чтоб сделать крафт того чего у других проектов нет. Они кстати не разрушаются, тупо перестают собирать тепло на 2 единичках прочности. Так что если их не введут в игру, то остается использовать только охлаждающие стержни, которые хоть и долго крафтятся, но накапливают до 60к тепла, а потом долгое и нужное охлаждение в холодном реакторе.

    @yura0138 короче программу я написал, можно почитать её на пастебине, НО эта программа только для компьютера. Для робота крафтера дописываю.

    Скрытый текст

    vj6PPlk.png

    Как все расставлять видно на скрине, реактор тянет только на 98% при желании можешь подкрутить, но если произойдет сбой ... короче ручками даже в креативе нереально взрыв остановить. Та схемка кстати за 1 секунду на 5% реактор нагревает и это с 1 поврежденным конденсатором. Короче используй на свой страх и риск (моей тестовой карте каюк...).

    Автокрафт для робота пишу как могу. Думаю сегодня будет готово.


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

    robot.durability()

    Из кристалла увы и ах энергию не вытянуть роботу. И из ранца заряжающего, и из портативного аккумулятора любого типа. Даже генераторы специальные накачки не работают в роботах. Единственное что заряжается - инструмент из TConstruct-1.7.10 обмазанный мохом (автопочинка на свету).

    Так что зарядка электроинструментов - только через внешнее оборудование. Попробуйте кстати затолкать инструмент в зарядку робота, там много чего заряжается, хотя крайне медленно и с дикими потерями.

    Насчет магических вещей - по пределу укрепляйте и восстановление 1 вешайте, а в программе вешайте проверку целостности вещи. Как подберется к 3% лучше выплюнуть в сундук с отработавшим инструментом и взять новый. А потом игрок ручками, магией воскресит из ничего вещь.

    Рекомендую так же почитать про контроллер инвентаря он вам сильно облегчит жизнь по поиску целых мотыг.

     

    P.S. Да, я в курсе что инфа на том сайте уже сильно устарела, но для базовой работы новичку и этого будет за глаза


  8. 2 часа назад, Alex сказал:

    ок. Даже интересно стало, как это он неправильно копируется:)

    Так же подтверждаю. Иногда копируется с непонятными символами, которые ОС не в состоянии обработать. Щас у меня копируется все нормально, но у меня стоит копирование через приложение.

    Скрытый текст

    jQHlwN4.png

    А вот как повторить эту ошибку я хз.

     


  9. Так и последний тест. Для робота. Конфигурация на скрине, как ставить тоже на скрине. В сундук что у реактора вложи сожженый конденсатор, чем хуже он будет тем лучше. В сундук сверху насыпь блоков, что нужны для восстановления. Еще вопрос, какие конденсаторы используешь?

    • только синие
    • только красные 
    • смешано и то и другое

     

    Скрытый текст
    
    local c = require("component")
    local r = require('robot')
    local i_c = c.inventory_controller
    local craft = c.crafting
    local slots = r.inventorySize()
    
    local stat, vr = false
    
    print('тест 1. скан инвентаря сверху')
    local slotsInvRs = i_c.getInventorySize(1)
    print(slotsInvRs)
    
    print('тест 2. масс скан сверху')
    local data = i_c.getAllStacks(1).getAll()
    print('успешно')
    
    print('тест 3. забор/выгрузка расходников сверху')
    stat = r.suckUp(1)
    print(stat)
    stat = r.dropUp()
    print(stat)
    
    
    print('тест 4. скан инвентаря впереди')
    local slotsInvReac = i_c.getInventorySize(3)
    print(slotsInvReac)
    
    print('тест 5. масс скан спереди')
    local data = i_c.getAllStacks(3).getAll()
    print('успешно')
    
    print('тест 6. забор/выгрузка конденсаторов спереди')
    stat = r.suck()
    print(stat)
    stat = r.drop()
    print(stat)
    
    print('тест 7. тестовый крафт')
    r.select(1)
    r.suck()
    r.suckUp(1)
    stat, vr = craft.craft()
    print(tostring(stat)..' '..tostring(vr))
    r.drop()

     

    Скрытый текст

    gSpt6NE.png

    Скрин тоже желательно, чтобы понять все работает или как.

    Не забудь ОСь поставить на диск, а то придется робота перебирать.

    Памяти вроде хватает, но при желании можно больше (запас карман не тянет)

     

    Программу допишу тогда завтра. На основе теста она уже готова на 70%

    P.S. и дай скрин состава в реакторе, чтоб я его тоже на пределе погонял


  10. 3 часа назад, yura0138 сказал:

    дайте пожалуйста команду для проверки

    Лови код большого теста всего оборудования. Мне нужен будет скрин статуса после прогона. Установка оборудования приблизительно должна выглядеть так как на скрине. Тест для робота чуть позже кину (или не кину).

    ВЫРУБИТЬ реактор перед стартом теста!

    Скрытый текст
    
    local tr = require("component").transposer
    local slotReac = {}
    
    print('тест 1. на опознание окружения')
    for i=0,5 do
      local vr = tr.getInventoryName(i)
      if vr then
        print('сторона: '..i..'; имя инвентаря: '..tostring(vr))
      end
    end
    print('укажите сторону расположения СУНДУКА (цифрой)')
    local sideInv = tonumber(io.read())
    print('укажите сторону расположения РЕАКТОРА (цифрой)')
    local sideReac = tonumber(io.read())
    local slotsReac = tr.getInventorySize(sideReac)
    
    print('тест 2. масс скан')
    local data = tr.getAllStacks(sideReac).getAll()
    print('Успешно')
    
    print('тест 3. на обработку ресурсов')
    for i=0, slotsReac+1 do
      if data[i] and (data[i].name == 'IC2:reactorCondensatorLap' or data[i].name == 'IC2:reactorCondensator') then
        print('Конденсатор: '..(i+1)..'; состояние: '..data[i].damage..'/'..'nil')
        slotReac[#slotReac+1] = i+1
      end
    end
    
    print('тест 4. на извлечение')
    for i=1, #slotReac do
      print('импорт из слота '..slotReac[i]..' '..tostring(tr.transferItem(sideReac, sideInv, 1, slotReac[i])))
    end
    
    print('тест 5. на загрузку')
    vr = 0
    for i=1, #slotReac do
      vr = vr+1
      print('загрузка в слот '..slotReac[i]..' '..tostring(tr.transferItem(sideInv, sideReac, 1, vr,slotReac[i])))
    end

     

    Скрытый текст

    IpCvvSw.png

    Ну думаю с установкой разберешься. Монитор и системник любой.


  11. С ЖЯР взаимодействовать можно через апгрейд удаленного адаптера, указатель которого цепляется на внутренний реактор.

    Ну а если звездочка то все проще. Еще рас уточняю, надо:

    • мониторинг реактора и отслеживание уровня заряда конденсаторов

    при критическом уровне:

    1. отбой реактора
    2. извлечение конденсаторов
    3. перезарядка конденсаторов (кстати как их перезарядить?)
    4. возврат конденсаторов в реактор
    5. перезапуск реактора

    Впринципе решаемо, щас чего нибудь накодим, только интерфейса будет 0 (ибо лень). Отслеживание температуры как понимаю не надо, так как если контроль возьмет ОС, датчики температуры будут только датчиками. Аварийно отрубить при критической температуре они не смогут.

    Кстати роботы там как себя чувствуют? По сундукам могут лазить? Установка их разрешена в твоем мире? (есть проекты которые держат ОС ради компа и монитора, а все движущее летающее отрубают).

    Просто без робота я не вижу как это реализовать. Хотя есть вариант на автокрафте АЭ выехать ... короче жду уточнения


  12. 6 часов назад, Doob сказал:

    если встать под транспозер, то он будет работать с головой игрока как с обычным контейнером. Правда имя получает minecraft:air, но это не так уж важно.

    а можно подробнее с какой это версии ОС добавили и в каких версиях майна это доступно.

    майн 1.7.10 ОС 1.7.2 не работает


  13. 14 минуты назад, Doob сказал:

    А еще на пастбин закинул, чтобы саму прогу не получилось скачать :D

    Ну если ОС не осилит, то есть браузер, оттуда уже ручками можно копировать ))

    Насчет тысячи способов - была еще одна программа "Передача файлов через IRC" но она загнулась в связи с тем, что система расценивала быструю передачу как спам и соответственно или присылала модератора (с которым мне пришлось на ломанном английском изъясняться что я творю) или тупо автоматом кикала за спам. Так что способ передачи через мост оказался как мне казалось самым быстрым и простым.

    Остальные варианты рассматривают скорее всего подъем сервера у себя на компе, чего не каждый осилит.


  14. Представляю вашему вниманию программу для передачи файлов через мост Рида.
    Для начала расскажу что меня сподвигло на создание данной программы.
    На одном из игровых серверов неожиданно был заблокирован pastebin. Да, бывает и такое. В связи с этим обнаружились крупные сложности, если загрузить программу можно еще через гитхаб, или копипастом, то выгрузить базовыми средствами ОС не представляется возможным. Поэтому после нескольких неудачных попыток передать файлы из игры, была написана данная программа позволяющая спокойно, пусть и немного долго, передавать файлы.

    За основу был взят мост @1Ridav информацию по нему можете почитать тут Библиотека для работы с мобильным мостом. Клиент OpenComputers

    • Требования к железу:

    Для работы программы обязательно требуется интернет карта, библиотека моста Рида и сама программа.

    • Как установить?

    Грузим библиотеку Рида через гитхаб, а у кого не грузится, просто копируем в файлик bridge.lua

    wget https://github.com/1Ridav/Bridge-OpenComputers/blob/master/bridgeLIB.lua bridge.lua

    Грузим саму программу, если не грузится, копипаст в помощь

    pastebin get DiTncrRG br_file.lua

    • Как запустить?

    Вы же уже установили данную программу и на устройство приемник? На эмулятор или другой ПК в игре?

    Если все установили то на передатчике прописываем команду

    br_file put <путь до передаваемого файла>

     

    На устройстве приемника прописываем

    br_file get [путь до получаемого файла]


    Обратите внимание, при передаче обязательно необходимо указать на файл, иначе ничего не передастся.
    В приемнике можете не указывать путь для сохраняемого файла, в этом случае он будет сохранен в том же месте что и на передающем устройстве.
    После активации программ в нужных режимах придется немного подождать, так как установка связи - дело не быстрое, но если прям совсем уж долго не может связаться, попробуйте остановить программу комбинацией клавиш Ctrl + Alt + C и повторно запустить её. Такое бывает, незнаю с чем это связано, но такое бывает.
    Как только связь установится начнется передача файла. Полоска сверху отобразит прогресс.

    sCsGdsD.png

     

    • Чё так медленно!

    Да медленно, но а вы чего хотели от моста? Но хоть медленно но передается, хоть этому радуйтесь.:)

    • Я забыл команды!

    Просто введи команду запуска программы без аргументов, она подробно тебе расскажет что как вводить.

    И еще раз дублирую команды установки:
    wget https://github.com/1Ridav/Bridge-OpenComputers/blob/master/bridgeLIB.lua bridge.lua

    pastebin get DiTncrRG br_file.lua

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

    local KEY = "qwerty"

    Запускайте, передавайте свои секретные материалы, по супер секретному мосту, но помните, все тайное всегда становится явным.

    Так же как например этот текст. Только тсс ...

    • Нравится 4

  15. Ну незнаю насчет голосовалок. Если будут дальше использоваться UU или какая там валюта идет, то сразу возникнут вопросы, а где собственно голосовать. Так как лаунчер сразу закрывается после запуска игры, тогда да, в нем не надо голосовалок, а вот в менюшке майна можно добавить. Просто как показывает статистика (моя личная игры на разных серверах), зачастую после регистрации и загрузки лаунчера на сам сайт больше никто не заглядывает, и чтобы не объяснять "где взять UU" (зайди на сайт бла бла бла, тыкни туды, потом туды, потом туды...) проще сказать выйди в меню и проголосуй. А в лаунчере да, тогда не нужны кнопочки. пусть будет чистым.

    • Одобряю 2

  16. Что такое crystal ? Все перебрал в МЭ так и не нашел этой штуки.

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

    • Нравится 2

  17. Не так давно решил я немного нафармить обсидиана, но прыгать по озерам лавы, тушить её водой, а потом долго и нудно собирать как-то не то.
    Хотелось автоматизировать этот процесс. Да есть специальные генераторы обсидиана, но там требуются расходники в виде красной пыли или другого горючего материала, что для меня было неприемлимо. Поэтому был собран первый прототип генератора обсидиана. 

     

    Портатип генератора обсидианта Version 1.0

    Довольно сложная но красивая конструкция.

    Время генерации 1 стака ~ 2 минуты 30 сек.

    Внешний вид:

    lG5mXVR.gif

    Инструкции по сборке:

    Скрытый текст

    В комплект к роботу требуется некая емкость для которая будет хранить лаву (я использовал барабан на 256 литров из мода Extra Utilities) и ведро охладителя (обычная вода). В робота необходимо вставить:

    RXYFI89.png

    • Системный блок Т-2
    • Монитор Т-1
    • Клавиатура
    • Видеокарта Т-1
    • ЦП Т-1
    • Память Т-2.5 (2 штуки)
    • EEPROM (Lua BIOS)
    • Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!)
    • Улучшение "Инвентарь"
    • Бак для жидкостей"
    • Улучшение "Контроллер бака"

    Так же не забываем про бур/молот который может выбирать сразу территорию 3х3. Для работы необходима постройка как на скрине.

    cgik7Ct.png

    Ставим как на скрине сундук и зарядку, выдаем роботу в 1 слот охладитель, во второй бочку с лавой. Рекомендую заменить дно этой установки на какой то материал прочнее обсидиана, на крайняк обсидианом, причем в 2 слоя. Дело в том, что иногда происходит сбой в буре (зачастую из за ошибок сервера), из за чего он вскапывает не только по горизонтали но и по вертикали. Вы же не хотите в один прекрасный день обнаружить что от вашего генератора растекается лава по всему домику.
    Устанавливаем следующую программу:

    
    --1 слот ведро воды
    --2 слот бочка лавы
    --апгрейды: контроллер бочки, бочка, инвентарь
    
    local com = require("component")
    local r = require("robot")
    local tc = com.tank_controller
    
    local function go() while not r.forward() do os.sleep(0) end end
    local function goUp() while not r.up() do os.sleep(0) end end
    local function goDown() while not r.down() do os.sleep(0) end end
    
    
    local function dropFluid(slot)
      r.select(slot)
      if tc.drain() then --1000 мл
        r.fillDown()
      else
        if slot == 1 then
          r.select(2)
        else
          r.select(1)
        end
        tc.fill()
        dropFluid(slot)
      end
    end
    
    goDown()
    r.swingDown(0)
    repeat 
      r.fillDown()
      print('обнуление!')
    until r.tankLevel() == 0
    
    
    while true do
      
      go() r.turnLeft() dropFluid(2)
      go() r.turnLeft() dropFluid(2)
      go() dropFluid(2)
      go() r.turnLeft() dropFluid(2)
      go() dropFluid(2)
      go() r.turnLeft() dropFluid(2)
      go() dropFluid(2)
      go() r.turnLeft() dropFluid(2)
      go() r.turnLeft() go()
      r.turnAround() dropFluid(2)
      
      goUp()
      os.sleep(1)
      r.select(1)
      dropFluid(1)
      os.sleep(1)
      r.drainDown()
      tc.fill()
      goDown()
      r.swingDown(0)
      
      if r.count(3) == 64 then
        print('опустошаю инвентарь')
        goUp()
        for i=3, r.inventorySize() do
          if r.count(i) > 0 then
            r.select(i)
            r.dropUp(64)
          end
        end
        os.sleep(5)
        goDown()
      end
      if r.durability() < 0.1 then
        os.exit()
      end  
    end


    ВНИМАНИЕ! Для тех кто копирует, внимательно после вставки проглядите код, там могут встретиться такие символы "?" из за этого программа не запустится (тапки кидать в кривой html код)
    Запускаем программу и наслаждаемся результатом.

    Прогон на время с разными бурами (Синий бур из Graviation Suite и Бур из Immersive Engineering) показал слабый результат, стак обсидиана за 2 минуты и 30~35 секунд.

    По времени работы меня такой результат вполне устраивал, но потом @Romanok2805 показал свою версию похожего генератора.
    Описывать его я не буду, поясню что смысл работы того генератора, он черпает ведром лаву из бочки, выливает её рядом с источником воды, меняет ведро на бур и разрушает обсидиан. И так по кругу. Обмозговав алгоритм его работы, был придуман улучшенный генератор обсидиана.

    Генератор обсидианта Version 2.0

    Довольно легкая конструкция, дешевый робот.

    Время генерации 1 стака ~ 15 сек.

    Внешний вид:

    weKQTTZ.gif

    Инструкции по сборке:

    Скрытый текст

    Немного подумав и внеся пару раз изменения в программу, добились нереального результата: стак обсидиана за 14~16 секунд!
    Итак, конфигурация робота:

    cvqGiLw.png

    • Системный блок Т-1
    • Монитор Т-1
    • Клавиатура
    • Видеокарта Т-1
    • ЦП Т-1
    • Память Т-1.5 (2 штуки)
    • EEPROM (Lua BIOS)
    • Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!)
    • Улучшение "Инвентарь"
    • Контейнер для улучшения Т-1 (в него устанавливается Бак для жидкостей)

    Код программы:

    
    --обсидиановый майнер с внешней бочкой
    --обязательный компонент: инвентарь, расширение бака Т-1
    
    dropSide = 1 --сброс обсидиана 0 = низ; 1 = верх;
    impLava = 0 --забор лавы 0 = низ; 1 = верх;
    local r = require("component").robot
    local slots = r.inventorySize()
    
    local function drop()
      for i=1, slots do
        if r.count(i) > 0 then
          r.select(i)
          r.drop(dropSide)
        end
      end
      r.select(1)
    end
    
    r.fill(impLava,16000)
    drop()
    
    while r.drain(impLava) do
      r.fill(3)
      while r.swing(3) do os.sleep(0) end
      if r.count(slots) > 0 then
        drop()
      end
    end
    drop()

    Установка:

    SVnWqoe.png


    Под роботом разместите бочку, над роботом сундук. Сзади можно установить зарядку. Сбоку рядом с роботом разлить воду, а рядом с местом где будет ставиться лава убрать 1 блок, чтобы вода туда стекала. Роботу вручите самую быструю кирку, желательно с чарами на эффективность. При желании можете напихать в робота прокачанных апгрейдов опыта, чтобы увеличить скорость разрушения блоков, но тут уже конфигурацию робота и как апгрейды прокачать, сами продумаете.

    Генератор обсидиана Version 2.1

    Довольно легкая конструкция, дорогой робот. Внешняя бочка не требуется.
    Время генерации 1 стака ~ 15 сек.
    Внешний вид:

    sOSg0sT.png

     

    Инструкции по сборке:

    Скрытый текст

    В данной установке лава забирается напрямую из инвентаря робота, но тогда сложность робота повысится и программа изменится.
    Итак, конфигурация робота:

    RXYFI89.png

    • Системный блок Т-2
    • Монитор Т-1
    • Клавиатура
    • Видеокарта Т-1
    • ЦП Т-1
    • Память Т-2.5 (2 штуки)
    • EEPROM (Lua BIOS)
    • Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!)
    • Улучшение "Инвентарь"
    • Бак для жидкостей
    • Улучшение "Контроллер бака"

    Код программы:

    
    --обсидиановый майнер с внутренней бочкой
    --обязательный компонент: инвентарь, расширение бака Т-1, контроллер бака
    
    dropSide = 1 --сброс обсидиана 0 = низ; 1 = верх;
    local r = require("component").robot
    local tc = require("component").tank_controller
    local slots = r.inventorySize()
    
    local function drop()
      for i=2, slots do
        if r.count(i) > 0 then
          r.select(i)
          r.drop(dropSide)
        end
      end
      r.select(1)
    end
    
    while tc.drain() do
      r.fill(3)
      r.swing(3)
      if r.count(slots) > 0 then
        drop()
      end
    end
    drop()

    Установка:

    Постройку структуры гляди в предыдущей инструкции. Бочку необходимо положить в 1 слот.

    О том что можно такую ферму расширить до 2 роботов, думаю упоминать даже не стоит.

    Генератор обсидиана промышленный Version 3.0

    Дорогая конструкция, дорогой робот. Навешано чуть больше расчетов, в связи с чем время генерации обсидиана увеличено, но зато данный генератор может обновлять расходники.
    Время генерации 1 стака ~ 17 сек.
    Внешний вид:

    KMeo4VY.png

     

    Инструкции по сборке:

    Скрытый текст

    Все предыдущие версии фермы работают стабильно, но у них есть одно ограничение, как только разрядится бур, ферма перестает нормально работать. Вернее она вообще не работает. Или второй вариант, закончилась лава в бочке.
    3 версия программы справляется с этой задачей на ура, но сложность робота возрастает в разы.
    Итак, для сборки нам потребуется робот следующей конструкции:

     

    yE89S7S.png

    • Системный блок Т-2
    • Монитор Т-1
    • Клавиатура
    • Видеокарта Т-1
    • ЦП Т-1
    • Память Т-1.5 (2 штуки)
    • EEPROM (Lua BIOS)
    • Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!)
    • Улучшение "Инвентарь"
    • Улучшение "Контроллер инвентаря"
    • Бак для жидкостей
    • Улучшение "Контроллер бака"
    • Контейнер для улучшения Т-3 (в него устанавливается Улучшение "Опыт")

     

    После сборки в контейнер можно вставить Улучшение "Опыт", которое довольно быстро прокачается и добавит роботу не только дополнительную емкость батареи, но и повысит немного скорость копки, а также уменьшит расход энергии в буре. Хотя если ресурсов на него не хватает, то можно и не устанавливать.
    Планки памяти как вы заметили тоже снизили свой уровень, впринципе программа не сильно критично относится к памяти, но если захотите побольше, то не забудьте смерить Процессор на Т-2.

    Устанавливаем программу:

    
    --обсидиановый майнер с внутренней бочкой. Продвинутый!
    --обязательные улучшения: инвентарь, контроллер инвентаря, расширение бака, контроллер бака
    --справа или слева не забудьте установить сундук с бочками, откуда они будут забираться
    --снизу зарядка из мода вашего бура или зарядка ОС (она медленная но универсальная)
    
    dropObsSide = 1 --сброс обсидиана 0 = низ; 1 = верх;
    dropBoerSide = 0 --сброс бура 0 = низ; 1 = верх;
    importBar = true --взять бочку true = справа; false = слева
    local r = require("component").robot
    local tc = require("component").tank_controller
    local i_c = require("component").inventory_controller
    local slots = r.inventorySize()
    
    local function drop()
      for i=2, slots do
        if r.count(i) > 0 then
          r.select(i)
          r.drop(dropObsSide)
        end
      end
      r.select(1)
    end
    
    local function charging()
      r.select(2)
      i_c.equip()
      r.drop(dropBoerSide)
      os.sleep(30)
      r.suck(dropBoerSide)
      i_c.equip()
      r.select(1)
    end
    
    local function barrelUp()
      r.drop(dropObsSide)
      r.turn(importBar)
      r.suck(3)
      r.turn(not importBar)
    end
    
    drop()
    
    local i = 0
    while true do
      if r.tankLevel() < 1500 then
        tc.drain()
      end
      r.fill(3)
      while r.swing(3) do 
        os.sleep(0) 
      end
      i = i+1
      if i > 64 then
        i = 0
        if r.count(slots) > 0 then
          drop()
        elseif r.durability() and r.durability() <= 0.1 then
          drop()
          charging()
        elseif not tc.getTankLevelInSlot(1) then
          barrelUp()
        end
      end
    end
    drop()

     

    Теперь переходим к настройкам и структуре.

    EvU5gcw.png

    Структура почти не изменилась, если не помните как собирать, глядите инструкцию №2. Бочку запихиваем в 1 слот, в руку (роботу) бур скоростной, под роботом устанавливаем буфер зарядки (смотрите сами по своему буру), или если совсем все плохо с ресурсами, устанавливайте саму зарядку (она медленно но верно зарядит немного ваш бур). Справа(слева) устанавливаете сундук в который будут поставляться бочки с лавой.
    Соответственно в зависимости от конструкции производите настройку программы, ну там в комментариях все подробно описано.
    Запускаем, и радуемся! Теперь ваша ферма будет работать до бесконечности (ну или пока поставки лавы не прервутся).

    Собственно такие вот получились варианты сборки фермы обсидиана, я конечно хз зачем вам столько его потребуется, но, коль уж есть программа почему бы ею не воспользоваться.
    Всем удачи, копайте обсидиан быстрее, чем вам сосед :)

    P.S. Большое спасибо за демонстрацию и помощь в написании программы @Romanok2805, за информацию по багам @M_O_R_F_I_K

    • Нравится 8

  18. Базовый рабочий комплект:

     

    Системный блок Т1

    • Инвентарь
    • Клавиатура
    • Монитор (Т1)
    • Видеокарта (Т1)
    • Процессор (Т1)
    • Планки памяти (1.5 х2)
    • Жесткий диск с предустановленной системой OpenOS
    • Eeprom bios

    Ах да, если не сможет робот взаимодействовать с инвентарем, просто добавь его в приват.


  19. Уже вроде как сбрасывал кому то такую штуку, но повторю еще раз.

    --https://i.imgur.com/9aw0a6E.gifv
    --блоки руды сверху в сундук закидывать
    --сыпуху вниз будет скидывать
    --перед роботом не забудьте поставить подставку, так будет точнее ставить
    --в руку бур/кирку с максимальными чарами на удачу
    
    local r = require('robot')
    
    while true do
      r.select(1)
      if r.suckUp(64) then
        local rep = r.count(1)
        for i=1,rep do
          r.place()
          while not r.swing() do
            os.sleep(0)
          end
        end
    
        for i=1, r.inventorySize() do
          if r.count(i) > 0 then
            r.select(i)
            r.dropDown(64)
          end
        end
      else
        os.sleep(15)
      end
    end

     

    • Нравится 1
×
×
  • Создать...