1.9.9774
Daily-driver build with the safest release cadence.
- Updated
- 5 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.
IPerformanceMetricsProvider — you can now display real-time memory and CPU usage dataВ этой версии — больше десятка различных улучшений и оптимизаций производительности, которые я готовил уже довольно давно.
В ближайшие пару недель возможны нестабильности, но для большинства сценариев, особенно для скриптинга в EyePad, разница должна быть просто колоссальной.
Проверил улучшения на боте на базе ImGui — теперь можно выходить на диапазон в 2k fps. И это С УЧЁТОМ чтения памяти и разбора всех необходимых игровых структур! По сути, bot-loop теперь работает примерно на ~2k тиков в секунду — до этих исправлений FPS был в районе 400–500.

Следующая цель — стабилизировать FPS и сделать его более плавным, потому что сейчас он довольно «скачущий». Пару месяцев назад я уже писал про адаптацию new prototype-GC в changelog для 1.7.8559 — это как раз должно помочь с этой задачей.
Пожалуйста, сообщайте обо всём, что заметите!
Script FileProvider стал гибче и теперь понимает больше форматов путей.csproj должны определяться корректноAdded new very powerful tool into our toolkit - now you can embed arbitrary files, be it images, videos, text files or even DLL/EXE files right into your script. And then, from that very script you can do whatever you want with them just like if they would be right there on the disk. This opens up a lot of new possibilities - embedding guiding materials into scripts, bringing your own assemblies which contain some custom code or even entire installers of tools which your script might use.
Moreover, with use of C# Script protection it is possible to protect those resources with encryption, making it much harder to extract and re-use outside the script. I'll announce separately when that part of functionality will be publicly available.

Improved EyeAuras resiliency around script variables management - now none of default methods (accessing variable value or listening for its changes) are throwing exceptions, making it easier for new users to pick up and use.
General idea is to bring things closer to Python/JavaScript as usually in scripting you want as much flexibility as possible. At the same time, C# is strongly-typed language, thus striking the balance is not easy. This is the second iteration of variables, so we'll see how it goes.
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
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:
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.
Adding two new nodes which should help to create better and smarter Macros!
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 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#
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.
Added a series of articles in Russian/English about programming using EyeAuras Blazor Windows API
Added a whole bunch of articles about Behavior Tree / Macro nodes. Note that most of these articles are available in both Russian and English.
C# ScriptsWaitFor action now behaves exactly as Delay if it does not have any links in itTesseract (numbers) not initializing properlyLocalProcess memory-reader breaking after multiple sequential reloadsTesseract (eng) or Windows (rus)ISharedResourceRentController: IObservable<AnnotatedBoolean> IsRented => IObservable<AnnotatedBoolean> WhenRented + bool IsRented.sln filesПоследние пару месяцев я работал над внутренними улучшениями пространства имён EyeAuras.Memory. Цель — расширить его возможности и добавить поддержку инъекции DLL и хукинга внешних процессов.
Пока что из всего набора изменений я выпускаю только одну часть: у LocalProcess появился метод InjectDll, который использует простую инъекцию на базе CreateRemoteThread.
Для проектов, защищённых kernel anti-cheat, это не поможет. Мы уже тестируем решение на базе kernel-драйвера, которое позволяет обойти это ограничение — буду держать вас в курсе.
Инъекция DLL открывает много интересных и мощных возможностей. Тема довольно нишевая и технически сложная, но в ближайшие 6–12 месяцев я постараюсь сделать её доступной для всех, у кого есть базовые навыки C#, даже без глубокого понимания внутренних механизмов.
ColorCheckNode добавлен GetCurrentColorTextSearch в CV API добавлен EngineId — теперь можно указывать, какой OCR-движок использовать, например Tesseract (eng) или Windows (rus)ISharedResourceRentController: IObservable<AnnotatedBoolean> IsRented => IObservable<AnnotatedBoolean> WhenRented + bool IsRentedTesseract (numbers).sln