Skip to content

API UO IsActiveSpellAbility uk

Codex edited this page Sep 23, 2026 · 1 revision

UO.IsActiveSpellAbility

ClassicUO / Basic IDE

Home · API · Commands

Перевіряє, чи повідомив сервер про активний стан вибраної здібності/закляття. Допомагає уникати повторної активації. Нічого не вмикає, не кастує й не вибирає ціль.

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

UO.IsActiveSpellAbility(SpellName:Any) -> Any

Параметри

  • SpellName — Один обов’язковий параметр: англійська назва з каталогу або цілий ID. "Confidence" і 402 — одне закляття Bushido. Регістр не важливий, підкреслення замінюються пробілами; числовий рядок також приймається. Це не serial персонажа, type предмета чи номер навички.

Повертає

Integer: 1 — отримано активний стан ID; 0 — такого стану немає. В умовах 1/0 відповідають TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза 1…65535 або відсутність статусу також дають 0.

Поведінка

  • Пакет 0xBF/0x25 додає або вилучає ID зі списку. Працює без графіки й кнопки закляття. Закриття вікна зберігає стан, розрив зв’язку очищає. 0 не означає, що здібність недоступна. Потрібна підтримка статусу сервером; це не перевірка всіх бафів. Heal/Recall не є придатними прикладами підтвердження каста. Команда не визначає тривалість, ману, доступність або успіх.

Внутрішні функції: від виклику до результату

InjectionApiUO зіставляє назву з каталогом Full або читає ID. Bridge.IsActiveSpell читає ActiveSpellIconsManager у потоці світу та повертає 1/0, без запитів чи очікування.

1. IsActiveSpell

Перевіряє, чи повідомив сервер про активний стан вибраної здібності/закляття. Допомагає уникати повторної активації. Нічого не вмикає, не кастує й не вибирає ціль.

Integer: 1 — отримано активний стан ID; 0 — такого стану немає. В умовах 1/0 відповідають TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза 1…65535 або відсутність статусу також дають 0.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція IsActiveSpell.

2. ActiveSpellIconsManager

Пакет 0xBF/0x25 додає або вилучає ID зі списку. Працює без графіки й кнопки закляття. Закриття вікна зберігає стан, розрив зв’язку очищає. 0 не означає, що здібність недоступна. Потрібна підтримка статусу сервером; це не перевірка всіх бафів. Heal/Recall не є придатними прикладами підтвердження каста. Команда не визначає тривалість, ману, доступність або успіх.

Integer: 1 — отримано активний стан ID; 0 — такого стану немає. В умовах 1/0 відповідають TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза 1…65535 або відсутність статусу також дають 0.

Код проєкту: src/ClassicUO.Client/Game/Managers/ActiveIconsManager.cs; функція ActiveSpellIconsManager.

Integer: 1 — отримано активний стан ID; 0 — такого стану немає. В умовах 1/0 відповідають TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза 1…65535 або відсутність статусу також дають 0.

Приклади

Стан за ID

# Стан за ID
#
# Перевіряє, чи повідомив сервер про активний стан вибраної здібності/закляття. Допомагає
# уникати повторної активації. Нічого не вмикає, не кастує й не вибирає ціль.
#
# Integer: 1отримано активний стан ID; 0такого стану немає. В умовах 1/0 відповідають
# TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза
# 165535 або відсутність статусу також дають 0.

SUB Main()
    # 402Confidence; active містить 1 або 0, TRUE відповідає 1. Це отриманий статус, не результат
    # спроби.

    VAR active = UO.IsActiveSpellAbility(402)
    IF active = TRUE THEN
        UO.Print("Confidence is active")
    ELSE
        UO.Print("No active Confidence state received")
    END IF
END SUB

Пояснення параметрів і виконання:

  • 402 — Confidence; active містить 1 або 0, TRUE відповідає 1. Це отриманий статус, не результат спроби.

Уникнення повторного каста

# Уникнення повторного каста
#
# Перевіряє, чи повідомив сервер про активний стан вибраної здібності/закляття. Допомагає
# уникати повторної активації. Нічого не вмикає, не кастує й не вибирає ціль.
#
# Integer: 1отримано активний стан ID; 0такого стану немає. В умовах 1/0 відповідають
# TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза
# 165535 або відсутність статусу також дають 0.

SUB Main()
    # Cast("Confidence") має лише один аргумент і надсилається один раз за відсутності статусу.
    # Успіх не гарантовано. Не повторюйте в швидкому циклі: відповідь може запізнюватися.

    IF UO.IsActiveSpellAbility("Confidence") = 0 THEN
        UO.Cast("Confidence")
    END IF
END SUB

Пояснення параметрів і виконання:

  • Cast("Confidence") має лише один аргумент і надсилається один раз за відсутності статусу. Успіх не гарантовано. Не повторюйте в швидкому циклі: відповідь може запізнюватися.

Обмежене очікування статусу

# Обмежене очікування статусу
#
# Перевіряє, чи повідомив сервер про активний стан вибраної здібності/закляття. Допомагає
# уникати повторної активації. Нічого не вмикає, не кастує й не вибирає ціль.
#
# Integer: 1отримано активний стан ID; 0такого стану немає. В умовах 1/0 відповідають
# TRUE/FALSE. Це ознака, а не кількість, тривалість чи результат каста. Невідома назва, ID поза
# 165535 або відсутність статусу також дають 0.

SUB Main()
    # spellназва/ID; expectedTRUE для активного стану, FALSE для неактивного; timeoutMs# мілісекунди. Main чекає до 500 мс, перевіряючи кожні 25 мс, нічого не кастує. Функція повертає
    # TRUE при збігу, інакше FALSE. Пауза чи навантаження можуть подовжити очікування; причину зміни
    # стану не визначено.

    IF WaitAbilityState("Confidence", TRUE, 500) THEN
        UO.Print("Active state received")
    ELSE
        UO.Print("No active state before timeout")
    END IF
END SUB

FUNCTION WaitAbilityState(spell, expected, timeoutMs)
    VAR elapsed = 0
    WHILE elapsed < timeoutMs
        IF (UO.IsActiveSpellAbility(spell) = 1) = expected THEN
            RETURN TRUE
        END IF
        UO.Wait(25)
        elapsed = elapsed + 25
    WEND
    RETURN (UO.IsActiveSpellAbility(spell) = 1) = expected
END FUNCTION

Пояснення параметрів і виконання:

  • spell — назва/ID; expected — TRUE для активного стану, FALSE для неактивного; timeoutMs — мілісекунди. Main чекає до 500 мс, перевіряючи кожні 25 мс, нічого не кастує. Функція повертає TRUE при збігу, інакше FALSE. Пауза чи навантаження можуть подовжити очікування; причину зміни стану не визначено.

Spells / Заклинания

Spells / Заклинания

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Clone this wiki locally