-
Notifications
You must be signed in to change notification settings - Fork 0
API UO PetsMax ja
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 関数で、隠れたネイティブ操作ではありません。持ち物やペットを変更しません。
RegisterCharacterGetterAliases は不足する引数なし関数と組み込み名を登録します。既存の互換分岐も同じ欄を読みます。名前の大小文字は不問で、括弧なしの組み込み名は変数で隠されなければ毎回読み取ります。
PetsMax FollowersMax GetPetsMax GetFollowersMax.
プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 関数 RegisterCharacterGetterAliases.
ゲームスレッドで Player.FollowersMax を読みます。現在の Player が存在しないか破棄済みなら 0。装備の検索、ボーナス計算、ステータス要求、更新待ちは行いません。存在する幽霊と破棄済み Player は別です。
Invoke はゲームスレッドで読み、待機はスクリプト中止に対応します。status 要求、ターゲット、パケット送信、値の変更、組み込み待機はありません。
プロジェクトのソース: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 関数 Invoke.
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.
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..255。0 は実値、未取得データ、Player 不在/破棄の可能性があります。数量であり Boolean、ID、type
# ではありません。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 の前に確認する
#
# 次にテイム・召喚する生物を制御できる空きがあるか確認します。Followers は使用中の制御スロット、FollowersMax は総上限です。周囲の動物数や移動コマンド Follow
# とは異なります。
#
# 現在のプレイヤーのステータス値を読み取ります:ペット制御スロット上限。
#
# Integer — ペット制御スロット上限、モデルの範囲は 0..255。0 は実値、未取得データ、Player 不在/破棄の可能性があります。数量であり Boolean、ID、type
# ではありません。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..255。0 は実値、未取得データ、Player 不在/破棄の可能性があります。数量であり Boolean、ID、type
# ではありません。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 · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь