1.6.8227
Апрель — новые узлы BT и активация по горячей клавише
Behavior Trees / Macros — условия активации — горячие клавиши
Раньше для Trees и Macros был только один способ управлять тем, когда они начинают «тикать» и выполняться соответственно.
Если нужно было запускать дерево по нажатию горячей клавиши или пока клавиша удерживается, приходилось создавать отдельную Aura с триггером HotkeyIsActive.
В новой версии ту же горячую клавишу можно назначить прямо в Tree/Macro. Это заметно уменьшает количество действий и сильно упрощает настройку.

Условия перехвата
В обычных триггерах HotkeyIsActive есть механизм, который позволяет ограничить работу горячих клавиш конкретным окном, приложением и т. д.
Этот механизм напрямую отвечает за включение и отключение обработки горячих клавиш в каждый конкретный момент. Добавив одну или несколько аур, вы можете задать точный набор условий, которые должны выполняться до того, как Trigger вообще начнет что-либо делать.
Например, если привязать Aura с условием WindowIsActive, Trigger будет реагировать на нажатия только тогда, когда активно окно игры.
В более сложных сценариях Trigger можно связать с внутриигровым состоянием. Например: вы нажимаете RMB (это часть настройки HotkeyIsActive), И при этом мощный скилл уже вышел из кулдауна (linked condition). Вместо обычного действия на RMB будет сымитировано нажатие другой кнопки, которая кастует этот скилл. Хороший пример — автоматизация Vaal Skills в Path of Exile: у вас есть обычная версия умения на кнопке, которую вы постоянно жмете, и как только Vaal-версия накопит достаточно souls, она автоматически сработает без необходимости отслеживать это вручную.
В BT эквивалентом будет добавление Enabling Condition прямо на само дерево — так же, как и раньше. Горячая клавиша будет перехватываться только тогда, когда выполняется Enabling Condition.
Посмотрим, насколько удачным окажется такой подход — обязательно делитесь обратной связью.
Новый узел — Interrupter

Очень важный новый узел в экосистеме BT: он позволяет по условию прерывать узлы, которые уже находятся в состоянии выполнения.
Обычно, если какой-то узел находится в состоянии Running (например, Wait или Until Success), остальные узлы дерева ничего сделать не могут — EyeAuras просто ждет, пока этот узел завершит свою работу.
Interrupter работает иначе: при выполнении он всегда запускает узел Condition (слева), даже если узел Action (справа) уже находится в состоянии Running. Более того, если Condition завершается с Success, управление не возвращается к уже выполняющемуся Action — он будет прерван и больше не продолжит работу.
Это можно использовать, чтобы останавливать длительные действия (например, Wait) или по требованию завершать циклы вроде Until Success. При правильных условиях этот узел дает очень мощные возможности.
Новый узел — Check Key State

Очень простой узел: он проверяет текущее состояние выбранной клавиши. Если клавиша нажата, узел возвращает Success.
Новый узел — Timeout

Еще один узел, который хорошо сочетается с длительно работающими узлами, такими как Until Success. Он позволяет задать максимальное время, в течение которого дочерний узел может оставаться в состоянии Running.
Первый пример комбинации, который приходит в голову, выглядит так:

Комбинация Timeout -> Until Success -> Image Search фактически говорит дереву: Продолжай искать изображение, пока не получишь Success, но не дольше 2 секунд.
Исправления/улучшения
- в этот раз без изменений