Автор Тема: DfHack Workflow + Job (автоматизация производства)  (Прочитано 15126 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Переделал гайд под новые реалии (дфхак добавил менюшки в дф)

Основное применение плагина workflow
Автоматическое производство той или иной вещи - плагин подсчитывает кол-во  вещей в крепости, и при необходимости включает работу по их производству.
Позволяет указать качество вещи (да-да, можно заказать 10 мастерворк брони и не следить вручную за кузнецом)
Пример - поддерживать кол-во выпивки на уровне 150-200 единиц
Внимание! Плагин после включения не даст вам удалять повторные работы, для удаления таких работ надо снять повтор и потом удалить.


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

Терминология
Во избежание непоняток, термины, которые использую в описании:
Меню мастерской – по кнопке q выбрана мастерская и справа светится список работ.
Работа – одно из заданий, которое светится в мастерской.
Повторная работа – поставленная на повтор (с буквой R)
Отключенная работа – неактивная, с буквой S
Производство – одна из задач производства некоей вещи внутри плагина Workflow
Материал и тип работы – имеются в виду материал и тип основного реагента (например, в работе по производству блоков, где плагином job настроили входящий материал гранит, автоматом на выходе будут получаться только гранитные блоки)

Вгимание!
Рекомендуется включить в дфхак хоткеи для этих плагинов, без этого не сможете войти во те меню, которые дфхак добавил внутри дф.
Надо найти в папке дф файл dfhack.init-example, скопировать его в dfhack.init, и удалить те строки, которые вам не нравятся или не нужны (в нем есть хоткеи и фиксы, в общем полезные).
Необходимо оставить строчки - # workshop job details
keybinding add Alt-A@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workshop-job

# workflow front-end
keybinding add Alt-W@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workflow
keybinding add Alt-W@overallstatus "gui/workflow status"


Плагин Job подробно
(нажмите, чтобы показать/скрыть)

Плагин Workflow подробно
(нажмите, чтобы показать/скрыть)

Заметки
Некоторые прошитые в коде реакции невозможно автоматизировать никакими методами. К примеру – покраску одежки. Саму работу по покраске контролировать плагином нельзя, можно только включить повтор и сделать автопроизводство мешков и краски в мешках, и надеяться что их будет с избытком для того, чтобы работа покраски не встала от недостачи материалов.

Личные наработки
Одежда – мастерская портного должна быть настроена склаывать все на один склад, на этом складе включена опция Take from links only.
Аналогично примеру 5 набиваем мастерскую работами по всем частям одежды, она складывается только на этот склад, кому надо – приходят и берут.
Производство стеклянного оружия для ловушек – строятся 3-4 стеклодувни (не магма), им назначается задание сбора песка и на повтор.
Основная стеклоплавильня на магме, настроены два производства – песок, 50-100 мешков, и зазубренные диски 50-100 штук. Когда все ловушки построены, излишек можно продать


Старый пост под катом, удалять насовсем на всякий случай не буду
(нажмите, чтобы показать/скрыть)
« Последнее редактирование: 13 Февраль 2014, 14:01:21 от Andys »
За это сообщение 12 участников сказали спасибо: LegendaryClother, Ahiro, quanta, Пещерный человек, FearOfTheLight, Hibou, Arkady, IGenI, garman, Dark Knight, SemonX, Matryoshka

Оффлайн Пещерный человек

  • Ветеран
  • *****
  • Сообщений: 1423
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #1 : 28 Октябрь 2012, 10:34:01 »
А если я хочу отменить одну из автоматизированных работ, которые мне более не нужны, что нужно прописать?
Cъел котёнка - спас вселенную от лагов

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #2 : 28 Октябрь 2012, 12:36:56 »
А если я хочу отменить одну из автоматизированных работ, которые мне более не нужны, что нужно прописать?
Workflow unlimit насколько помню
И саму работу удалить - вначале отключить повтор потом удалить
За это сообщение 2 участников сказали спасибо: FearOfTheLight, Пещерный человек

Оффлайн FearOfTheLight

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1038
  • [SPEED:1]
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #3 : 28 Октябрь 2012, 20:22:06 »
r-c? (repeat - cancel)
c02b7d24a066adb747fdeb12deb21bfa

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #4 : 29 Октябрь 2012, 12:10:10 »
r-c? (repeat - cancel)
Ага. Пока включен R, workflow не даст удалить работу, он её тут же восстанавливает в SR статусе.
Так что вначале снять повтор, потом убить.
После этого можно unlimit в самом workflow не отключать, сам он удаленную работу не создаст, но будет ругаться в логах типа "невозможно произвести хххххх". Если такие сообщения не мешают, то можно оставить.

Также, командой workflow list-commands можно создать дамп команд, которые формируют текущую настройку. Можно его сохранить в текстовик и позже подгружать.
Или сделать несколько текстовиков, чтобы не запоминать длинные команды и параметры.
Тут только надо помнить - что если в начале текстовика поставить workflow clear-all, то он очистит всё предыдущее. Это обычно используется только в больших глобальных списках

Оффлайн Пещерный человек

  • Ветеран
  • *****
  • Сообщений: 1423
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #5 : 29 Октябрь 2012, 17:06:31 »
Есть предложение к шарящим в этом деле лучше, написать свои "текстовики" и поделиться с народом. Что скажете?
Cъел котёнка - спас вселенную от лагов

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #6 : 29 Октябрь 2012, 20:25:41 »
Есть предложение к шарящим в этом деле лучше, написать свои "текстовики" и поделиться с народом. Что скажете?
На самом деле,  по моему так просто не выйдет. Потому что у каждого свои материалы и цели, например я очень люблю заказывать производство разного бухла, по 500 каждого, а другому достаточно 5000 в сумме. И половину настроек надо делать вручную через job.
Можно как мини-вики сделать с небольшими примерами, кусочками текстов и советами. или на дфвики в обсуждении дфхака.

Оффлайн Hibou

  • Пользователь
  • **
  • Сообщений: 90
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #7 : 29 Ноябрь 2012, 16:50:56 »
 а как сохранять набор команд в текстовый файл и как потом запускать эти пакетники?

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #8 : 29 Ноябрь 2012, 20:28:51 »
а как сохранять набор команд в текстовый файл и как потом запускать эти пакетники?
workflow list-commands - он тебе выдаст в окне список. Там можно выделить и скопировать (по моему, в разных версиях винды по своему, но всегда в меню окна)
Дальше сохраняешь в текстовый файл в папке ДФ и в окне дфхак набираешь script <имяфайла>
Надо ещё помнить, что текстовые команды ничем не отличаются от набранных на клавиатуре, и если в файле нет первой строчкой workflow unlimit-all, то все команды добавятся (или перезапишут если совпадают вещи)

Обычно в моей практике удобней оказывались не текстовые файлы, а вордовский док со списком команд на все случаи жизни, как справочник - какие команды я делал для какого результата.
Главное знать что набирать, а большой список команд не всегда полезен, его не сделаешь на все случаи жизни. В одной игре начальная крепость, там не нужно следить за производством одежды, в прошлой игре нужно, требуемое количество еды отличается итд итп..


Для других, чтобы не искать в инете, кодировки вещей с которыми у меня были затыки:
Производство кувшинов - workflow count TOOL:ITEM_TOOL_LARGE_POT 20 10
Производство сумок из ткани - workflow count BOX/CLOTH 20 5
Производство болтов из кости - workflow amount AMMO:ITEM_AMMO_BOLTS/BONE 1000 200
Производство конкретной одежды - workflow count PANTS:ITEM_PANTS_PANTS//REED_ROPE:THREAD 10 5    (требуется ещё до этого на работе сделать принудительную смену материала на ROPE_REED:THREAD)

Не получалось сделать -
- переработка определенного количества REED_ROPE в нитки. Не удалось найти нужную комбинацию вещи/материала
- в команде job - приготовление пищи из бухла. Возможно, в последней версии вообще нельзя использовать бухло на кухне?
« Последнее редактирование: 29 Ноябрь 2012, 20:39:39 от Andys »

Оффлайн Hibou

  • Пользователь
  • **
  • Сообщений: 90
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #9 : 30 Ноябрь 2012, 07:44:09 »
давно с командной строкой не работал :) забыл как там копировать:
http://colorpilot.ru/command_line.html

еще пара вопросов:
почему в основном ты используешь count? я так понял, что count считает стеками, а amount поштучно.
где ищешь кодировки вещей?

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #10 : 30 Ноябрь 2012, 11:35:21 »
где ищешь кодировки вещей?
Изначально я искал путем тыка -
1. сделал в мастерской работу по производству, скажем штанов
2. через команду job назначил материал - REED_ROPE:THREAD
3. и потом пробовал в workflow набить такую идентификацию предмета, чтобы она "увидела" эту созданную работу как производящую этот предмет.

И уже научный метод - для вещей по моим прикидкам такая схема:
1. Ищем нужную вещь в равках (скажем, кувшины находятся в item_tool.txt). Строчка с их обозначением - [ITEM_TOOL:ITEM_TOOL_LARGE_POT]
2. Пишем тип без префикса ITEM_    =>  TOOL
3. Пишем подтип - как есть => ITEM_TOOL_LARGE_POT
Получаем TOOL:ITEM_TOOL_LARGE_POT
После него можно через / или // добавить материал, по моему тут достаточно скопировать тот материал что был введен в job item-material
/ от // отличается по моему тем, что после / ты задаешь "глобальный" тип материала - CLOTH, SAND, BONE, а после // задается конкретный тип - название камня, растения как в моих примерах со штанами итп

И главное - если сработало, то сохрани себе с комментарием куда-нибудь в текстовик, для последующих игр!

Те вещи, которых нет в равках, я не знаю как находить, кроме как на форумах. К примеру, хрен с нуля догадаешься, что сумки это BOX/CLOTH а механизмы - TRAPPARTS...
Мука и прочее - кодировка POWDER_MISC/

По моим экспериментам и чтению форумов, в workflow нельзя задать спецфлаги вещей, к примеру "производить энное кол-во покрашенной ткани".
Соответственно работу по покраске придется контролировать всегда вручную.
« Последнее редактирование: 30 Ноябрь 2012, 11:40:38 от Andys »

Оффлайн Arano-kai

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #11 : 03 Декабрь 2012, 00:45:29 »
Квантовый метод:
  • Произвести требуемый предмет
  • Навестись на него указателем ([k], или если в здании [t])
  • В консоли DFHack набрать: changeitem info
  • Читаем параметры1
  • Используем type и material в своих дварфийских целях2
  • ...
  • PROFIT!!!
(нажмите, чтобы показать/скрыть)
За это сообщение 5 участников сказали спасибо: Andys, FearOfTheLight, Hibou, Arkady, IGenI

Оффлайн Andys

  • Ветеран
  • *****
  • Сообщений: 1216
  • Maidophile
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #12 : 28 Декабрь 2012, 09:38:44 »
Нечаянно набрел на вот такой плагин к дфхаку (заменяет собой workflow dll, типа адвансед версия).
Скрины в теме, работает только в точно такой версии дфхак (34.11 р2)
http://www.bay12forums.com/smf/index.php?topic=118872.0

Возможности которые мне понравились -
1. Внутри дф есть таблица-список всех заданий, очень наглядно (из меню мастерской - m)
2. Прямо из мастерской добавить какое-то производство в список.
3. Посмотреть график по времени
4. Не уверен, что за функция tracking. По ощущениям, можно самому выбрать работы, за которыми следит workflow
tracking - это так назвали само добавление производства в workflow, если отключить то удалится производство
5. В форме меню выбрать тип и материал вещи, не нужно писать много текста в дфхаке

Пока не уверен, есть ли какие-то глюки, только сегодня поставил его.

// из глюков - я заметил что иногда плагин не сразу подхватывает материал работы - к примеру:
- сделал я работу в пивоварне
- назначил ей job item-material MUSHROOM_HELMET_PLUMP
- на всякий случай вышел из её меню, снова вошел
- навел на эту работу, нажал t
     плагин добавил её, показал лимиты производства.
- вошел по кнопке m в список
     там стоит пустой материал, просто DRINK и все.
- вышел из списка, отключил и снова включил слежение (t)
- снова вошел по кнопке  m в список
     уже стоит dwarven wine, материал применился.
« Последнее редактирование: 28 Декабрь 2012, 14:43:08 от Andys »
За это сообщение 3 участников сказали спасибо: Пещерный человек, LegendaryClother, Arkady

Оффлайн Пещерный человек

  • Ветеран
  • *****
  • Сообщений: 1423
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #13 : 28 Декабрь 2012, 14:10:26 »
Вот это я понимаю! Похоже дельная вещь.
Cъел котёнка - спас вселенную от лагов

Оффлайн Arkady

  • Постоялец
  • ***
  • Сообщений: 102
    • Просмотр профиля
Re: DfHack Workflow + Job (автоматизация производства)
« Ответ #14 : 07 Январь 2013, 12:37:51 »
Как узнать, что за имя для предмета/материала надо вбивать в команду job, чтобы она заработала?
Поясню. Вот есть у меня задача - пилить блоки. И я хочу, чтобы блоки пилились из gneiss.

Выясняю, что это:
[DFHack]# changeitem info
Item info:
  type:    BOULDER
  subtype: NONE
  quality: Basic
  material: INORGANIC:GNEISS

И начинаю пробовать:
job item-type BOULDER/INORGANIC:GNEISS 1
job item-type BOULDER_INORGANIC_GNEISS 1
job item-type BOULDER_INORGANIC:GNEISS 1
job item-type BOULDER_GNEISS 1
и т.п. (перебирал практически всевозможные варианты).

Что же такое волшебное надо туда вставить, и как надо было угадать?

Не работает даже так:
job item-type BOULDER 1
job item-type STONE 1

:))