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






Фотография
* * * * * 1 голосов

[Lua] [OC] Автокрафт V2: теперь без AE

Написано Fingercomp , в OpenComputers, Programming in Lua 24 Декабрь 2015 · 861 просмотров

Lua OC Autocraft Robot PC chests

Да, дамы и господа, он тут! Тот самый автокрафт, который был на старом ИТ с АЕ, обновляется до новой версии, в которой полностью отказываемся от АЕ и переходим на сундуки.
Для работы нужна "стенка" из сундуков, двойные использовать нельзя. Или ставить вплотную сундуки из IronChest, или же попеременно сундук обычный / сундук-ловушка. В левой позиции ставим робота-крафтера мордой в сторону других сундуков, под него ещё один сундук. Теперь считаем размеры массива: по ширине сколько (X) и по высоте (Y).

 

Затем ставим комп/сервер/планшет с нет-картой беспроводной, пишем mkdir /usr/bin, mkdir /usr/share, затем wget https://gist.github....96/pc-craft.lua /usr/bin/craft.lua, wget https://gist.github..../pc-recipes.lua /usr/bin/recipes.lua.

 

Запускаем команду recipes, пишем 4 и 0. Всё. Компьютер готов.

 

Включаем робота, пишем wget https://gist.github....bot-autorun.lua /autorun.lua, wget https://gist.github..../robot-scan.lua /scan.lua.

 

А ещё чуть выше мы считали размер массива сундуков. Пишем edit /usr/bin/craft.lua на компьютере, в начале самом файла находим local CHESTX, CHESTY = 1, 2 и меняем числа на свои. Если ширина = 4, а высота = 3, то будет 4, 3. И т. д.

 

В принципе, автокрафт теперь готов к работе. Но чтобы скрафтить хоть что-либо, потребуется заполнить базу данных с помощью программы recipes. Я чуть ниже подробнее расскажу о том, как это делается, а пока можете просто прописать команду wget https://gist.github....534e29b96/pc-db /usr/share/db, чтобы скачать готовую БД, которую составлял я сам. =)

 

Давайте просканируем рецепт! Открываем прогу recipes:

Спойлер

Жмём 7 и [Enter]:
Спойлер

Идём к роботу и выкладываем рецепт так:
Спойлер

Пишем в роботе scan:
Спойлер

Всё, забираем предметы у робота и возворащаемся к компу. Там должна быть такая картинка:
Спойлер

Вводим имя рецепта, количество предметов на выходе крафта. Жмём [Enter].
Спойлер

Тыкаем по [y], энтерим... И всё! Рецепт сохранён в памяти... Программы. Это означает, что если сейчас выйти, рецепт будет утерян. Так что не забывайте писать 4 перед выходом!

 

Остальные функции прог craft и recipes интуитивно понятны. Если нет — смотрите предыдущую запись про автокрафт, интерефейс тот же... =)
Кроме одного. База данных предметов получается при первом запуске программы в сеансе, затем она кэшируется в _G. Это позволяет не ждать опять фигалион лет, если вы ошиблись номером рецепта или у вас не было какого-то ресурса. Но если что-то изменили в сундуках — всё, БДП не будет соответствовать действительности. В таком случае запустите программу так: craft update.
Сундук под роботом (выход) проверяется каждый раз при старте проги. Если не хотите делать проверку (всего 5 секунд), запустите с аргументом noupd[/i]: craft noupd.

 

К слову, код там старый, гнилой и высохший. Самому не нравится. Но что поделать — переписывать лень.

 

 
БАГИ В ПРОГРАММЕ CRAFT И ИХ РЕШЕНИЕ

  • Программа некорректно просчитывает выходное количество, если запрашивается родитель в одном рецепте несколько раз, при этом выходных предметов нет в сундуках.
    • То есть? А вот. Есть процессор, в нём 4 изумруда требуется. Допустим, изумрудов просто нет, но есть блоки. И во время построения рецепта изумруды буду запрошены 4 раза, каждый раз будет найдена нехватка, так что в итоге в плане окажутся 4 блока изумрудов.
    • Проблема решается достаточно просто: вызовите тот крафт, родитель которого запрошен слишком большое количество раз. То есть, в нашем случае достаточно просто заказать крафт изумрудов.
  • Не баг, но всё же. Программа во время крафта выдаёт ошибку "в функции экспорта" и сбрасывает крафт.
    • Случается из-за того, что БДП устарела, и когда робот пытается взять предмет в слоте из БДП, а там его не оказывается или там находится вообще другой предмет, вызывается ошибка.
    • Решение банальное: перезапустите крафт, вызвав программу так: craft update.
  • Тоже ошибка в функции экспорта, но на 188 (или 118 :wacko2: ) строке и со стактрейсом.
    • Это действительно баг, причину возникновения которого мне выяснить не удаётся.
    • Однако, есть решение. Перезапустите программу, можно даже без update, и проблема решится. :umnik2:
  • И ещё один совсем не баг. Программа запускается и зависает на старте, даже не показав GUI.
    • Всё просто: она ждёт ответа от робота, который недоступен :)
    • Проверьте, работает ли робот вообще, запущена ли на нём программа и находится ли он в зоне дальности модема компьютера (а компьютер — в зоне радиуса модема робота). Прервите программу комбинацией [il][Ctrl] + [Alt] + [C] и запустите снова после устранения ошибки.
Очень удобно становится, если вместо обычного сундука под роботом поставить якорный, программы с компа перенести на сервер и таскать с собою эндерсумку и удалённый терминал от сервера. Тогда вы можете заказывать предметы на расстоянии до 400 блоков от серверной стойки, и выход окажется в эндерсумке ;)



  • davial это нравится



Обновил программу, исправил тонны всяких багов нехороших. Придумаю, как экспортировать код сразу на ГитХаб — выложу назад ссылки.

git commit git push ? :D

А пока буду юзать поиск на pastebin.com :)

git commit git push ? :D

:facepalm:

Пошёл на серв доставать ;)

 

И, да, в пастбине версия старая и нерабочая по большей части.

О Б Н О В И Л :swoon:

Для интереса рекомундую глянуть https://gist.github....48c9d/revisions

Первый вариант — начальный. Обновление — ревизии выше.

191 или 192 строка в autorun робота ошибка if data не разделил.

191 или 192 строка в autorun робота ошибка if data не разделил.

Я давно починил это =) Вариант старый остался, у меня там забаговала прога приёма.

Обновил статью глобально O_o

Добавил информацию о багах и проблемах, а ещё скан предметов в recipes.

Ещё небольшое обновление, которое чинит проверку дерева крафта. Теперь ошибка "в функции экспорта" может случиться только при устаревшей БДП.


Обратные ссылки на эту запись [ URL обратной ссылки ]

Обратных ссылок на эту запись нет

Последние версии

Стабильная: 1.6.1+hotfix.1
Последняя: 1.6.1+hotfix.1

Мои программы

Автокрафт на OpenComputers и AE

http://computercraft...-opencomputers/

 

Минималистичные и красивые часы

http://computercraft...0-finger-clock/

 

Чат на GoogolGlasses

http://computercraft...-googolglasses/

 

Лампомат

http://computercraft...-oc-lamp-o-mat/

 

Автокрафт 2: без АЕ

http://computercraft...2-teper-bez-ae/

 

Клиент Гиста

http://computercraft...-opencomputers/

 

Управление нанитами

http://computercraft...nanitami-snova/

 

Чат на OpenPeripheral а-ля IRC

http://computercraft.ru/topic/1517-

Искать в моем блоге

Новые записи

Новые комментарии

Январь 2017

В П В С Ч П С
1234567
891011121314
151617 18 192021
22232425262728
293031    

Полезные ссылки

Официальный сайт OpenComputers

http://oc.cil.li/

 

Официальный форум OpenComputers

http://oc.cil.li/index.php?/index

 

Репозиторий OpenComputers на ГитХабе

https://github.com/M...s/OpenComputers

 

Последние релизы OpenComputers

https://github.com/M...puters/releases

 

Jenkins-сервер

http://ci.cil.li/job...s-dev-MC1.7.10/
 

Репозиторий OpenPrograms

https://github.com/OpenPrograms

 

Репозиторий моих программ

https://github.com/O...rcomp-Programs/

0 посетителей

0 пользователей, 0 гостей, 0 анонимных

Последние посетители

  • Фотография
    SDV
    Вчера, 20:53
  • Фотография
    Vait
    Вчера, 20:26
  • Фотография
    Alex
    16 янв 2017 - 02:53
  • Фотография
    vx13
    15 янв 2017 - 20:09
  • Фотография
    Stanislavich
    14 янв 2017 - 23:24
  • Фотография
    Xytabich
    13 янв 2017 - 14:30
  • Фотография
    Litvinov
    13 янв 2017 - 03:24
  • Фотография
    ivan52945
    12 янв 2017 - 23:11
  • Фотография
    electronic_steve
    12 янв 2017 - 21:11
  • Фотография
    Stirn
    12 янв 2017 - 19:48
  • Фотография
    Programist135
    12 янв 2017 - 18:44
  • Фотография
    MeXaN1cK
    12 янв 2017 - 18:29
  • Фотография
    _Star_Craft_
    12 янв 2017 - 17:53
  • Фотография
    Saintmare
    11 янв 2017 - 08:26
  • Фотография
    Asior
    11 янв 2017 - 07:45
  • Фотография
    Fedel
    11 янв 2017 - 03:30
  • Фотография
    Cleveron
    10 янв 2017 - 20:28
  • Фотография
    slavik95_ua
    10 янв 2017 - 01:28
  • Фотография
    LeshaInc
    08 янв 2017 - 14:52
  • Фотография
    ALeXeR
    08 янв 2017 - 11:00
  • Фотография
    cyber01
    07 янв 2017 - 23:16
  • Фотография
    POMAH3
    07 янв 2017 - 19:44
  • Фотография
    incvIZ
    07 янв 2017 - 17:31
  • Фотография
    Totoro
    07 янв 2017 - 15:48
  • Фотография
    qwertyMAN
    07 янв 2017 - 12:52
  • Фотография
    Sharplook
    07 янв 2017 - 00:10
  • Фотография
    cloud
    05 янв 2017 - 14:16
  • Фотография
    mrlobaker
    04 янв 2017 - 16:19
  • Фотография
    Kartograf
    04 янв 2017 - 13:43
  • Фотография
    DimaZCOM
    03 янв 2017 - 21:29
  • Фотография
    mrGreen
    02 янв 2017 - 18:43
  • Фотография
    Nikitat
    02 янв 2017 - 14:51
  • Фотография
    Zabqer
    02 янв 2017 - 12:17
  • Фотография
    prostoshu
    02 янв 2017 - 09:32
  • Фотография
    YuRaNnNzZZ
    30 дек 2016 - 20:58
  • Фотография
    Kid
    29 дек 2016 - 15:38
  • 26 дек 2016 - 11:07
  • Фотография
    LuaGamer
    26 дек 2016 - 08:23
  • Фотография
    Misha123
    25 дек 2016 - 17:23
  • Фотография
    DarthWirthe
    25 дек 2016 - 16:09
  • Фотография
    Quant
    24 дек 2016 - 11:42
  • Фотография
    NEO
    23 дек 2016 - 20:29
  • Фотография
    VankaPapanka
    23 дек 2016 - 12:26
  • Фотография
    GeorgSorok16
    23 дек 2016 - 10:33
  • Фотография
    HalfLolek
    21 дек 2016 - 14:21
  • Фотография
    i_ivanov10
    21 дек 2016 - 08:26
  • Фотография
    lLuffy
    21 дек 2016 - 03:42
  • Фотография
    SGMack
    19 дек 2016 - 17:45
  • Фотография
    Arseniy10
    19 дек 2016 - 16:14
  • Фотография
    newbie
    19 дек 2016 - 15:11

Лицензия


Яндекс.Метрика