serafim
-
Публикации
367 -
Зарегистрирован
-
Посещение
-
Победитель дней
46
Сообщения, опубликованные пользователем serafim
-
-
В общем было мне скучно, решил посмотреть как запилить прогу на шаблонах
Чуда не случилось ¯\_(ツ)_/¯
робот не может выставлять схему в реакторе из 54 компонентов быстрее 33 секунды (также и здесь)
зато теперь можно выставлять разные схема для реактора одной прогой
также если компонента нет в инвентаре робота, прога ругается чего не хватает и ждёт пока его добавят
х.з. выкладывать или нет ?
в любом случае она быстрее работать не стала
-
2 минуты назад, demongts1998 сказал:сможешь выручить
я не фанат лагодромов, а именно для этого прога и сделана, так что без меня
-
19 часов назад, demongts1998 сказал:324 реактора нужно заполнить схемами
жуть какая, а потом жалуются что сервак лагает (
по поводу улучшения проги
можно избавится от сотни операторов or используя цикл и таблицу с шаблонами, (возможно это немного поможет)
также добавит универсальности, используя шаблон можно будет расставлять различные схемы одной прогой
одной из проблем является то, что робот не может произвольно ложить компоненты в реактор, только последовательно
-
1
-
-
10 минут назад, demongts1998 сказал:на серве тестить надо, а они на вайпе
без разницы
случаем не такая ошибка
Скрытый текст
-
1 час назад, demongts1998 сказал:unrecoverable error computer halted
случаем не 1,7,2 там был такой баг, при выключении все данные вместе с ОС стирались
-
12 минуты назад, demongts1998 сказал:теперь все верно?
да
18 минут назад, demongts1998 сказал:в одиночке робота не удалось запустить
опиши подробней
1 час назад, demongts1998 сказал:шина импорта меч забирать не будет, только лут
это условие выполнено ? иначе без меча в руке робота прога буде вылетать в ошибку
можно настроить фильтр для карточки МЕ чтоб шина импорта забирала всё кроме меча
-
на этом пасте https://pastebin.com/WxxiDqcH поменяй код на этот
Скрытый текстlocal robot = require "robot" local component = require "component" local inv = component.inventory_controller os.execute("cls") print("РОБОТ РАБОТАЕТ!! Создатель - demongts1998") while true do if robot.durability() < 0.2 then robot.turnAround() inv.equip() robot.drop() os.sleep(7) --время на зарядку меча robot.suck() inv.equip() robot.turnAround() end while robot.detect() do robot.swing() end end
там ошибка, двойной robot.detect()
Скрытый текстwhile robot.detect() do while robot.detect() do robot.swing() end end
-
4 минуты назад, demongts1998 сказал:т.е. он и мобов и руду будет гасить?)))
угу, принципиально нет разницы
будет работать при условии что у робота в руке есть меч(кирка, бур и т.д.), и шина импорта меч забирать не будет, только лут
но в редких случаях может вылететь в ошибку, так как может не найти в инвентаре робота меч
-
10 минут назад, demongts1998 сказал:сможешь скинуть еще код чтобы он рубил?
https://computercraft.ru/topic/3907-programma-mob-grinder/?do=findComment&comment=45577
это подойдёт как для мобов, так и для руды
-
вот так выглядит готовый вариант
Скрытый текстlocal robot = require "robot" local component = require "component" local inv = component.inventory_controller os.execute("cls") print("РОБОТ РАБОТАЕТ!! Создатель - demongts1998") while true do if robot.durability() < 0.2 then robot.turnAround() inv.equip() robot.drop() os.sleep(7) --время на зарядку меча robot.suck() inv.equip() robot.turnAround() end while robot.detect() do robot.swing() end end
-
вот этот кусок кода также можно доработать
Скрытый текстrobot.turnLeft() os.sleep(7) robot.turnLeft() os.sleep(7) inv.equip() robot.drop() os.sleep(7) robot.suck() os.sleep(7) robot.turnRight() os.sleep(7) robot.turnRight() os.sleep(7) inv.equip()
убрав задержки os.sleep(7), оставив только время на зарядку меча
также убрать двойные повороты заменив на robot.turnAround()
Скрытый текстrobot.turnAround() inv.equip() robot.drop() os.sleep(7) --время на зарядку меча robot.suck() inv.equip() robot.turnAround()
вместо 7 секунд, можно подобрать необходимое для полной зарядки меча
-
2 минуты назад, demongts1998 сказал:где не хватает?
самая нижняя строка 29
иначе while true do без end получается
-
1 минуту назад, demongts1998 сказал:вот, готовый робот на рубку мобов
одного end в конце не хватает
и можно меня выкинуть из авторов :)
а так да, должен работать
-
-
оставлю пару коментов по поводу этой проги https://pastebin.com/G7DWmXXe
1 local sides = require "sides" 5 local Minimum = 0.2 6 local active_slot = 1
либа sides нигде не используется, не зачем её вызывать
зачем то значение Minimum был вынесен в начало кода, как будто его кто-то меняет
значение active_slot также ни где не используется
local function Text() os.execute("cls") print("РОБОТ РАБОТАЕТ!! Создатель - GooodGame") print("Доработал-atomzerg") end Text()
функция Text() вызывается только один раз, тут вопрос нужна она ли вообще, можно заменить
os.execute("cls") print("РОБОТ РАБОТАЕТ!! Создатель - GooodGame") print("Доработал-atomzerg")
в функции Charging() хромает форматирование
Скрытый текстfunction Charging() robot.turnLeft() os.sleep(7) robot.turnLeft() os.sleep(7) inv.equip() robot.drop() os.sleep(7) robot.suck() os.sleep(7) robot.turnRight() os.sleep(7) robot.turnRight() os.sleep(7) inv.equip() end
общепринято использовать два пробела
Скрытый текстfunction Charging() robot.turnLeft() os.sleep(7) robot.turnLeft() os.sleep(7) inv.equip() robot.drop() os.sleep(7) robot.suck() os.sleep(7) robot.turnRight() os.sleep(7) robot.turnRight() os.sleep(7) inv.equip() end
вызывается она только с одного места в коде на строке 35, нет смысла её выносить отдельно
функция Energy() два раза повторяет одно и тоже действие
Скрытый текстfunction Energy() if robot.durability() < Minimum then Charging() end end while true do if robot.durability() < Minimum then Energy() end
итого всё отладив получим следующий код
Скрытый текстlocal robot = require "robot" local component = require "component" local inv = component.inventory_controller os.execute("cls") print("РОБОТ РАБОТАЕТ!! Создатель - GooodGame") print("Доработал-atomzerg") while true do if robot.durability() < 0.2 then robot.turnLeft() os.sleep(7) robot.turnLeft() os.sleep(7) inv.equip() robot.drop() os.sleep(7) robot.suck() os.sleep(7) robot.turnRight() os.sleep(7) robot.turnRight() os.sleep(7) inv.equip() end robot.swing() end
-
20 минут назад, demongts1998 сказал:сможешь подредачить пару строк чтобы он лупил мобов
там почти итак всё есть, разве что при куче мобов можно их лупить пока не закончатся
на 43 й строке замени robot.swing() на
-
while robot.detect() do
-
robot.swing()
-
end
зарядка там кстати сделана весьма условно, нет проверок зарядился ли полностью меч, заряжается ли он вобще
можешь посмотреть заказ https://computercraft.ru/topic/3632-nuzhna-programma-mob-grinder/?do=findComment&comment=43289
но мечи здесь как расходник, например можно железных мечей накидать роботу в инвентарь
лут он скидывает под себя, но если робот в привате скрой всего доступа к сундуку у него не будет, можно решить поставив воронку на один блок ниже робота, чтоб она собирала только скинутый лут а не инвентарь у робота вытягивала
-
-
14 часа назад, demongts1998 сказал:надо будет протестить
тут всё просто, в привате поставь робота сверху МЕ интерфейса и введи две команды
lua robot.dropDown()
также и сундуком
-
1 минуту назад, demongts1998 сказал:может спереть меч
зачем лишние телодвижения с настройкой, если робот и сам с этой задачей справится ?
-
46 минут назад, demongts1998 сказал:вывод будет шинами импорта ае2
не советую, у робота будут проблемы с работой инвентаря, шина импорта будет всё забирать, включая меч
как вариант поставить под робота ME Interface чтоб он сам лут в сеть кидал
-
Банк сейчас вживую не пощупать, хотя его и можно построить по этому гайду
Одной из уникальной фитч был прогресс бар для покупки энергии созданный @Totoro
Скрытый текст
Тут и тонкие линии за счёт юникода + фон и тень на прогрессе, также мышкой можно менять значение позиции
Хочу поделится прогресс баром @Totoro отдельно от банка
Скрытый текст
Добавил скролл мышкой и стрелками клавиатуры + мелкие правки при отрисовке мин и макс значениях
Также можно указать шаг заполнения линии за одно нажатие стрелки или поворот колёсика мыши
-
5
-
2
-
-
1 минуту назад, hot9rot сказал:нет там С
ok скрин не очень разборчив
-
9 минут назад, hot9rot сказал:как исправить?
Введи команду ls (покажешь скрин)
но помойму ошибка в последнем символе drc.lua E вместо С из за этого пишет файл не найден
-
8 часов назад, neomix248 сказал:3принт с другого источника
-
1
-
-
Та вроде работает
Скрытый текстlocal term = require('term') local computer = require("computer") local com = require('component') local sensor = com.isAvailable("os_entdetector") and com.os_entdetector or error("нет сенсора entity detector") local gpu = com.gpu -- Белый список --- white = { none = false } gpu.setResolution(35,15) while true do pl = sensor.scanPlayers(64) term.clear() gpu.setForeground(0xffb600) gpu.set(2,1, 'В зоне обнаружения радара: '..#pl..' чел.') for i = 1, #pl do if white[pl[i].name] then gpu.setForeground(0x00ff00) else gpu.setForeground(0xff0000) computer.beep(440, 1) end gpu.set(2, i+1, i..'. '..pl[i].name) gpu.set(25, i+1, ' - '..math.floor(pl[i].range)..' м') end os.sleep(1) end

Допиливание программы для схемы реакторов
в Новые заказы
Опубликовано: · Изменено пользователем serafim
Можете потестить установщик схемы в реактор IC2 https://pastebin.com/xWhYcrgM
схемы для реактора которые здесь использовались
Есть ещё планы по оптимизации и добавления функционала
например: показывать недостающие компоненты на русском, принимать атрибуты
Прога как то не адекватно реагирует на событие inventory_changed
хотя должна реагировать только если в инвентарь что-то добавили а не забрали
local function wait() while true do local e, slot = event.pull("inventory_changed") if slot then print("ожидаю компоненты") os.sleep(5) freeslot() scan() break end end end