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

UO.GetActiveAbility

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

ClassicUO • Runtime API

Читает имя активированной боевой способности своего персонажа.

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

UO.GetActiveAbility() -> Any

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

Параметры

Параметров нет.

Возвращает

String — английское имя активированной способности, например Armor Ignore. Строка "0", если ни одна способность не активирована или персонаж отсутствует. Это не Integer 0, не ID способности и не подтверждение успешного удара.

Поведение

  • Читаются флаги PrimaryAbility/SecondaryAbility текущего персонажа. Если активны оба, выбирается первичная способность. Флаг активности исключается из номера перед поиском имени.
  • Данные читаются локально; сам getter не активирует способность и не расходует ману. После атаки сервер может снять активацию.
  • Первичный справочник: https://stealth.od.ua/api/GetActiveAbility/ .

Примеры

Пример 1. Показать активную способность

# Показать активную способность
#
# Читает имя активированной боевой способности своего персонажа.
#
# String — английское имя активированной способности, например Armor Ignore. Строка "0", если ни
# одна способность не активирована или персонаж отсутствует. Это не Integer 0, не ID способности
# и не подтверждение успешного удара.

SUB Main()
    # Аргументов нет; читается персонаж текущего клиента.
    # При отсутствии активации печатается строка 0.

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

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

  • Аргументов нет; читается персонаж текущего клиента.
  • При отсутствии активации печатается строка 0.

Пример 2. Активировать первичную способность только при отсутствии активной

# Активировать первичную способность только при отсутствии активной
#
# Читает имя активированной боевой способности своего персонажа.
#
# String — английское имя активированной способности, например Armor Ignore. Строка "0", если ни
# одна способность не активирована или персонаж отсутствует. Это не Integer 0, не ID способности
# и не подтверждение успешного удара.

SUB Main()
    # Сравнение выполняется со строкой 0. UsePrimaryAbility вызывается отдельно.
    # Это запрос активации, а не доказательство успешного удара. Доступность зависит от оружия и
    # правил сервера.

    IF UO.GetActiveAbility() = '0' THEN
        UO.UsePrimaryAbility()
    END IF
END SUB

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

  • Сравнение выполняется со строкой 0. UsePrimaryAbility вызывается отдельно.
  • Это запрос активации, а не доказательство успешного удара. Доступность зависит от оружия и правил сервера.

Пример 3. Преобразовать имя в ID способности

# Преобразовать имя в ID способности
#
# Читает имя активированной боевой способности своего персонажа.
#
# String — английское имя активированной способности, например Armor Ignore. Строка "0", если ни
# одна способность не активирована или персонаж отсутствует. Это не Integer 0, не ID способности
# и не подтверждение успешного удара.

SUB Main()
    # GetAbilityID получает имя, возвращённое getter.
    # ID способности не является serial оружия или персонажа. Сначала исключается отсутствие
    # активной способности.

    VAR name = UO.GetActiveAbility()
    IF name <> '0' THEN
        VAR id = UO.GetAbilityID(name)
        UO.Print('Ability ID: ' + STR(id))
    END IF
END SUB

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

  • GetAbilityID получает имя, возвращённое getter.
  • ID способности не является serial оружия или персонажа. Сначала исключается отсутствие активной способности.