Skip to content

API UO PetsMax ja

Codex edited this page Sep 22, 2026 · 1 revision

UO.PetsMax

ClassicUO / Basic IDE

Home · Все команды · Каталоги

次にテイム・召喚する生物を制御できる空きがあるか確認します。Followers は使用中の制御スロット、FollowersMax は総上限です。周囲の動物数や移動コマンド Follow とは異なります。

現在のプレイヤーのステータス値を読み取ります:ペット制御スロット上限。

正確な構文

UO.PetsMax() -> Integer

パラメーター

引数はありません。

戻り値

Integer — ペット制御スロット上限、モデルの範囲は 0..255。0 は実値、未取得データ、Player 不在/破棄の可能性があります。数量であり Boolean、ID、type ではありません。1 は1単位で、成功の意味ではありません。物体を列挙せず、配列も返しません。

動作

  • 5 枠中 3 枠使用なら空きは 2 枠です。4 は 1 枠の生物 4 体の場合も、4 枠の生物 1 体の場合もあります。2 枠必要なら maximum - current >= 2 が必要です。必要枠と上限はサーバー次第で、常に 5 としないでください。
  • ゼロだけでペットの死亡や紛失を判断できません。状態が未更新の場合があります。増加も特定の生物のテイム成功を証明しないため、生物とサーバーメッセージを確認します。厩舎の預かり枠ではありません。
  • 引数はありません。表示された正確なシグネチャを使用します。
  • ゲームスレッドで Player.FollowersMax を読みます。現在の Player が存在しないか破棄済みなら 0。装備の検索、ボーナス計算、ステータス要求、更新待ちは行いません。存在する幽霊と破棄済み Player は別です。
  • PetsMax/FollowersMax は status type >= 3 のサーバーが許可した総スロット上限を読みます。空きスロット数ではありません。使用量が上限を超える場合もあります。空き表示は maximum - current を求め、負なら 0 にします。解放、調教、召喚は行いません。
  • CharacterStatus は固定部分を検証してから更新します。Weight は自身の拡張ステータス、スロットは type 3、Luck は type 4、サーバー WeightMax は type 5 以降です。省略欄のない簡易/旧式パケットでは以前の値を維持します。新規 Player はゼロから始まり、呼び出しは最新受信の証明になりません。
  • RegisterCharacterGetterAliases は不足する引数なし関数と組み込み名を登録します。既存の互換分岐も同じ欄を読みます。名前の大小文字は不問で、括弧なしの組み込み名は変数で隠されなければ毎回読み取ります。
  • 呼び出しごとにローカル値を再読します。変数はスナップショットで、別々の呼び出しには異なる更新が見える場合があります。非ゼロは接続確認ではなく、0 は実値とデータなしの両方を表します。

内部関数:呼び出しから結果まで

ステータスキャッシュを読むネイティブ処理です。例の CanCarry、LuckAtLeast、CanAddFollower は完全に定義されたユーザー BASIC 関数で、隠れたネイティブ操作ではありません。持ち物やペットを変更しません。

1. RegisterCharacterGetterAliases

RegisterCharacterGetterAliases は不足する引数なし関数と組み込み名を登録します。既存の互換分岐も同じ欄を読みます。名前の大小文字は不問で、括弧なしの組み込み名は変数で隠されなければ毎回読み取ります。

PetsMax FollowersMax GetPetsMax GetFollowersMax.

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 RegisterCharacterGetterAliases.

2. Invoke

ゲームスレッドで Player.FollowersMax を読みます。現在の Player が存在しないか破棄済みなら 0。装備の検索、ボーナス計算、ステータス要求、更新待ちは行いません。存在する幽霊と破棄済み Player は別です。

Invoke はゲームスレッドで読み、待機はスクリプト中止に対応します。status 要求、ターゲット、パケット送信、値の変更、組み込み待機はありません。

プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 Invoke.

3. CharacterStatus

CharacterStatus は固定部分を検証してから更新します。Weight は自身の拡張ステータス、スロットは type 3、Luck は type 4、サーバー WeightMax は type 5 以降です。省略欄のない簡易/旧式パケットでは以前の値を維持します。新規 Player はゼロから始まり、呼び出しは最新受信の証明になりません。

PetsMax/FollowersMax は status type >= 3 のサーバーが許可した総スロット上限を読みます。空きスロット数ではありません。使用量が上限を超える場合もあります。空き表示は maximum - current を求め、負なら 0 にします。解放、調教、召喚は行いません。

プロジェクトのソース: src/ClassicUO.Client/Network/PacketHandlers.cs; 関数 CharacterStatus.

4. Clear

World.Clear は Player を除去します。プレイヤーとデータが戻るまでは 0。再接続後の条件達成を保存済みの値だけで判断しません。

Integer — ペット制御スロット上限、モデルの範囲は 0..255。0 は実値、未取得データ、Player 不在/破棄の可能性があります。数量であり Boolean、ID、type ではありません。1 は1単位で、成功の意味ではありません。物体を列挙せず、配列も返しません。

プロジェクトのソース: src/ClassicUO.Client/Game/World.cs; 関数 Clear.

呼び出しごとにローカル値を再読します。変数はスナップショットで、別々の呼び出しには異なる更新が見える場合があります。非ゼロは接続確認ではなく、0 は実値とデータなしの両方を表します。

使用例

空きスロットを計算する

# 空きスロットを計算する
#
# 次にテイム召喚する生物を制御できる空きがあるか確認しますFollowers は使用中の制御スロットFollowersMax は総上限です周囲の動物数や移動コマンド Follow
# とは異なります#
# 現在のプレイヤーのステータス値を読み取りますペット制御スロット上限#
# Integerペット制御スロット上限モデルの範囲は 0..2550 は実値未取得データPlayer 不在破棄の可能性があります数量であり BooleanIDtype
# ではありません1 は1単位で成功の意味ではありません物体を列挙せず配列も返しませんSUB Main()
    # current は使用枠maximum は上限freeSlots は差です上限不明や矛盾する値では終了しますキャッシュを読み更新要求は送りませんVAR current = UO.Followers()
    VAR maximum = UO.PetsMax()
    IF UO.Self() = 0 OR maximum <= 0 OR current > maximum THEN
        UO.Print("Follower status is unavailable or inconsistent")
        RETURN
    END IF
    VAR freeSlots = maximum - current
    UO.Print("Control slots: " + CStr(current) + "/" + CStr(maximum))
    UO.Print("Free slots: " + CStr(freeSlots))
END SUB

パラメーターと実行の説明:

  • current は使用枠、maximum は上限、freeSlots は差です。上限不明や矛盾する値では終了します。キャッシュを読み、更新要求は送りません。

Animal Taming の前に確認する

# Animal Taming の前に確認する
#
# 次にテイム召喚する生物を制御できる空きがあるか確認しますFollowers は使用中の制御スロットFollowersMax は総上限です周囲の動物数や移動コマンド Follow
# とは異なります#
# 現在のプレイヤーのステータス値を読み取りますペット制御スロット上限#
# Integerペット制御スロット上限モデルの範囲は 0..2550 は実値未取得データPlayer 不在破棄の可能性があります数量であり BooleanIDtype
# ではありません1 は1単位で成功の意味ではありません物体を列挙せず配列も返しませんSUB Main()
    # 先に動物を選び lasttarget  ID を保存しますrequiredSlots=2
    # は例なので実際の必要枠に変更します空き不足ならターゲットもスキルも開始しませんターゲットを準備してから引数が一つの UseSkill("Animal Taming")
    # を実行します成功はスキル距離サーバーにも依存しますVAR requiredSlots = 2
    VAR current = UO.Followers()
    VAR maximum = UO.PetsMax()
    IF UO.Self() = 0 OR maximum <= 0 OR maximum - current < requiredSlots THEN
        UO.Print("Not enough known control slots")
        RETURN
    END IF
    VAR animal = UO.LastTarget()
    IF animal = 0 THEN
        UO.Print("Select the animal first")
        RETURN
    END IF
    UO.WaitTargetObject(animal)
    UO.UseSkill("Animal Taming")
END SUB

パラメーターと実行の説明:

  • 先に動物を選び lasttarget に ID を保存します。requiredSlots=2 は例なので実際の必要枠に変更します。空き不足ならターゲットもスキルも開始しません。ターゲットを準備してから、引数が一つの UseSkill("Animal Taming") を実行します。成功はスキル・距離・サーバーにも依存します。

異なる必要枠でチェックを再利用する

# 異なる必要枠でチェックを再利用する
#
# 次にテイム召喚する生物を制御できる空きがあるか確認しますFollowers は使用中の制御スロットFollowersMax は総上限です周囲の動物数や移動コマンド Follow
# とは異なります#
# 現在のプレイヤーのステータス値を読み取りますペット制御スロット上限#
# Integerペット制御スロット上限モデルの範囲は 0..2550 は実値未取得データPlayer 不在破棄の可能性があります数量であり BooleanIDtype
# ではありません1 は1単位で成功の意味ではありません物体を列挙せず配列も返しませんSUB Main()
    # CanAddFollower は例で定義した BASIC 補助関数ですextraSlots は追加の必要枠で type/ID ではありませんキャッシュに基づき 1/True または
    # 0/False を返しテイムや召喚は行いません行動直前に再確認してくださいIF CanAddFollower(2) THEN
        UO.Print("Capacity check passed; verify the creature cost before acting")
    ELSE
        UO.Print("Insufficient capacity or unavailable status")
    END IF
END SUB

SUB CanAddFollower(extraSlots)
    IF extraSlots < 0 OR UO.Self() = 0 THEN
        RETURN FALSE
    END IF
    VAR current = UO.PetsCurrent()
    VAR maximum = UO.PetsMax()
    IF maximum <= 0 THEN
        RETURN FALSE
    END IF
    RETURN extraSlots <= maximum - current
END SUB

パラメーターと実行の説明:

  • CanAddFollower は例で定義した BASIC 補助関数です。extraSlots は追加の必要枠で type/ID ではありません。キャッシュに基づき 1/True または 0/False を返し、テイムや召喚は行いません。行動直前に再確認してください。

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

Clone this wiki locally