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
- Відкрийте Options → Basic IDE.
- Виберіть файл у полі AutoLoad.
- Натисніть 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
Порядок роботи:
- додайте Basic Example до макросу;
- відкрийте редактор коду;
- напишіть код між
SUB Main()іEND SUB; - призначте макрос на клавішу;
- збережіть профіль;
- натисніть клавішу — 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, якщо процедура з’явилася у списку цього файла.