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\
├─ autoload.sc
├─ MyCombat.inj
├─ Crafting.bas
└─ Scripts\
├─ Healer.sc
└─ Hunter.sc
В корне Autoload должны находиться только AutoLoad-файлы и папка Scripts. Поддерживаются .sc, .inj, .bas и .txt; имя файла может быть любым.
Выбор AutoLoad
- Откройте Options → Basic IDE.
- Выберите файл в поле AutoLoad.
- Нажмите 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
Как использовать:
- добавьте действие Basic Example в макрос;
- откройте редактор примера;
- напишите код внутри
SUB Main()иEND SUB; - назначьте клавишу;
- сохраните профиль;
- нажмите клавишу — Runtime выполнит этот отдельный скрипт.
Редактор использует читаемую тёмную тему со светлым текстом, видимым caret и выделением.
Почему макрос не должен замораживать клиент
Запуск вынесен в управляемую очередь Runtime, а работа игрового потока ограничена короткими операциями. Сам скрипт также должен кооперативно уступать управление: в повторяющихся циклах используйте UO.Wait(...).
Сохранение файлов из IDE
- новый безымянный файл →
Autoload\Scripts; - ранее открытый файл → исходный путь;
- AutoLoad-файлы верхнего уровня не создаются IDE автоматически: их выбирает и организует пользователь.