1.9.9774
Daily-driver build with the safest release cadence.
- Updated
- 18 weeks ago
- File Size
- 515.39 MB
- Release Notes
- Open notes
Stable is the recommended track for most users. Alpha gets you the newest capabilities first.
Daily-driver build with the safest release cadence.
Fastest release track with the newest features and experiments.
Every release stays linked here so you can inspect what changed before you switch versions.
Новая опция пока доступна только в тех узлах, которые работают с захватом изображения: проверка цвета пикселя, ML, поиск изображения и т. д.
По смыслу она очень простая и полностью эквивалентна узлу Inverter, но встроена прямо в сам узел.
Причина в том, что BT обычно разрастаются очень-очень быстро, и уменьшение общего количества узлов помогает сохранять структуру дерева более понятной и аккуратной.

P.S. Да, последние несколько недель были довольно тихими. Внутри я работаю над новой крупной функцией, которая станет доступна публично позже в этом году. Буду держать вас в курсе.
Проделан огромный объём работы над внутренними механизмами программы — слишком большой, чтобы перечислять всё по пунктам. Такие изменения нередко приводят к цепочке мелких багов, поэтому, пожалуйста, обращайте внимание на любые странности в работе и сообщайте о них. Я буду внимательно следить за входящими сообщениями.
Писать скрипт в узле ExecuteScript, а потом случайно удалить его — то ещё удовольствие. Знакомая ситуация.
Теперь такие изменения можно быстро откатить прямо на месте. На данный момент Undo/Redo поддерживает только добавление и удаление узлов. Поддержка изменений других типов появится, как только механизм станет достаточно стабильным.

IBlazorWindow появилось новое свойство TitleBarViewType, которое позволяет полностью заменить заголовок окна на любой вариант по вашему выборуРаньше для 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.
Посмотрим, насколько удачным окажется такой подход — обязательно делитесь обратной связью.

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

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

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

Комбинация Timeout -> Until Success -> Image Search фактически говорит дереву: Продолжай искать изображение, пока не получишь Success, но не дольше 2 секунд.
Started to work on startup time improvements and, more specifically, "cold" (first) start.
Here are startup times for the latest pack for GTA5 by @linx - https://eyeauras.net/share/S202503032233289fPxqP4AA0N0
v8215 - 33.41s
v8224 - 28.89s
So the new version is approximately 15% faster on the first launch.
Subsequent launches:
v8215 - 29.38s
v8224 - 27.10s
~8% faster.
I will keep working on improving those stats.
Иногда в ваших Packs не нужна вся функциональность, встроенная в EyeAuras.
Например, если ваш пак вообще не использует компьютерное зрение, нет большого смысла загружать в память модули, связанные с CV — это лишний расход CPU и RAM.
С появлением новых возможностей для прямой работы с приложениями, таких как чтение памяти, ожидается всё больше сценариев, где EyeAuras используется просто как платформа для разработки и распространения собственного приложения.
Именно для этого и предназначена эта функция: теперь вы можете отключать загрузку отдельных частей приложения.
Модули, которые добавлены в blacklist:
Сейчас можно исключать два типа модулей:
Примечание: HotkeyIsActive по-прежнему доступен.
Blacklist находится в конфигурации Pack. По умолчанию поставляется всё, но вы можете отключить два типа модулей.

KeyLogin — это способ входа по одноразовому лицензионному ключу, без создания аккаунта. Эта система рассчитана на использование вместе с сублицензиями, чтобы ваши пользователи могли получить доступ к вашим пакам максимально быстро и просто.
Сейчас процесс выглядит так.
Для конечного пользователя (того, кто будет использовать пак):
Download packВот и всё. По-моему, проще уже некуда, и какое-то время всё останется именно в таком виде — посмотрим, как это покажет себя на практике.
Для вас (автора, который создаёт пак):
Да... для авторов процесс пока не такой прямолинейный. В этом году я его упростлю.
Позволяет проверять, совпадает ли цвет выбранного пикселя (или области) с заданным.
Вероятно, один из самых полезных узлов: быстрый, очень простой в использовании и гибкий.

Позволяет искать изображение на экране или в выбранной области.

Добавлен новый узел для тех, кому удобнее строить логику в более «классическом» стиле.

New node in BTs and Macros, which allows you to run ML search over a region of a screen/window.
It is still missing a lot of options currently present in MLSearchTrigger such as Configende/IoU thresholds, inference method, number of threads etc - those will be added in the nearest future.
Note, that by itself this node does not do anything - you have to pair it with other nodes such as MLFindClass or MouseMove to get anything from it.
By default, it will pick the very first object and make it available for click via MouseMove - for some very simple scenarios that will be enough, for more complex one - use MLFindClass
The node will return Success only if there is at least one found prediction.

This node must be used in pair with MLSearch and allows to pick some class(~object) from the output generated by MLSearch - you can set some filtering parameters such as class name(s), minimum confidence threshold, size restrictions, etc. Those predictions which do not match any of those, will be filtered out.
Out of those predictions which will be left after filtering, you can make the node pick exactly one of them - it could be the very first in the list or the one with the highest confidence or even the one that is currently closest to the cursor.
The node will return Success only if there is at least one found prediction that matches all the criteria.
Of course, both MLSearch and MLFindClass could be used in combination with all other nodes. Here is, for example, priority-based target selection

Let's welcome a new node which is accessible in Macros and BTs. It is the first one in the batch of nodes coming soon, nodes, focusing on computer-vision. Those nodes will be a direct replacement of triggers, which you're currently using in Auras. Migration process will take a lot of time and probably new Nodes will reach feature parity with corresponding Triggers only months from now, but eventually we'll get there.
Note, that Nodes DO NOT tick on their own. Image capture and analysis happens exactly at the same moment when the node gets executed.

Initially, performance of nodes could be worse than those that we had in Triggers - this is due to new mechanisms which were implemented for Computer Vision API which powers those new nodes.
New Nodes will be writing their results to Variables which are available via Bindings.
For now, there is a single variable CvLastFoundRegion which will contain the last found region. This could be coordinates of a found pixel. Or coordinates of found image. Or ML class.

In MouseMove, there is now a new button, which allows to very quickly and easily use that variable as a source of coordinates.

Just click on the button, and, when executed, MouseMove will try to read coordinates from that variable.
