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

UO.GetPlayerStatusText

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

ClassicUO • Runtime API

Формирует короткий текст имени и здоровья объекта.

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

UO.GetPlayerStatusText(ObjID:Any) -> Any

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

Параметры

  • ObjID — Serial/ID конкретного объекта: Integer, десятичная/hex-строка или установленный алиас self, backpack, lasttarget, lastobject либо имя AddObject. Это не graphic/type.

Возвращает

String в формате "имя HP/MaxHP". Например "Raven 75/100". Для неизвестного объекта обычно " 0/0" с начальным пробелом. Это текст, а не структура, Boolean или открытый статус-гамп.

Поведение

  • Читаются GetName/GetHP/GetMaxHP без запроса обновления. Не разбирайте текст по пробелу для получения ID или HP: имя может содержать пробелы, для чисел используйте отдельные getter-команды.

Примеры

Пример 1. Показать своё здоровье

# Показать своё здоровье
#
# Формирует короткий текст имени и здоровья объекта.
#
# String в формате "имя HP/MaxHP". Например "Raven 75/100". Для неизвестного объекта обычно "
# 0/0" с начальным пробелом. Это текст, а не структура, Boolean или открытый статус-гамп.

SUB Main()
    # ObjID=self — текущий персонаж.
    # Print показывает готовый текст в журнале.

    UO.Print(UO.GetPlayerStatusText('self'))
END SUB

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

  • ObjID=self — текущий персонаж.
  • Print показывает готовый текст в журнале.

Пример 2. Проверить цель перед показом

# Проверить цель перед показом
#
# Формирует короткий текст имени и здоровья объекта.
#
# String в формате "имя HP/MaxHP". Например "Raven 75/100". Для неизвестного объекта обычно "
# 0/0" с начальным пробелом. Это текст, а не структура, Boolean или открытый статус-гамп.

SUB Main()
    # ObjID=serial последней цели.
    # Exists предотвращает вывод неизвестного объекта как 0/0.

    VAR target = UO.GetSerial('lasttarget')
    IF UO.Exists(target) THEN
        UO.Print(UO.GetPlayerStatusText(target))
    END IF
END SUB

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

  • ObjID=serial последней цели.
  • Exists предотвращает вывод неизвестного объекта как 0/0.

Пример 3. Сохранить два снимка

# Сохранить два снимка
#
# Формирует короткий текст имени и здоровья объекта.
#
# String в формате "имя HP/MaxHP". Например "Raven 75/100". Для неизвестного объекта обычно "
# 0/0" с начальным пробелом. Это текст, а не структура, Boolean или открытый статус-гамп.

SUB Main()
    # 500 — миллисекунды между чтениями.
    # Сравнивается текст имени/HP, не все характеристики персонажа.

    VAR before = UO.GetPlayerStatusText('self')
    WAIT(500)
    VAR after = UO.GetPlayerStatusText('self')
    IF before <> after THEN
        UO.Print(after)
    END IF
END SUB

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

  • 500 — миллисекунды между чтениями.
  • Сравнивается текст имени/HP, не все характеристики персонажа.