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 оружия или персонажа. Сначала исключается отсутствие активной способности.