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

UO.GetNotoriety

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

ClassicUO • Runtime API

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

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

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

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

Параметры

  • id — Необязательный объект только в указанных однопараметрических формах: serial числом/hex-строкой, "self", "lasttarget" или имя AddObject. Это не graphic/type. Без аргумента читается собственный персонаж. Перед чтением другого объекта проверяйте UO.Exists; неизвестное имя не открывает прицел.
  • ObjID — Необязательный объект только в указанных однопараметрических формах: serial числом/hex-строкой, "self", "lasttarget" или имя AddObject. Это не graphic/type. Без аргумента читается собственный персонаж. Перед чтением другого объекта проверяйте UO.Exists; неизвестное имя не открывает прицел.

Возвращает

Integer — 0=unknown, 1=innocent, 2=ally, 3=gray, 4=criminal, 5=enemy, 6=murderer, 7=invulnerable. Это код состояния, а не hue, karma или fame. Неизвестный mobile даёт 0.

Поведение

  • Читаются уже полученные локальные данные. Запрос не открывает status и не заставляет сервер прислать обновление. После смерти, перехода карты или удаления объекта значения могут измениться между двумя вызовами.
  • Это функции чтения: присваивание результата переменной сохраняет снимок. Оно не изменяет характеристику персонажа. Имена нечувствительны к регистру; используйте именно показанную форму с нужным числом аргументов.

Примеры

Пример 1. Вывести текущее значение своего персонажа

# Вывести текущее значение своего персонажа
#
# Читает репутацию персонажа из модели клиента.
#
# Integer — 0=unknown, 1=innocent, 2=ally, 3=gray, 4=criminal, 5=enemy, 6=murderer,
# 7=invulnerable. Это код состояния, а не hue, karma или fame. Неизвестный mobile даёт 0.

SUB Main()
    # Вызов без аргументов относится к self. Репутацию персонажа сохраняется в value.
    # STR преобразует число для вывода и не меняет смысл результата.

    VAR value = UO.GetNotoriety()
    UO.Print('GetNotoriety: ' + STR(value))
END SUB

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

  • Вызов без аргументов относится к self. Репутацию персонажа сохраняется в value.
  • STR преобразует число для вывода и не меняет смысл результата.

Пример 2. Использовать значение в прикладной проверке

# Использовать значение в прикладной проверке
#
# Читает репутацию персонажа из модели клиента.
#
# Integer — 0=unknown, 1=innocent, 2=ally, 3=gray, 4=criminal, 5=enemy, 6=murderer,
# 7=invulnerable. Это код состояния, а не hue, karma или fame. Неизвестный mobile даёт 0.

SUB Main()
    # Значение читается один раз без аргументов. Репутацию персонажа используется в показанном
    # расчёте или условии.
    # Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные
    # единицы и ограничения, описанные выше.

    VAR value = UO.GetNotoriety()
    IF value = 3 OR value = 4 THEN
        UO.Print('Gray or criminal notoriety')
    END IF
END SUB

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

  • Значение читается один раз без аргументов. Репутацию персонажа используется в показанном расчёте или условии.
  • Числовые пороги — пример условий скрипта, а не новые пределы клиента. Поле сохраняет серверные единицы и ограничения, описанные выше.

Пример 3. Прочитать свойство выбранного объекта

# Прочитать свойство выбранного объекта
#
# Читает репутацию персонажа из модели клиента.
#
# Integer — 0=unknown, 1=innocent, 2=ally, 3=gray, 4=criminal, 5=enemy, 6=murderer,
# 7=invulnerable. Это код состояния, а не hue, karma или fame. Неизвестный mobile даёт 0.

SUB Main()
    # Единственный аргумент выбирает объект lasttarget; его serial должен быть известен клиенту.
    # Graphic/type сюда не передаётся.
    # Данные другого объекта могут быть неизвестны даже при положительном Exists. Для координат
    # предмета в сумке получается позиция контейнера, а не точка мира.

    IF UO.Exists('lasttarget') THEN
        VAR targetValue = UO.GetNotoriety('lasttarget')
        UO.Print('Selected value: ' + STR(targetValue))
    ELSE
        UO.Print('Target is not loaded')
    END IF
END SUB

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

  • Единственный аргумент выбирает объект lasttarget; его serial должен быть известен клиенту. Graphic/type сюда не передаётся.
  • Данные другого объекта могут быть неизвестны даже при положительном Exists. Для координат предмета в сумке получается позиция контейнера, а не точка мира.