-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Flying ja
ClassicUO / Basic IDE
キャラクターが現在飛行しているかを確認します。通常は Gargoyle の経路開始や離陸要求の前に使います。引数なしなら「自分は今飛んでいるか」です。状態を読むだけで、離陸・着陸・移動は行いません。
UO.Flying() -> Integer
UO.Flying(id:Any) -> Integer
-
id— 任意の mobile serial:数値、16進文字列、self、lasttarget、UO.AddObject の名前。省略時は自分です。物体の ID であり graphic/type や Z ではありません。不明な名前、不在・破棄済み mobile、アイテムは 0 です。
Integer Boolean:1 = TRUE、0 = FALSE。数値または引用符のない論理定数と比較できます。 mobile が IsFlying なら 1、それ以外または不在なら 0。高さ Z だけでは飛行とは判断しません。
論理的な結果です。1 = TRUE、0 = FALSE。VAR result = command(...) で保存した後は IF result = TRUE THEN または IF result = 1 THEN、否定時は IF result = FALSE THEN または IF result = 0 THEN と書けます。TRUE/FALSE に引用符は付けません。一度呼び出して保存してください。再呼び出しは動作を繰り返したり、変更後の状態を読んだりする場合があります。
- 主な用途は Gargoyle の飛行ですが、getter は種族を判定しません。プロトコル 7.0.0.0 以降で mobile のビット 0x04 を読み、旧版では 0 です。屋根、高い Z、翼のアニメーション、種族だけでは飛行状態を証明できません。
- 別の操作 UO.ToggleFly() は状態切替を要求し、有効化を保証しません。飛行中なら着陸要求になります。サーバーが拒否する場合があるため、上限付きで待ち Flying を再確認します。FALSE はデータ不在でも返るので、操作前に Connected を確認します。
- ローカルモデルを読みます。target、status 要求、フラグ変更、パケット送信は行いません。破棄済みの物体は辞書から削除される前でも不在として扱います。
- 結果はそれぞれ独立した読み取りです。Exists と次の呼び出しの間に世界が変化するため、複数の照会は不可分なスナップショットではありません。
実際の C# 内部処理を示します。ReadState は例に完全な定義を含む補助関数で、隠れた組み込み命令ではありません。
runtime 作成時に RegisterCharacterGetterAliases が名前と形式を登録します。引数なしでは bridge.Self、引数ありでは指定 serial を使います。既存の登録は保持します。
mobile が IsFlying なら 1、それ以外または不在なら 0。高さ Z だけでは飛行とは判断しません。
プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 RegisterCharacterGetterAliases.
TryGetObject は数値、16進文字列、保存名を解決します。AddObject 名は呼び出すたびに解決します。graphic/type の検索や対話的な選択は行いません。
任意の mobile serial:数値、16進文字列、self、lasttarget、UO.AddObject の名前。省略時は自分です。物体の ID であり graphic/type や Z ではありません。不明な名前、不在・破棄済み mobile、アイテムは 0 です。
プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 TryGetObject.
Invoke はゲームスレッドで読み取ります。ワーカースレッドはマネージャーによる処理を待ち、スクリプトのキャンセルで待機を中断します。追加の遅延や通信要求はありません。
結果はそれぞれ独立した読み取りです。Exists と次の呼び出しの間に世界が変化するため、複数の照会は不可分なスナップショットではありません。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 Invoke.
キャラクターが現在飛行しているかを確認します。通常は Gargoyle の経路開始や離陸要求の前に使います。引数なしなら「自分は今飛んでいるか」です。状態を読むだけで、離陸・着陸・移動は行いません。
主な用途は Gargoyle の飛行ですが、getter は種族を判定しません。プロトコル 7.0.0.0 以降で mobile のビット 0x04 を読み、旧版では 0 です。屋根、高い Z、翼のアニメーション、種族だけでは飛行状態を証明できません。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 Flying.
ローカルモデルを読みます。target、status 要求、フラグ変更、パケット送信は行いません。破棄済みの物体は辞書から削除される前でも不在として扱います。
# 空の括弧は self。TRUE = 1、FALSE = 0。IF UO.Flying() THEN と書けます。切替は行いません。
SUB Main()
# Read once; no toggle request is sent.
VAR active = UO.Flying()
IF active = TRUE THEN
UO.Print("Flying mode active")
ELSE
UO.Print("Ground mode or character data unavailable")
END IF
END SUBパラメーターと実行の説明:
- 空の括弧は self。TRUE = 1、FALSE = 0。IF UO.Flying() THEN と書けます。切替は行いません。
# ReadState(obj) は serial/別名を受け状態を返します。完全な関数は最初に存在を確認し、他のキャラクターも読み込み済みデータを使います。
SUB Main()
# Previously selected mobile; no target cursor is opened.
VAR target = ASC(UO.GetSerial("lasttarget"), 0)
IF target <> 0 AndAlso UO.Exists(target) THEN
IF ReadState(target) THEN
UO.AddObject("flying_mobile", target)
END IF
END IF
END SUB
FUNCTION ReadState(obj)
IF NOT UO.Exists(obj) THEN
RETURN FALSE
END IF
RETURN UO.Flying(obj)
END FUNCTIONパラメーターと実行の説明:
- ReadState(obj) は serial/別名を受け状態を返します。完全な関数は最初に存在を確認し、他のキャラクターも読み込み済みデータを使います。
# 飛行を許可するサーバー上の自分の Gargoyle 用です。EnsureFlight(timeoutMs) は飛行を観測すれば 1/TRUE、そうでなければ 0/FALSE。上限 2000 ms、50 ms ごとに確認。既に飛行中なら要求せず、それ以外でも一度だけです。停止や実行遅延で実時間は長くなり得ます。
SUB Main()
# timeoutMs = 2000; poll interval = 50 ms; at most one toggle request.
IF EnsureFlight(2000) THEN
UO.Print("Flight confirmed; ready for the next stage")
ELSE
UO.Print("Flight not confirmed; route was not started")
END IF
END SUB
FUNCTION EnsureFlight(timeoutMs)
IF NOT UO.Connected() OrElse UO.Dead() THEN
RETURN FALSE
END IF
IF UO.Flying() THEN
RETURN TRUE
END IF
UO.ToggleFly()
VAR waited = 0
WHILE waited < timeoutMs
IF NOT UO.Connected() THEN
RETURN FALSE
END IF
IF UO.Flying() THEN
RETURN TRUE
END IF
WAIT(50)
waited += 50
WEND
RETURN UO.Flying()
END FUNCTIONパラメーターと実行の説明:
- 飛行を許可するサーバー上の自分の Gargoyle 用です。EnsureFlight(timeoutMs) は飛行を観測すれば 1/TRUE、そうでなければ 0/FALSE。上限 2000 ms、50 ms ごとに確認。既に飛行中なら要求せず、それ以外でも一度だけです。停止や実行遅延で実時間は長くなり得ます。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь