API RGB - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

RGB

Оглавление · Алфавитный указатель · BASIC built-ins

ClassicUO • Runtime API

Упаковывает три компонента цвета в совместимое целое TColor.

Точный синтаксис

RGB(red:Integer, green:Integer, blue:Integer) -> Integer

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • red — Красный компонент 0..255; выход за диапазон ограничивается.
  • green — Зелёный компонент 0..255; выход за диапазон ограничивается.
  • blue — Синий компонент 0..255; выход за диапазон ограничивается.

Возвращает

Integer — red | green<<8 | blue<<16, то есть 0x00BBGGRR. Это не индекс палитры UO hue; не передавайте его вместо hue в команды, которые ждут палитру.

Поведение

  • Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
  • Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.

Примеры

Пример 1. Красная фигура карты

# Красная фигура карты
#
# Упаковывает три компонента цвета в совместимое целое TColor.
#
# Integer — red | green<<8 | blue<<16, то есть 0x00BBGGRR. Это не индекс палитры UO hue; не
# передавайте его вместо hue в команды, которые ждут палитру.

SUB Main()
    # red=255, green=0, blue=0. Красный хранится в младшем байте.
    # Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает
    # его.

    VAR result = RGB(255,0,0)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • red=255, green=0, blue=0. Красный хранится в младшем байте.
  • Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Синий в hex

# Синий в hex
#
# Упаковывает три компонента цвета в совместимое целое TColor.
#
# Integer — red | green<<8 | blue<<16, то есть 0x00BBGGRR. Это не индекс палитры UO hue; не
# передавайте его вместо hue в команды, которые ждут палитру.

SUB Main()
    # Синий находится в старшем из трёх цветовых байтов.
    # Ожидаемый результат: строка FF0000. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = Hex(RGB(0,0,255))
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Синий находится в старшем из трёх цветовых байтов.
  • Ожидаемый результат: строка FF0000. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Ограничить неверные компоненты

# Ограничить неверные компоненты
#
# Упаковывает три компонента цвета в совместимое целое TColor.
#
# Integer — red | green<<8 | blue<<16, то есть 0x00BBGGRR. Это не индекс палитры UO hue; не
# передавайте его вместо hue в команды, которые ждут палитру.

SUB Main()
    # Красный ограничивается до 255, зелёный до 0, синий остаётся 0.
    # Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает
    # его.

    VAR result = RGB(300,-10,0)
    UO.Print(CStr(result))
END SUB

Разбор параметров и выполнения:

  • Красный ограничивается до 255, зелёный до 0, синий остаётся 0.
  • Ожидаемый результат: 255. В result сохраняется результат выражения; Print только показывает его.