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

UO.GetTooltip

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

ClassicUO • Runtime API

Читает готовый текст свойств объекта из OPL. GetTooltip и GetCliloc являются синонимами.

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

UO.GetTooltip(ObjID:Any) -> Any

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

Параметры

  • ObjID — Обязательный serial/ID объекта, не type и не cliloc. Допускается Integer, десятичная/hex-строка, self, backpack, lasttarget, finditem или имя AddObject. 0 означает отсутствие объекта.

Возвращает

String — имя и текст свойств, разделённые переводом строки, либо только непустая часть. Пустая строка при ObjID=0 или если свойства не получены. Это готовый текст; числовые ID cliloc и параметры возвращает GetTooltipRec.

Поведение

  • Если запись уже есть в OPL, возвращается её текст сразу. При отсутствии записи отправляется запрос свойств и ожидается ответ до 200 мс с проверкой каждые 10 мс. Пауза не означает гарантированное получение ответа.
  • Нужны доступный объект и поддержка свойств сервером. Пустой результат не является доказательством отсутствия объекта: используйте Exists отдельно.
  • Текст может содержать разметку сервера. Не разбирайте числовые свойства по позиции строки; для этого используйте GetTooltipRec.
  • Первичный справочник: https://stealth.od.ua/api/GetTooltip/ .

Примеры

Пример 1. Свойства предмета в рюкзаке

# Свойства предмета в рюкзаке
#
# Читает готовый текст свойств объекта из OPL. GetTooltip и GetCliloc являются синонимами.
#
# String — имя и текст свойств, разделённые переводом строки, либо только непустая часть. Пустая
# строка при ObjID=0 или если свойства не получены. Это готовый текст; числовые ID cliloc и
# параметры возвращает GetTooltipRec.

SUB Main()
    # FindType: золото 0x0EED, любой hue=-1, прямое содержимое backpack. ObjID=item — найденный
    # serial.
    # Результат getter — текст, а не количество золота. Для количества используйте FindCount(item).

    VAR item = UO.FindType(0x0EED, -1, 'backpack')
    IF item <> '' THEN
        UO.Print(UO.GetTooltip(item))
    END IF
END SUB

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

  • FindType: золото 0x0EED, любой hue=-1, прямое содержимое backpack. ObjID=item — найденный serial.
  • Результат getter — текст, а не количество золота. Для количества используйте FindCount(item).

Пример 2. Обработать отсутствие ответа

# Обработать отсутствие ответа
#
# Читает готовый текст свойств объекта из OPL. GetTooltip и GetCliloc являются синонимами.
#
# String — имя и текст свойств, разделённые переводом строки, либо только непустая часть. Пустая
# строка при ObjID=0 или если свойства не получены. Это готовый текст; числовые ID cliloc и
# параметры возвращает GetTooltipRec.

SUB Main()
    # ObjID=lasttarget должен указывать на нужный объект.
    # Пустая строка обрабатывается отдельно; автоматически повторять запрос в бесконечном цикле не
    # нужно.

    VAR text = UO.GetTooltip('lasttarget')
    IF text = '' THEN
        UO.Print('No properties received')
    ELSE
        UO.Print(text)
    END IF
END SUB

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

  • ObjID=lasttarget должен указывать на нужный объект.
  • Пустая строка обрабатывается отдельно; автоматически повторять запрос в бесконечном цикле не нужно.

Пример 3. Сохранить текст до следующего действия

# Сохранить текст до следующего действия
#
# Читает готовый текст свойств объекта из OPL. GetTooltip и GetCliloc являются синонимами.
#
# String — имя и текст свойств, разделённые переводом строки, либо только непустая часть. Пустая
# строка при ObjID=0 или если свойства не получены. Это готовый текст; числовые ID cliloc и
# параметры возвращает GetTooltipRec.

SUB Main()
    # id и saved — отдельные переменные: уникальный ID объекта и снимок его текста.
    # saved не изменится автоматически, если свойства на сервере позже поменяются.

    VAR id = UO.GetSerial('lasttarget')
    VAR saved = UO.GetTooltip(id)
    UO.Print('Object: 0x' + Hex(id))
    UO.Print(saved)
END SUB

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

  • id и saved — отдельные переменные: уникальный ID объекта и снимок его текста.
  • saved не изменится автоматически, если свойства на сервере позже поменяются.