AutoLoad and Macros - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

AutoLoad и макросы

Home · BASIC · UO API · A–Z · Examples · Languages

Навигация по разделу

Тема Подробнее
AutoLoad Overview Как устроена автозагрузка
SUB Main() Точка входа
AutoLoad File Selection Выбор файла
Per-Character AutoLoad Область профиля
Procedures SUB · CallSub · Terminate
BASIC Auto Load Запуск процедуры макросом
BASIC Command Вызов команды
BASIC Example Выбор примера
Key Bindings Макросы и горячие клавиши
Autoload\Scripts Сохранение скриптов
Examples Примеры процедур · Скрипты

AutoLoad и макросы Basic

Структура каталога

Autoload\
├─ autoload.sc
├─ MyCombat.inj
├─ Crafting.bas
└─ Scripts\
   ├─ Healer.sc
   └─ Hunter.sc

В корне Autoload должны находиться только AutoLoad-файлы и папка Scripts. Поддерживаются .sc, .inj, .bas и .txt; имя файла может быть любым.

Выбор AutoLoad

  1. Откройте Options → Basic IDE.
  2. Выберите файл в поле AutoLoad.
  3. Нажмите Apply.

Выбор хранится в профиле отдельно для каждого персонажа. Значение профиля — YokoAutoloadFile; значение по умолчанию — autoload.sc.

При входе в игровую сцену Runtime загружает выбранный файл и запускает его SUB Main(). Другие AutoLoad-файлы автоматически не стартуют.

Basic Auto Load

В Options → Macros → Classic действие Basic Auto Load:

  • читает процедуры выбранного AutoLoad-файла;
  • показывает их в списке;
  • позволяет назначить процедуру на клавишу или кнопку;
  • выполняет выбранную процедуру через общий Basic Runtime.

Список меняется вместе с AutoLoad текущего персонажа.

Basic Example

Basic Example хранит небольшой полноценный скрипт прямо в обычном профиле макросов. Редактор создаёт структуру:

SUB Main()
    UO.Print('Example macro')
END SUB

Как использовать:

  1. добавьте действие Basic Example в макрос;
  2. откройте редактор примера;
  3. напишите код внутри SUB Main() и END SUB;
  4. назначьте клавишу;
  5. сохраните профиль;
  6. нажмите клавишу — Runtime выполнит этот отдельный скрипт.

Редактор использует читаемую тёмную тему со светлым текстом, видимым caret и выделением.

Почему макрос не должен замораживать клиент

Запуск вынесен в управляемую очередь Runtime, а работа игрового потока ограничена короткими операциями. Сам скрипт также должен кооперативно уступать управление: в повторяющихся циклах используйте UO.Wait(...).

Сохранение файлов из IDE

  • новый безымянный файл → Autoload\Scripts;
  • ранее открытый файл → исходный путь;
  • AutoLoad-файлы верхнего уровня не создаются IDE автоматически: их выбирает и организует пользователь.