-
Notifications
You must be signed in to change notification settings - Fork 0
API UO IsActiveSpellAbility ja
ClassicUO / Basic IDE
指定した呪文・能力について、サーバーから有効状態が通知されたか確認します。不要な再発動を避けるために使います。発動・詠唱・対象選択は行いません。
UO.IsActiveSpellAbility(SpellName:Any) -> Any
-
SpellName— 必須引数は1つ。カタログの英語名または整数の呪文IDです。"Confidence"と402は同じBushido呪文。大文字小文字は区別せず、下線は空白に変換し、数値文字列も解釈します。キャラクターserial、アイテムgraphic、スキル番号ではありません。
Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
- サーバーパケット0xBF/0x25でIDを追加・削除します。画面や呪文ボタンがなくても動作し、画面を閉じても保持、切断時に消去します。0は詠唱不能の証明ではありません。シャードが通知する必要があり、全バフ共通の確認ではありません。Heal/Recallの成功判定には使えず、残り時間・マナ・利用可否・成功も判定しません。
InjectionApiUOがFullカタログで名前を解決するかIDを読み、Bridge.IsActiveSpellがワールドスレッドのActiveSpellIconsManagerから1/0を返します。問い合わせや待機は行いません。
指定した呪文・能力について、サーバーから有効状態が通知されたか確認します。不要な再発動を避けるために使います。発動・詠唱・対象選択は行いません。
Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 IsActiveSpell.
サーバーパケット0xBF/0x25でIDを追加・削除します。画面や呪文ボタンがなくても動作し、画面を閉じても保持、切断時に消去します。0は詠唱不能の証明ではありません。シャードが通知する必要があり、全バフ共通の確認ではありません。Heal/Recallの成功判定には使えず、残り時間・マナ・利用可否・成功も判定しません。
Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ActiveIconsManager.cs; 関数 ActiveSpellIconsManager.
Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
# IDで確認
#
# 指定した呪文・能力について、サーバーから有効状態が通知されたか確認します。不要な再発動を避けるために使います。発動・詠唱・対象選択は行いません。
#
# Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
SUB Main()
# 402はConfidence。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:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
SUB Main()
# Cast("Confidence")の引数は名前だけ。有効状態がないと1回要求を送り、成功は保証しません。返答が遅れるので高速ループで繰り返さないでください。
IF UO.IsActiveSpellAbility("Confidence") = 0 THEN
UO.Cast("Confidence")
END IF
END SUBパラメーターと実行の説明:
- Cast("Confidence")の引数は名前だけ。有効状態がないと1回要求を送り、成功は保証しません。返答が遅れるので高速ループで繰り返さないでください。
# 制限付きの状態待機
#
# 指定した呪文・能力について、サーバーから有効状態が通知されたか確認します。不要な再発動を避けるために使います。発動・詠唱・対象選択は行いません。
#
# Integer:受信した有効IDの集合に含まれると1、含まれないと0。条件では1/0またはTRUE/FALSEと比較できます。個数・持続時間・最後の詠唱結果ではありません。不明な名前、1…65535外のID、未受信状態も0です。
SUB Main()
# spellは名前/ID、expectedは有効TRUE・無効FALSE、timeoutMsはミリ秒。Mainは最大500ms、25ms間隔で確認し、詠唱しません。一致で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は最大500ms、25ms間隔で確認し、詠唱しません。一致でTRUE、そうでなければFALSE。停止や負荷で実時間は延びることがあり、変更原因は分かりません。
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь