UA AutoLoad - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

AutoLoad та макроси

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

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

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

Корінь Autoload призначений для AutoLoad-файлів і каталогу Scripts. Підтримуються розширення .sc, .inj, .bas і .txt, а основна назва може бути будь-якою. Звичайні скрипти IDE зберігаються в Autoload\Scripts.

Вибір активного AutoLoad

  1. Відкрийте Options → Basic IDE.
  2. Виберіть файл у полі AutoLoad.
  3. Натисніть Apply.

Вибір зберігається окремо для персонажа у YokoAutoloadFile; значення за замовчуванням — autoload.sc. Під час входу до ігрової сцени Runtime завантажує лише вибраний файл і запускає його SUB Main(). Інші файли каталогу автоматично не стартують.

Дія макросу Basic Auto Load

У Options → Macros → Classic дія Basic Auto Load читає процедури вибраного AutoLoad, показує їх у списку й дозволяє призначити процедуру на клавішу або кнопку. Прив’язка виконує процедуру через спільний Basic Runtime. Після зміни персонажа або його AutoLoad доступний список оновлюється.

Дія макросу Basic Example

Basic Example зберігає повний невеликий скрипт у звичайному профілі макросів. Редактор має читабельну темну тему зі світлим текстом, видимим caret і виділенням.

SUB Main()
    UO.Print('Приклад макросу')
END SUB

Порядок роботи:

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

Приклад зберігається поруч зі звичайними прив’язками профілю, а не окремим файлом у корені Autoload. Він не замінює вибраний AutoLoad.

Збереження з Basic IDE

  • новий безіменний документ після звичайного Save потрапляє до Autoload\Scripts;
  • відкритий із диска файл записується назад за початковим шляхом;
  • Save All записує всі змінені документи;
  • перед виконанням IDE пропонує зберегти незбережений текст.

IDE не створює автоматично AutoLoad-файли верхнього рівня. Їх треба організувати й вибрати самостійно.

Як уникнути зависання клієнта

Макрос надсилається до керованої черги Runtime, а робота ігрового потоку обмежена короткими операціями. Скрипт також має кооперативно поступатися керуванням: додавайте UO.Wait(...) у повторювані цикли й розбивайте важку роботу на маленькі кроки. Не використовуйте активний нескінченний цикл.

Мінімальний приклад AutoLoad

SUB PrintStatus()
    UO.Print('HP: ' + CStr(UO.GetHP()))
END SUB

SUB Main()
    UO.Print('Вибраний AutoLoad запущено')
END SUB

Main стартує при вході до ігрової сцени. PrintStatus можна вибрати в Basic Auto Load, якщо процедура з’явилася у списку цього файла.