-
Notifications
You must be signed in to change notification settings - Fork 0
API UO FontColor
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Client UI
Устанавливает hue последующих локальных UO.UOAMessage данного скрипта. Не меняет цвет речи персонажа, обычного UO.Print, InfoFindList или тему IDE.
UO.FontColor(color:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
color— Обязательный числовой индекс hue 0..65535, например 0x0044. Это не RGB. Внутри хранится Integer, при выводе приводится к ushort; -1 НЕ означает сброс и превращается в 65535. Начальное значение нового runtime — 0x03B2. Формы без аргумента нет.
Unit: нет результата, старого цвета или признака успеха. Чтобы позже вернуть свою настройку, храните выбранный hue в переменной скрипта.
- Изменяет только state.FontColor, не печатает сообщение и не отправляет сетевой пакет.
- Действует до следующего FontColor в том же runtime. Другой самостоятельный скрипт имеет своё состояние. UO.Print(text,color) задаёт цвет непосредственно и не читает FontColor.
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
FontColor сохраняет числовое значение в state.FontColor; UOAMessage читает его и передаёт текст в bridge.Print.
Настройка принадлежит текущему runtime; результат обеих команд Unit.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteLegacyManualAlias.
Перегрузка Print(color,msg) приводит цвет к 16-битному hue.
Это локальный вывод клиента, не серверная речь персонажа.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция Print.
Передаёт текст в штатную нижнюю строку/журнал и дублирует сообщение в вывод IDE.
Наличие записи в IDE само по себе не проверяет фактический цвет отрисовки.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция PrintClientMessage.
Для одного сообщения без изменения состояния можно использовать UO.Print(text,color).
SUB Main()
# Hue используется следующими UOAMessage только в этом скрипте.
UO.FontColor(0x0021)
VAR first = UO.FindList("0x0EED", "backpack")
IF first = "" THEN
UO.UOAMessage("No gold in the loaded backpack")
ELSE
UO.UOAMessage("Gold units: " + CStr(UO.FindFullQuantity()))
END IF
END SUBРазбор параметров и выполнения:
- 0x0021 — индекс hue; итоговый оттенок зависит от файлов hues клиента. Сообщение видно локально; его не произносит персонаж.
SUB Main()
Notice("Supplies checked", 0x0044)
Notice("Restock needed", 0x0021)
END SUB
SUB Notice(text, hue)
# hue — индекс цвета, text — локальное сообщение, не речь на сервере.
UO.FontColor(hue)
UO.UOAMessage(text)
END SUBРазбор параметров и выполнения:
- Полная Notice принимает текст и hue. Последний установленный hue остаётся для следующего UOAMessage этого runtime. Встроенного FontColor() для чтения здесь нет.
SUB Main()
VAR baseHue = 0x03B2
TRY
UO.FontColor(0x0021)
UO.UOAMessage("Check the route before moving")
FINALLY
# Это заданная базовая настройка, а не чтение предыдущего цвета.
UO.FontColor(baseHue)
END TRY
UO.UOAMessage("Ready")
UO.Print("Regular Print keeps its own color")
END SUBРазбор параметров и выполнения:
- 0x03B2 — начальное значение FontColor нового runtime. Finally возвращает именно выбранную базу при обычном завершении/обрабатываемой ошибке; оно не восстанавливает неизвестное прежнее значение.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь