Builds

Available downloads

Stable is the recommended track for most users. Alpha gets you the newest capabilities first.

Stable 1.9.9774 Alpha 1.9.9980
Windows 10/11 x64 Administrator rights
Release Notes

Track recent changes

Every release stays linked here so you can inspect what changed before you switch versions.

Release

1.8.8841

Permalink 5 months ago

Вики

Интеграция C#-скриптов с IDE

Исправления и улучшения

  • [Краш] Исправлена проблема, из-за которой окно License могло падать при запуске
  • [Скриптинг] Добавлена новая кнопка Open in IDE, которая позволяет редактировать скрипт в Rider/Visual Studio и сразу видеть изменения в EyeAuras в реальном времени — подробнее здесь...
Release

1.8.8836

Permalink 5 months ago

C# Scripting — Embedded Resources (alpha)

В нашем наборе инструментов появилась новая мощная возможность: теперь в скрипт можно встраивать произвольные файлы — изображения, видео, текстовые файлы и даже DLL/EXE.

После этого из самого скрипта с ними можно работать так, как будто они уже лежат на диске.

Это открывает много новых сценариев: можно встраивать обучающие материалы прямо в скрипты, подключать собственные сборки с кастомным кодом или даже добавлять целые установщики инструментов, которые использует ваш скрипт.

Кроме того, вместе с защитой C# Script эти ресурсы можно будет защищать шифрованием, что заметно усложнит их извлечение и повторное использование вне скрипта. Отдельно сообщу, когда эта часть функциональности станет доступна публично.

Add existing file

Подробнее...

Пожалуйста, сообщайте о любых проблемах, которые найдете в этой части системы

C# Scripting — улучшения переменных

Улучшена устойчивость EyeAuras при работе с переменными скриптов: теперь ни один из стандартных методов (получение значения переменной или подписка на ее изменения) не выбрасывает исключения, что упрощает старт для новых пользователей.

Общая идея — сделать работу ближе к Python/JavaScript, потому что в скриптинге обычно важна максимальная гибкость.

При этом C# — строго типизированный язык, поэтому найти правильный баланс не так просто. Это уже вторая итерация системы переменных, так что посмотрим, как она покажет себя на практике.

Подробнее...

Wiki

C# Scripting

C# Scripting — ImGui

Исправления/улучшения

  • [UI] Небольшие исправления в механике загрузки behavior trees
Release

1.8.8808

Permalink 11 months ago

SendSequence changes

Added two new flags, which target the scenario when you want to play some long-long sequence of actions, but at the same time you want to make it possible that it could be interrupted at any given moment.

E.g. you have a sequence of skills, which are cast inside WhileActive block. Now you want to be able to interrupt it at any given moment (e.g. by toggling hotkey to "Off" state). Previously it was not possible to do so without using Behavior Trees or Macros. But now, with these two new options, it is just a couple of clicks

Can Be Interrupted

As stated in the name, it changes behavior of the action - if, for any reason, Aura gets deactivated, the action will be stopped, even if the sequence has not been completed yet.

But abruptly stopping sequences of inputs is not really a great idea most of the time - if, for example, action has pressed some button and NOT released it yet, if it will be interrupted, the button will stay pressed, probably breaking something.

That is where the second flag comes in handy:

Restore Keyboard State

This flag remembers keys, pressed by the sequence and will release them automatically at the end of the action. So even if the action was interrupted in the very middle, there will be no "stuck" keys.

Macros - Return/Break nodes

Adding two new nodes which should help to create better and smarter Macros!

Return

Return node allows you to exit the macro whenever you want to, even right in the middle of some sequence of operations. E.g. if character has died it does not make much sense to continue running the main loop. Equivalent of return operation in C#

Break

Break is more niche - it allows you to exit the current scope (not the macro!), e.g. if you're inside some Repeat loop, you can jump out of it if needed. Equivalent of break operation in C#

C# Scripting - DLL injection

For the last couple of months I've been working on internal improvements of EyeAuras.Memory namespace. The goal is to extend capabilities and to support DLL injection and hooking of external processes. For now, I am releasing only one bit of the entire set of improvements - LocalProcess now has InjectDll method which uses naive CreateRemoteThread based injection. This will not help with kernel anti-cheat protected projects. We're already testing kernel-driver based solution which allows to counteract that inconvenience - I'll keep you posted.

DLL injection brings a lot of interesting and powerful things to the table - the topic is very niche and technical, but in the next 6-12 months I'll be trying to make it accessible to anyone with some C# skills, without deep understanding of internals.

Wiki

C# Scripting - Blazor Windows

Added a series of articles in Russian/English about programming using EyeAuras Blazor Windows API

Behavior Tree / Macro

Added a whole bunch of articles about Behavior Tree / Macro nodes. Note that most of these articles are available in both Russian and English.

  • IsActive - checks whether parent Tree/Macro is currently Active
  • Interrupter - (advanced) node, that allows to break execution of Behavior Tree if some condition is met
  • Return - allows to stop the macro
  • Break - allows to Break from the loop or code block
  • MouseMove Abs - moves cursor somewhere on the screen (or to something)
  • MouseMove Rel - moves cursor relatively to its current position
  • CheckKeyState - checks whether some key is currently being held
  • KeyPress - simulate keypresses
  • Send Text - inputs text either via copy-pasting it or inputting each character individually

Bugfixes/Improvements

  • [Crash] Fixed ColorSearch template-related crash (disposal race) #EA-1146 by @ganya
  • [Crash] Fixed BT Node Position NaN crash
  • [Crash] Fixed crash which happened when Export window was closed too quickly
  • [Core] Fixed Trigger activation mode - "At least one" as not working properly
  • [Core] Fixed bug which made it so Auras were loaded with invalid initial state, e.g. Triggers are Inactive, yet Aura is Active. Please report if you'll notice that problem again.
  • [UI] Improved error display in C# Scripts
  • [UI] Fixed text editor soft-crash which happened in some cases
  • [UI] Fixed jobs scheduler crash #EA-1121
  • [UI] Fixed a problem with UI elements sometimes not showing scroll
  • [UI] Disabled Cogs animation
  • [UI] Fixed a problem with color picker in ColorCheck/PixelSearch
  • [WaitFor] WaitFor action now behaves exactly as Delay if it does not have any links in it
  • [TextSearch] Fixed Tesseract (numbers) not initializing properly
  • [SendSequence] Added Random Offset (like in MouseMove nodes)
  • [SendSequence] Fixed a problem with Restore Mouse position not working as expected in some cases
  • [SendSequence] Added chill time 1ms to TetherScript - this should fix a problem with TetherScript driver not being able to read requests fast enough
  • [BehaviorTree] Fixed a major visual bug which sometimes removed multiple nodes from the tree instead of a selected one
  • [CheckIsActive] Fixed node not being properly redrawn
  • [Scripting] Made it possible to implement EA-based authentication mechanism right in your code, meaning you can code your own login procedure which will be relying on EyeAuras Sublicenses
  • [Scripting] Fixed an issue with LocalProcess memory-reader breaking after multiple sequential reloads
  • [Scripting] Improvements in scripting system - added AdditionalPath resolution for Managed assemblies in NuGet packages
  • [Scripting] Improved script obfuscation quality
  • [Scripting] Added GetCurrentColor in ColorCheckNode
  • [Scripting] Added EngineId to TextSearch in CV API - now you can specify which OCR engine to use, e.g. Tesseract (eng) or Windows (rus)
  • [Scripting] Breaking change: ISharedResourceRentController: IObservable<AnnotatedBoolean> IsRented => IObservable<AnnotatedBoolean> WhenRented + bool IsRented
  • [EyePad] Greatly improved loading performance for larger .sln files
  • [EyePad] Added Recent files
Release

1.8.8793

Permalink 5 months ago

C#-скриптинг — инъекция DLL

Последние пару месяцев я работал над внутренними улучшениями пространства имён EyeAuras.Memory. Цель — расширить его возможности и добавить поддержку инъекции DLL и хукинга внешних процессов.

Пока что из всего набора изменений я выпускаю только одну часть: у LocalProcess появился метод InjectDll, который использует простую инъекцию на базе CreateRemoteThread.
Для проектов, защищённых kernel anti-cheat, это не поможет. Мы уже тестируем решение на базе kernel-драйвера, которое позволяет обойти это ограничение — буду держать вас в курсе.

Инъекция DLL открывает много интересных и мощных возможностей. Тема довольно нишевая и технически сложная, но в ближайшие 6–12 месяцев я постараюсь сделать её доступной для всех, у кого есть базовые навыки C#, даже без глубокого понимания внутренних механизмов.

Исправления и улучшения

  • [Crash] Исправлен краш, связанный с шаблонами ColorSearch (disposal race) #EA-1146 by @ganya
  • [UI] Отключена анимация шестерёнок
  • [UI] Исправлена проблема с color picker в ColorCheck/PixelSearch
  • [Scripting] В ColorCheckNode добавлен GetCurrentColor
  • [Scripting] В TextSearch в CV API добавлен EngineId — теперь можно указывать, какой OCR-движок использовать, например Tesseract (eng) или Windows (rus)
  • [Scripting] Ломающее изменение: ISharedResourceRentController: IObservable<AnnotatedBoolean> IsRented => IObservable<AnnotatedBoolean> WhenRented + bool IsRented
  • [TextSearch] Исправлена некорректная инициализация Tesseract (numbers)
  • [EyePad] Существенно улучшена скорость загрузки больших файлов .sln
Release

1.8.8736

Permalink one year ago

Bugfixes/Improvements

  • [Crash] Fixed BT Node Position NaN crash
  • [UI] Fixed jobs scheduler crash #EA-1121
  • [UI] Fixed a problem with UI elements sometimes not showing scroll
  • [SendSequence] Added chill time 1ms to TetherScript - this should fix a problem with TetherScript driver not being able to read requests fast enough
  • [Scripting] Improvements in scripting system - added AdditionalPath resolution for Managed assemblies in NuGet packages
  • [Scripting] Improved script obfuscation quality
  • [EyePad] Added Recent files
Release

1.8.8715

Permalink one year ago

SendSequence changes

Added two new flags, which target the scenario when you want to play some long-long sequence of actions, but at the same time you want to make it possible that it could be interrupted at any given moment.

E.g. you have a sequence of skills, which are cast inside WhileActive block. Now you want to be able to interrupt it at any given moment (e.g. by toggling hotkey to "Off" state). Previously it was not possible to do so without using Behavior Trees or Macros. But now, with these two new options, it is just a couple of clicks

Can Be Interrupted

As stated in the name, it changes behavior of the action - if, for any reason, Aura gets deactivated, the action will be stopped, even if the sequence has not been completed yet.

But abruptly stopping sequences of inputs is not really a great idea most of the time - if, for example, action has pressed some button and NOT released it yet, if it will be interrupted, the button will stay pressed, probably breaking something.

That is where the second flag comes in handy:

Restore Keyboard State

This flag remembers keys, pressed by the sequence and will release them automatically at the end of the action. So even if the action was interrupted in the very middle, there will be no "stuck" keys.

Bugfixes/Improvements

  • [Crash] Fixed crash which happened when Export window was closed too quickly
  • [UI] Fixed text editor soft-crash which happened in some cases
  • [Core] Fixed Trigger activation mode - "At least one" as not working properly
  • [Scripting] Made it possible to implement EA-based authentication mechanism right in your code, meaning you can code your own login procedure which will be relying on EyeAuras Sublicenses
  • [SendSequence] Fixed a problem with Restore Mouse position not working as expected in some cases
  • [EyePad] Implemented "recent files", try it out in portable version
Release

1.7.8661

Permalink 5 months ago

Макросы — узлы Return/Break

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

Return

Узел Return позволяет выйти из макроса в любой момент — даже прямо посреди последовательности операций.
Например, если персонаж умер, продолжать выполнение основного цикла уже не имеет особого смысла.

Это аналог операции return в C#.

Break

Break — более нишевый узел. Он позволяет выйти из текущей области видимости (но не из всего макроса!).
Например, если вы находитесь внутри цикла Repeat, при необходимости можно сразу выйти из него.

Это аналог операции break в C#.

Документация

C# Scripting — Blazor Windows

Добавлена серия статей на русском и английском о программировании с использованием EyeAuras Blazor Windows API.

Behavior Tree / Macro

Добавлено много статей об узлах Behavior Tree / Macro.
Обратите внимание: большинство из этих статей доступны и на русском, и на английском.

  • IsActive — проверяет, активен ли сейчас родительский Tree/Macro
  • Interrupter — узел для продвинутых сценариев, который позволяет прервать выполнение Behavior Tree при выполнении условия
  • Return — позволяет остановить макрос
  • Break — позволяет выйти из цикла или блока кода
  • MouseMove Abs — перемещает курсор в нужное место на экране (или к чему-то)
  • MouseMove Rel — перемещает курсор относительно его текущей позиции
  • CheckKeyState — проверяет, удерживается ли сейчас какая-либо клавиша
  • KeyPress — эмулирует нажатия клавиш
  • Send Text — вводит текст либо через вставку из буфера обмена, либо посимвольно

Исправления и улучшения

  • [SendSequence] Добавлен Random Offset (как в узлах MouseMove)
  • [CheckIsActive] Исправлено некорректное обновление узла
  • [BehaviorTree] Исправлен серьёзный визуальный баг, из-за которого иногда из дерева удалялось сразу несколько узлов вместо выбранного
Release

1.7.8614

Permalink 5 months ago

Исправления и улучшения

  • [Core] Исправлена ошибка, из-за которой ауры могли загружаться с некорректным начальным состоянием: например, триггеры были неактивны, а сама аура оставалась активной. Если снова заметите такую проблему, пожалуйста, сообщите о ней.
Release

1.7.8605

Permalink one year ago

Bugfixes/Improvements

  • [UI] Improved error display in C# Scripts
  • [WaitFor] WaitFor action now behaves exactly as Delay if it does not have any links in it
  • [Scripting] Fixed an issue with LocalProcess memory-reader breaking after multiple sequential reloads
Release

1.7.8578

Permalink 5 months ago

Перекрывающиеся панели — исправлено! Наносят ответный удар

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

К сожалению, причина не на стороне EyeAuras, а в одном из базовых фреймворков, который разрабатывает Microsoft. В феврале они сообщили, что баг наконец исправлен, поэтому я обновился до этой версии, и последние пару недель мы все тестировали их исправление.

По итогам тестирования мне пришлось откатить это изменение: новая версия действительно убрала проблему с перекрытием, но при этом принесла 3 новые проблемы:

  • производительность стала заметно хуже
  • появились проблемы со всплывающими окнами (например, Login или редактором Bindings)
  • и последний гвоздь в крышку гроба — сломанный drag'n'drop: каким-то образом MS умудрились испортить одну из базовых UI-функций, и для этого я не смог найти никакого обходного решения. В EyeAuras drag'n'drop — это ключевая механика, которая используется в Behavior Trees и Macros

Так что на данный момент проблема airspace вернулась. Я продолжу следить за ситуацией.

Наложение airspace

Исправления и улучшения

  • [UI] Выполнен откат на WebView2