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.
From now on, the server will save all versions of your auras ever created/uploaded. This allows to download pack with some specific revision in case something is wrong with the new one.
Here is how it looks like ("Revisions" section at the bottom of the page) Example - Blum clicker pack
From now on, any shared pack of auras could be downloaded as a separate portable application which can be running in parallel with the main EyeAuras. This should drastically reduce complexity of onboarding of new users - to them, your pack of auras will look just like a usual program, which they can download, unzip and run. This is especially powerful in combination with Custom UI - you can basically create entirely new program and then distribute it as a portable app, which will have multiple layers of anti-cheat protection, almost dozen different input simulators, high-performance image capture and ML-capabilities.
This is still in early stages and will be the recommended way of distributing your work to other users, even those who are already using a program themselves - portable format guarantees that the program will keep working even if the main version of EyeAuras was updated in some breaking way.

P.S. Client-side packing will be enabled a bit later
EyeAuras включает почти две сотни библиотек, которые покрывают разные части его функциональности, и я хочу поблагодарить их авторов.

Сглаживатели ввода используются для того, чтобы движение мыши выглядело... ну... плавным. Существует очень много разных алгоритмов, и сейчас в EyeAuras встроены только два из них.
В этой версии появилась возможность реализовать собственный сглаживатель через скрипты, а затем использовать его где угодно: в behavior trees, в аурах или в других скриптах.
Следующий шаг, который я планирую добавить, — возможность полностью реализовывать симулятор ввода в коде. Это позволит, например, сделать собственный метод отправки ввода в фоновое окно. Я и сам хочу добавить такой вариант, но постоянно появляются новые задачи, поэтому этим изменением я хотя бы разблокирую тех, кто может реализовать это самостоятельно.
CopyFromScreen, поддержку для более производительных методов добавлю позже.Долгожданное изменение: теперь можно связывать несколько аур, содержащих код на C#, и переиспользовать методы, классы и другие элементы так, как будто это один общий скрипт.
Это позволяет один раз написать вспомогательные функции и затем использовать их везде, где они нужны. Для крупных проектов это должно почти свести copy-paste к нулю.
Изменение работает как для Auras, так и для Behavior Trees: если добавить ссылку на Aura из Behavior Tree, общий код станет доступен всем узлам этого дерева.
Чтобы связать ауры между собой, просто добавьте Reference, как показано на изображении ниже.

Например, в вашей Aura-"библиотеке" можно хранить набор классов для пользовательской конфигурации или логику, которая особым образом эмулирует ввод пользователя. Либо там можно разместить код для рисования на экране через OnScreenDisplay.
IBehaviorTreeAccessor теперь предоставляет метод Tick, который позволяет вручную управлять тиками дереваIBehaviorTreeAccessor теперь позволяет удаленно получать доступ к BlackboardScriptVariable больше не стирает ранее сохраненные значения при несовпадении типовРанее, когда скрипт делал что-то действительно не так, что для обычной "классической" программы привело бы к крашу, глаз следовал той же схеме. То есть, если вы допустили ошибку в скрипте, программа сразу же вылетала, показывая окно отчета об ошибке и предлагая ее отправить мне. Это вроде как имело смысл, но в какой-то момент я начал получать ОЧЕНЬ много отчетов об ошибках, которые я никак не могу исправить, так как их нужно фиксить на стороне скрипта.
В принципе, у меня есть 3 варианта:
a) оставить все как есть и продолжать информировать людей, что они должны внедрять практики обработки исключений, точно так же как в обычных приложениях
Работает не очень хорошо, особенно учитывая приток новых пользователей. Это значит, что чем более популярна будет программа, тем больше новых пользователей будут пробовать скриптинг, и тем больше из них придется иметь дело с исключениями. Плохо масштабируется.
b) запускать скрипты в изолированной среде, по сути, создавать маленькие отдельные исполняемые файлы, которые взаимодействуют с "главной" программой через какой-то шустрый транспорт
Лучший вариант, но с технической точки зрения чрезвычайно сложный, особенно учитывая, что эта "маленькая" программа должна будет общаться с главной с очень низкими задержками, иначе это просто не будет работать для реальных применений. В какой-то момент это станет моей целью, но я оцениваю стоимость разработки в 3-4 месяца как минимум, что делает ее одной из самых дорогих потенциальных новых функций.
c) учитывая, что EyeAuras полностью контролирует исходный код и управление процессом выполнения, попытаться сделать весь процесс скриптинга максимально надежным и защищенным от ошибок
Это вариант, который мы попробуем сейчас. Я разработал тестовое решение, которое пытается перехватить все ошибки, возникающие в пользовательских скриптах, и вместо того, чтобы крашить приложение, пытается их обрабатывать, восстанавливать состояние (если возможно) и продолжать работу. Также я начну писать автоматические улучшения кода, которые будут применяться к пользовательскому коду во время компиляции - например, добавление правильной обработки исключений там, где это отсутствует (например, обработчики нажатий кнопок) или обработка исключений, выбрасываемых задачами.
Посмотрим, как это пойдет.
Еще несколько исправлений и улучшений в этом релизе:
GetService<T>, могла случайно освободить (то есть "убить") некоторые важные службы EyeAuras...В течение нескольких лет EyeAuras использовал механизм, который проверял результаты каждого перемещения мыши - он удостоверялся, что курсор действительно переместился в нужное место. Исторически основной причиной для этого были аппаратные эмуляторы ввода, такие как Usb2Kbd и пользовательские устройства на базе Arduino. Для них это имело смысл, так как они не всегда мгновенно выполняют перемещение, что означает, что если у вас два ввода подряд (MouseMove + Click), есть шанс, что мышь не будет в нужной позиции, когда будет выполнен клик. Теперь инструменты для отправки вводов стали гораздо мощнее - SendSequence, BehaviorTrees, Scripts, и этот механизм кажется приносит больше проблем, чем пользы.
В тестовом режиме этот механизм теперь отключен для всех методов ввода. В теории, это не должно быть сильно заметно в большинстве случаев, но имейте в виду, что вам, возможно, придется добавить некоторые дополнительные задержки между операциями перемещения мыши.
Добавлена полная поддержка Ctrl+C/Ctrl+V - ранее Ctrl+C был чем-то вроде механизма экспорта, что означало, что вы не могли просто скопировать элемент и вставить его в другую папку, так как это приводило к конфликтам. Теперь вы можете копировать и вставлять элементы повсюду так же, как вы это делаете в проводнике Windows. Также схема именования для клонированных элементов теперь следует той, что используется в Windows, например, если вы копируете "Aura", первый клон будет назван "Aura - Copy", второй "Aura - Copy(2)" и так далее.
Обратите внимание, что копирование-вставка элементов между несколькими экземплярами EyeAuras не работает! Для этого пока нужно использовать Export и Import.