API UO GetColor - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.GetColor

Оглавление · Алфавитный указатель · Items

ClassicUO • Runtime API

Читает hue объекта и форматирует его как шестнадцатеричную строку.

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

UO.GetColor() -> String
UO.GetColor(id:Any) -> String

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

Параметры

  • id — Serial/ID объекта, а не graphic/type. Число, hex-строка, стандартное имя self/backpack/lasttarget/lastobject/lastcontainer/laststatus/finditem/lastcorpse или имя AddObject. Алиас должен быть установлен; существование проверяется Exists. В зарегистрированной форме без аргументов используется self.

Возвращает

String вида "0x0481" — код hue/цвета, четыре hex-цифры после 0x. Для отсутствующего объекта возвращается "0x0000"; этот же код бывает у неокрашенного предмета. Цвет не является graphic/type или уникальным serial.

Поведение

  • Читаются последние данные, уже известные клиенту; запрос обновления серверу не отправляется.
  • Неизвестный объект и ещё не полученное свойство могут иметь нулевое/пустое значение. Проверяйте Exists и условия конкретного действия.

Примеры

Пример 1. Узнать цвет последнего предмета

# Узнать цвет последнего предмета
#
# Читает hue объекта и форматирует его как шестнадцатеричную строку.
#
# String вида "0x0481" — код hue/цвета, четыре hex-цифры после 0x. Для отсутствующего объекта
# возвращается "0x0000"; этот же код бывает у неокрашенного предмета. Цвет не является
# graphic/type или уникальным serial.

SUB Main()
    # id=lastobject — последний использованный объект.
    # Результат уже является hex-строкой и не требует Int2Hex.

    VAR hue = UO.GetColor('lastobject')
    UO.Print(hue)
END SUB

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

  • id=lastobject — последний использованный объект.
  • Результат уже является hex-строкой и не требует Int2Hex.

Пример 2. Искать предмет того же цвета

# Искать предмет того же цвета
#
# Читает hue объекта и форматирует его как шестнадцатеричную строку.
#
# String вида "0x0481" — код hue/цвета, четыре hex-цифры после 0x. Для отсутствующего объекта
# возвращается "0x0000"; этот же код бывает у неокрашенного предмета. Цвет не является
# graphic/type или уникальным serial.

SUB Main()
    # type и hue — разные признаки образца; FindType принимает оба hex-представления.
    # match — найденный serial или пустая строка. Цвет не заменяет type.

    VAR sample = UO.GetSerial('lastobject')
    IF UO.Exists(sample) THEN
        VAR type = UO.GetGraphic(sample)
        VAR hue = UO.GetColor(sample)
        VAR match = UO.FindType(type, hue, 'backpack')
        UO.Print(match)
    END IF
END SUB

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

  • type и hue — разные признаки образца; FindType принимает оба hex-представления.
  • match — найденный serial или пустая строка. Цвет не заменяет type.

Пример 3. Перевести hue в целое для сравнения

# Перевести hue в целое для сравнения
#
# Читает hue объекта и форматирует его как шестнадцатеричную строку.
#
# String вида "0x0481" — код hue/цвета, четыре hex-цифры после 0x. Для отсутствующего объекта
# возвращается "0x0000"; этот же код бывает у неокрашенного предмета. Цвет не является
# graphic/type или уникальным serial.

SUB Main()
    # GetColor читает self; Hex2Int преобразует hex-текст в Integer.
    # Нулевой hue сам по себе не сообщает, присутствует ли персонаж в мире.

    VAR hue = UO.Hex2Int(UO.GetColor('self'))
    IF hue = 0 THEN
        UO.Print('Hue is zero')
    END IF
END SUB

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

  • GetColor читает self; Hex2Int преобразует hex-текст в Integer.
  • Нулевой hue сам по себе не сообщает, присутствует ли персонаж в мире.