-
Notifications
You must be signed in to change notification settings - Fork 0
API UO IsActiveSpellAbility de
ClassicUO / Basic IDE
Prüft, ob der Server den gewählten Zauber bzw. die Fähigkeit als aktiv gemeldet hat. Hilft, erneutes Aktivieren zu vermeiden. Aktiviert nichts, zaubert nicht und wählt kein Ziel.
UO.IsActiveSpellAbility(SpellName:Any) -> Any
-
SpellName— Genau ein Pflichtargument: englischer Katalogname oder ganzzahlige Zauber-ID. "Confidence" und 402 stehen für denselben Bushido-Zauber. Groß-/Kleinschreibung ist egal, Unterstriche werden Leerzeichen. Zahlenzeichenfolgen sind erlaubt. Keine Charakter-Serial, Item-Grafik oder Fertigkeitsnummer.
Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen, IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
- Das Serverpaket 0xBF/0x25 fügt IDs hinzu oder entfernt sie. Funktioniert ohne Grafik und Zauberschaltfläche. Fensterschließen behält den Zustand; Verbindungsabbruch löscht ihn. 0 beweist keine fehlende Zauberfähigkeit. Der Shard muss diesen Status senden; keine allgemeine Buff-Abfrage. Heal/Recall bestätigen damit keinen Zaubererfolg. Dauer, Mana, Verfügbarkeit und Erfolg werden nicht ermittelt.
InjectionApiUO löst Namen über den Full-Katalog auf oder liest die ID. Bridge.IsActiveSpell liest ActiveSpellIconsManager im Welt-Thread und liefert 1/0, ohne Anfrage oder Warten.
Prüft, ob der Server den gewählten Zauber bzw. die Fähigkeit als aktiv gemeldet hat. Hilft, erneutes Aktivieren zu vermeiden. Aktiviert nichts, zaubert nicht und wählt kein Ziel.
Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen, IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
Projektquelle: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; Funktion IsActiveSpell.
Das Serverpaket 0xBF/0x25 fügt IDs hinzu oder entfernt sie. Funktioniert ohne Grafik und Zauberschaltfläche. Fensterschließen behält den Zustand; Verbindungsabbruch löscht ihn. 0 beweist keine fehlende Zauberfähigkeit. Der Shard muss diesen Status senden; keine allgemeine Buff-Abfrage. Heal/Recall bestätigen damit keinen Zaubererfolg. Dauer, Mana, Verfügbarkeit und Erfolg werden nicht ermittelt.
Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen, IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
Projektquelle: src/ClassicUO.Client/Game/Managers/ActiveIconsManager.cs; Funktion ActiveSpellIconsManager.
Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen, IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
# ID prüfen
#
# Prüft, ob der Server den gewählten Zauber bzw. die Fähigkeit als aktiv gemeldet hat. Hilft,
# erneutes Aktivieren zu vermeiden. Aktiviert nichts, zaubert nicht und wählt kein Ziel.
#
# Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE
# verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen,
# IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
SUB Main()
# 402 ist Confidence. active ist 1/0; TRUE entspricht hier 1. Gemeldeter Status, kein
# Zauberergebnis.
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 SUBErläuterung der Parameter und Ausführung:
- 402 ist Confidence. active ist 1/0; TRUE entspricht hier 1. Gemeldeter Status, kein Zauberergebnis.
# Doppelte Aktivierung vermeiden
#
# Prüft, ob der Server den gewählten Zauber bzw. die Fähigkeit als aktiv gemeldet hat. Hilft,
# erneutes Aktivieren zu vermeiden. Aktiviert nichts, zaubert nicht und wählt kein Ziel.
#
# Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE
# verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen,
# IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
SUB Main()
# Cast("Confidence") nimmt nur den Namen und sendet einmal, wenn der aktive Status fehlt. Erfolg
# ist nicht garantiert. Keine schnelle Wiederholungsschleife: Antworten können verzögert sein.
IF UO.IsActiveSpellAbility("Confidence") = 0 THEN
UO.Cast("Confidence")
END IF
END SUBErläuterung der Parameter und Ausführung:
- Cast("Confidence") nimmt nur den Namen und sendet einmal, wenn der aktive Status fehlt. Erfolg ist nicht garantiert. Keine schnelle Wiederholungsschleife: Antworten können verzögert sein.
# Begrenzt auf Status warten
#
# Prüft, ob der Server den gewählten Zauber bzw. die Fähigkeit als aktiv gemeldet hat. Hilft,
# erneutes Aktivieren zu vermeiden. Aktiviert nichts, zaubert nicht und wählt kein Ziel.
#
# Integer: 1 bei gemeldetem aktivem Zustand, sonst 0. Bedingungen dürfen 1/0 oder TRUE/FALSE
# verwenden. Kein Zähler, keine Dauer und kein Ergebnis des letzten Zaubers. Unbekannte Namen,
# IDs außerhalb 1…65535 und fehlende Meldungen liefern ebenfalls 0.
SUB Main()
# spell: Name/ID; expected: TRUE aktiv, FALSE inaktiv; timeoutMs: Millisekunden. Main prüft bis
# 500 ms alle 25 ms und zaubert nicht. TRUE bei Übereinstimmung, sonst FALSE. Pause/Last können
# die reale Dauer verlängern; die Ursache einer Änderung bleibt unbekannt.
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 FUNCTIONErläuterung der Parameter und Ausführung:
- spell: Name/ID; expected: TRUE aktiv, FALSE inaktiv; timeoutMs: Millisekunden. Main prüft bis 500 ms alle 25 ms und zaubert nicht. TRUE bei Übereinstimmung, sonst FALSE. Pause/Last können die reale Dauer verlängern; die Ursache einer Änderung bleibt unbekannt.
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь