EasyUniversal / DocsДокументация · SDK 0.3Подписка Universal ↗
Easy Universal / Начало работы

Первый скрипт

AngelScript · native runtime · локальная сборка

Первый скрипт Easy Universal

Язык — AngelScript, расширение .as. Lua и скрипты другого SDK не совместимы
автоматически. SDK 0.3 и совместимость API 0.1/0.2 описаны в API.md;
точные объявления — declarations.as. Process toolkit — PROCESS_API_RU.md.

Создать и запустить

Сохраните следующий код в UTF-8 файле hello.as:

void on_frame() {
    render::text(24, 24, "Hello, Easy!", 0xff994dff);
    render::circle(screen::width() / 2, screen::height() / 2, 30, 0xffffffff);
}

Откройте клиент → Add .as → выберите файл → Source → Load script. Импорт
копирует код в отдельный пакет; исходный файл не изменяется. Это пример для
собственного окна: доступ к памяти, администратор и запущенная игра не нужны.
Stop завершает сессию. Не запускайте неизвестные скрипты.

Редактор

Save / Ctrl+S сохраняет без запуска. Save + Reload / Ctrl+Shift+S доступен
для текущего работающего пакета. Обычный Reload перечитывает сохранённый файл,
а не несохранённый буфер. Ctrl+F / F3 ищут текст с учётом регистра; Ctrl+L
позволяет перейти к строке. F4 / Go to error переходят к последней ошибке.
Details содержит файл, строку, колонку и текст сообщения.

Если файл изменился снаружи, Save откажется перезаписывать его. Скопируйте
свои правки перед Reopen. Ошибка компиляции или callback останавливает сессию;
автоматического отката на старый код нет.

Подключить разрешённое тестовое приложение

Импортируйте process-inspector.as, нажмите Select рядом с PID, найдите своё
приложение по имени или PID и подтвердите выбор. Затем отдельно включите
Read selected process. Смена PID снимает разрешения. Overlay selected window
опционален: это собственное прозрачное окно, не инжект и не Discord Overlay.

Выбор из списка означает только, что процесс существует. Он не гарантирует
доступ к памяти или окно для оверлея. После перезапуска приложения снова
выберите PID. Не отключайте защиту и не повышайте права вслепую при отказе.

Типичные ошибки

  • Нет доступа: проверьте process_read в manifest и явное разрешение клиента.
  • Процесс завершился: остановите сессию и выберите новый экземпляр.
  • Ошибка чтения: проверяйте возвращаемый bool и process::last_error();

результаты неудачного чтения очищаются. Не используйте старые значения.

  • Script error: смотрите Details, исправьте указанный файл/строку и сохраните.
  • Callback limit / watchdog: уменьшите работу за кадр; чтения ограничены

256 операциями / 1 МиБ на callback, отдельное чтение — 64 КиБ.

  • Нет картинки: рисуйте только в on_frame, проверьте permission render;

обычное окно вывода и overlay выбранного окна — разные режимы.

Поддержка приложений

Общий runtime не знает сущности, координаты или формат данных всех игр.
Для каждого приложения нужен совместимый адаптер с разрешённым источником
данных. Для War Thunder добавлен адаптер локальной телеметрии собственных
приборов: WAR_THUNDER.md. Его работа в игре ещё не проверена. Для Fortnite
готового адаптера нет. Повышение прав не обеспечивает доступ к защищённым
процессам. Обход античита, kernel-компоненты и автоматизация ввода отсутствуют.

Облачный каталог и семантическое автодополнение остаются отдельными этапами.
Source уже поддерживает многофайловые пакеты, лексическую подсветку AngelScript
и задержанные подсказки деклараций из API_SCHEMA; текущий редактор не выполняет
семантический анализ и не доверяет автору пакета.

Easy Universal — отдельный проект. Easy External не изменён.