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.
Очень полезен для анализа, так как позволяет преобразовать изображение в черно-белое. Это значительно упрощает дальнейшие проверки.
Например, вместо красной полоски HP с множеством оттенков можно получить черно-белое изображение, где белый цвет обозначает заполненную часть полосы.
Еще один способ упростить изображение: он уменьшает общее количество цветов в изображении. Сам по себе этот эффект чаще всего бесполезен, но может хорошо работать в сочетании с другими эффектами.
ExecuteScriptNode свойство IsMaximized теперь хранится в самом узлеCheck for Updates, приложение больше не будет выполнять эту проверку при запускеLoad from preview pane теперь не копирует отладочные данныеAwaiting for something is a mandatory part of any automation. EyeAuras constantly does that - timeouts between keypresses, ensuring that capture FPS is consistent, user-driven timeouts in scripts. Default instruments provided by operating system and default methods (like Thread.Sleep, Task.Delay and few others) are not accurate enough, so at some point I had to implement a combination of methods which ensured better accuracy.
This mechanism allowed sub-millisecond awaits and worked for the last 5-6 months. Unfortunately, accuracy comes with a cost and for most operations it not really needed.
That is why for the next few months we'll be trying a 3rd version of Sleep(), which is expected to meet middle-ground between accuracy and performance cost. On average, it is expected that it will reach accuracy of up 0.5 - 5ms.
This means that if you are setting EA to wait for 1ms, the effective wait time will be in range 1 - 1.5ms, which is more than enough for most use cases. For larger timeouts, such as 100ms, it may vary in range of 100 - 105ms.
To counterweight loss of accuracy, you'll get much better performance. We'll see how it goes in real world scenarios. As a part of development for this feature, I've added integration layer which will allow you to use whatever Sleep() mechanism you see fit for your scenarios. Will post information on this later.

Made is to IsMaximized in ExecuteScriptNode is stored in the node itself
Listen() to ScriptVariable - you can now use it instead of WatchCurrentValueЭто первое из 5 запланированных исправлений, направленных на повышение производительности и ускорение запуска в Q4.
Как и всегда, такие изменения связаны с повышенным риском, поэтому, если заметите что-то странное, пожалуйста, сообщите об этом.
Разница во времени запуска не должна быть слишком заметной — примерно около -10%, то есть EyeAuras будет запускаться всего на 1–2 секунды быстрее, чем раньше. Но самое главное в том, что это изменение открывает дополнительные возможности для дальнейшего ускорения, которыми я планирую воспользоваться в ближайшее время.
Выпущена новая версия редактора, который открывается каждый раз, когда вы настраиваете связь с чем-либо (AuraIsActive, Enabling Conditions и т. д.).

Новый вариант намного гибче, поэтому вносить изменения в него будет проще.
Когда текущая версия немного стабилизируется, я добавлю Recent, Favourites и ещё несколько улучшений, которые уже запланированы.
Если заметите проблемы или у вас будут идеи, что ещё стоит улучшить — пожалуйста, сообщайте. Первая реализация может быть сыроватой, но, надеюсь, довольно быстро превзойдёт старый вариант.

oddessaxoddessaxAdded new option "Include All Matches" which is intended to be used for some corner-case scripting purposes. By default, Image search finds best possible match and then tracks its movement - that way it can avoid scanning the whole image every frame. This new option disables all such optimizations and image is fully scanned on every tick. On a positive side - this gives you access to multiple candidates and their similarities. On negative - it destroys performance.
To get access to all found objects, you can use TemplateMatches which is returned as a part of ImageSearchTrigger.Refresh result
public interface IImageSearchDetectionResult : ICaptureTriggerDetectionResult
{
...
/// <summary>
/// Contains an array of all successful template matches and their bounds/similarity
/// Will contain more than 1 element only if Include All Matches is enabled in ImageSearchTrigger
/// </summary>
public ImmutableArray<TemplateMatchResult> TemplateMatches { get; init; }
...
}

This is extremely CPU-heavy task. On 1920x1080 you'll probably have at most 2-3 FPS to do a full scan. This is a huge contrast to ML search, which on the same resolution for the same task can give you up to 60 FPS, so if you really need to detect multiple instances of some object, I would highly recommend to look into training Yolo model and using it instead.
В узлах MouseMove появилось много новых опций, доступных в макросах и деревьях поведения.
Как и в Send Sequence, теперь можно привязывать X и Y, связывать ауры и точно задавать, куда именно нажимать на найденном изображении или объекте.
Есть два режима редактирования: простой и расширенный.

Расширенный режим выглядит так (да, элементов управления тут многовато).

Сейчас за отправку ввода, связанного с мышью, тоже отвечает узел KeyPress.
Пока я не уверен на 100%, что несколько отдельных узлов ввода действительно дадут лучший UX, так что посмотрим, как это покажет себя на практике.

Триггер TextSearch теперь отдает текстовые сегменты и их координаты. Пока это доступно только через C# scripts, но уже позволяет кликать по конкретному слову.
Пример использования: https://wiki.eyeauras.net/scripting/examples/basic/click-on-text
В будущем похожая функциональность появится и в UI.
В свойствах папки теперь можно выбирать Input Smoother.
Input Smoother определяет, как именно курсор будет перемещаться из точки A в точку B и за сколько шагов это произойдет.
Как и остальные настройки, эта будет применяться ко всем элементам в папке: узлам, действиям, триггерам и т. д.

CancellableMethodStatementRewriter, из-за которой некоторые скрипты не компилировались