Skip to content

API UO IsActiveSpellAbility es

Codex edited this page Sep 23, 2026 · 1 revision

UO.IsActiveSpellAbility

ClassicUO / Basic IDE

Home · API · Commands

Comprueba si el servidor notificó como activo el hechizo o habilidad. Sirve para evitar reactivarlo innecesariamente. No activa nada, no lanza hechizos ni elige objetivos.

Sintaxis exacta

UO.IsActiveSpellAbility(SpellName:Any) -> Any

Parámetros

  • SpellName — Un parámetro obligatorio: nombre inglés del catálogo o ID entero del hechizo. "Confidence" y 402 son el mismo hechizo Bushido. No distingue mayúsculas; convierte guiones bajos en espacios y acepta cadenas numéricas. No es serial, gráfico de objeto ni número de habilidad.

Devuelve

Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre desconocido, ID fuera de 1…65535 o estado ausente también devuelven 0.

Comportamiento

  • El paquete 0xBF/0x25 añade o elimina el ID. Funciona sin gráficos ni botón de hechizo. Cerrar la ventana conserva el estado; desconectar lo borra. 0 no prueba que el personaje no pueda lanzar. El shard debe enviar este estado; no es una consulta universal de buffs. Heal/Recall no prueban así un lanzamiento exitoso. No mide duración, maná, disponibilidad ni éxito.

Funciones internas: de la llamada al resultado

InjectionApiUO resuelve el nombre mediante el catálogo Full o lee el ID. Bridge.IsActiveSpell consulta ActiveSpellIconsManager en el hilo del mundo y devuelve 1/0 sin peticiones ni esperas.

1. IsActiveSpell

Comprueba si el servidor notificó como activo el hechizo o habilidad. Sirve para evitar reactivarlo innecesariamente. No activa nada, no lanza hechizos ni elige objetivos.

Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre desconocido, ID fuera de 1…65535 o estado ausente también devuelven 0.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función IsActiveSpell.

2. ActiveSpellIconsManager

El paquete 0xBF/0x25 añade o elimina el ID. Funciona sin gráficos ni botón de hechizo. Cerrar la ventana conserva el estado; desconectar lo borra. 0 no prueba que el personaje no pueda lanzar. El shard debe enviar este estado; no es una consulta universal de buffs. Heal/Recall no prueban así un lanzamiento exitoso. No mide duración, maná, disponibilidad ni éxito.

Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre desconocido, ID fuera de 1…65535 o estado ausente también devuelven 0.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ActiveIconsManager.cs; función ActiveSpellIconsManager.

Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre desconocido, ID fuera de 1…65535 o estado ausente también devuelven 0.

Ejemplos

Consultar por ID

# Consultar por ID
#
# Comprueba si el servidor notificó como activo el hechizo o habilidad. Sirve para evitar
# reactivarlo innecesariamente. No activa nada, no lanza hechizos ni elige objetivos.
#
# Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite
# 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre
# desconocido, ID fuera de 165535 o estado ausente también devuelven 0.

SUB Main()
    # 402 es Confidence. active contiene 1/0; TRUE equivale aquí a 1. Describe estado recibido, no
    # el resultado de un intento.

    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

Explicación de los parámetros y la ejecución:

  • 402 es Confidence. active contiene 1/0; TRUE equivale aquí a 1. Describe estado recibido, no el resultado de un intento.

Evitar una activación repetida

# Evitar una activación repetida
#
# Comprueba si el servidor notificó como activo el hechizo o habilidad. Sirve para evitar
# reactivarlo innecesariamente. No activa nada, no lanza hechizos ni elige objetivos.
#
# Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite
# 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre
# desconocido, ID fuera de 165535 o estado ausente también devuelven 0.

SUB Main()
    # Cast("Confidence") solo recibe el nombre y envía una petición si falta el estado activo. No
    # garantiza éxito. No repetir en un bucle rápido: la respuesta puede retrasarse.

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

Explicación de los parámetros y la ejecución:

  • Cast("Confidence") solo recibe el nombre y envía una petición si falta el estado activo. No garantiza éxito. No repetir en un bucle rápido: la respuesta puede retrasarse.

Esperar con límite

# Esperar con límite
#
# Comprueba si el servidor notificó como activo el hechizo o habilidad. Sirve para evitar
# reactivarlo innecesariamente. No activa nada, no lanza hechizos ni elige objetivos.
#
# Integer: 1 si el ID está en el conjunto activo recibido; 0 si falta. En condiciones se admite
# 1/0 o TRUE/FALSE. No es cantidad, duración ni resultado del último lanzamiento. Nombre
# desconocido, ID fuera de 165535 o estado ausente también devuelven 0.

SUB Main()
    # spell: nombre/ID; expected: TRUE activo, FALSE inactivo; timeoutMs: milisegundos. Main espera
    # hasta 500 ms con consultas cada 25 ms y no lanza nada. TRUE al coincidir, si no FALSE.
    # Pausas/carga pueden alargar el tiempo real; no identifica la causa del cambio.

    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

Explicación de los parámetros y la ejecución:

  • spell: nombre/ID; expected: TRUE activo, FALSE inactivo; timeoutMs: milisegundos. Main espera hasta 500 ms con consultas cada 25 ms y no lanza nada. TRUE al coincidir, si no FALSE. Pausas/carga pueden alargar el tiempo real; no identifica la causa del cambio.

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

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

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

Clone this wiki locally