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

UO.GetName

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

ClassicUO • Runtime API

Читает известное клиенту имя предмета или персонажа.

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

UO.GetName() -> String
UO.GetName(id:Integer) -> String
UO.GetName(id:String) -> String
UO.GetName(ObjID:Any) -> Any

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

Параметры

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

Возвращает

String — имя объекта. Неизвестный объект или ещё не полученное имя дают пустую строку "". Это не serial, не type и не полный список свойств из tooltip.

Поведение

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

Примеры

Пример 1. Вывести имя персонажа

# Вывести имя персонажа
#
# Читает известное клиенту имя предмета или персонажа.
#
# String — имя объекта. Неизвестный объект или ещё не полученное имя дают пустую строку "". Это
# не serial, не type и не полный список свойств из tooltip.

SUB Main()
    # Без аргумента используется self.
    # Результат — текст имени, его можно выводить напрямую.

    VAR name = UO.GetName()
    UO.Print(name)
END SUB

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

  • Без аргумента используется self.
  • Результат — текст имени, его можно выводить напрямую.

Пример 2. Обработать неизвестное имя цели

# Обработать неизвестное имя цели
#
# Читает известное клиенту имя предмета или персонажа.
#
# String — имя объекта. Неизвестный объект или ещё не полученное имя дают пустую строку "". Это
# не serial, не type и не полный список свойств из tooltip.

SUB Main()
    # lasttarget — алиас объекта. GetName не открывает новый target.
    # Пустое имя не доказывает отсутствие объекта: сначала могла прийти информация о serial без
    # имени.

    VAR name = UO.GetName('lasttarget')
    IF name = '' THEN
        UO.Print('Name is not available')
    ELSE
        UO.Print('Target: ' + name)
    END IF
END SUB

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

  • lasttarget — алиас объекта. GetName не открывает новый target.
  • Пустое имя не доказывает отсутствие объекта: сначала могла прийти информация о serial без имени.

Пример 3. Сравнить имя без учёта регистра

# Сравнить имя без учёта регистра
#
# Читает известное клиенту имя предмета или персонажа.
#
# String — имя объекта. Неизвестный объект или ещё не полученное имя дают пустую строку "". Это
# не serial, не type и не полный список свойств из tooltip.

SUB Main()
    # LCASE переводит строку в нижний регистр для сравнения.
    # Имя задаёт сервер и оно может быть локализовано. Для отбора по графическому типу используйте
    # FindType/GetGraphic.

    VAR name = UO.GetName('lastobject')
    IF LCASE(name) = 'gold' THEN
        UO.Print('Known name matches')
    END IF
END SUB

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

  • LCASE переводит строку в нижний регистр для сравнения.
  • Имя задаёт сервер и оно может быть локализовано. Для отбора по графическому типу используйте FindType/GetGraphic.