Skip to content

API UO PetsCurrent es

Codex edited this page Sep 22, 2026 · 1 revision

UO.PetsCurrent

ClassicUO / Basic IDE

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

Permite comprobar si hay capacidad para otra criatura domada o invocada. Followers indica los espacios de control ocupados; FollowersMax, el límite total. No cuenta animales cercanos ni es la orden de movimiento Follow.

Lee el contador de status del jugador actual: espacios de control ocupados.

Sintaxis exacta

UO.PetsCurrent() -> Integer

Parámetros

Sin parámetros.

Devuelve

Integer — espacios de control ocupados, 0..255 en el modelo. 0 puede ser real, desconocido o Player ausente/destruido. Cantidad, no Boolean, ID ni type: 1 significa una unidad, no éxito. No enumera objetos ni devuelve un array.

Comportamiento

  • Con 3 espacios ocupados de 5 quedan 2. 4 puede representar cuatro criaturas de un espacio o una de cuatro. Para un coste de 2 hace falta maximum - current >= 2. El servidor determina costes y límite; no suponga siempre 5.
  • Cero no demuestra pérdida o muerte: el estado puede faltar o estar desactualizado. Un aumento no identifica la criatura domada. Compruebe la criatura y los mensajes del servidor. Los espacios del establo son distintos.
  • No admite argumentos. Usar las firmas mostradas.
  • Lee Player.Followers en el hilo del juego si Player existe y no está destruido; de lo contrario 0. Sin búsqueda de equipo, cálculo de bonos, petición status ni espera. Un fantasma presente no es un Player destruido.
  • PetsCurrent/Followers lee espacios de control ocupados del status propio type >= 3. Una mascota puede ocupar varios; el servidor fija reglas para criaturas invocadas/domadas. No cuenta mobiles visibles, no lista ID ni cuenta animales cercanos.
  • CharacterStatus valida el cuerpo fijo antes de actualizar. Weight viene del status propio extendido, espacios desde type 3, Luck desde type 4 y WeightMax del servidor desde type 5. Paquetes compactos/antiguos sin contador opcional conservan la caché. Player nuevo empieza en cero; la consulta no demuestra un status reciente.
  • RegisterCharacterGetterAliases añade funciones sin argumentos e intrínsecos ausentes. Las ramas existentes leen el mismo campo. Nombres sin distinción de mayúsculas; intrínsecos sin paréntesis se releen salvo variables que los oculten.
  • Cada llamada vuelve a leer datos locales. Las variables guardan instantáneas; llamadas separadas pueden ver distintas actualizaciones. Un valor no cero no prueba conexión; cero puede ser un valor o datos ausentes.

Funciones internas: de la llamada al resultado

Etapas nativas de lectura en caché. CanCarry, LuckAtLeast o CanAddFollower es una función BASIC de usuario completa en el ejemplo, no una acción nativa oculta. No modifica inventario ni seguidores.

1. RegisterCharacterGetterAliases

RegisterCharacterGetterAliases añade funciones sin argumentos e intrínsecos ausentes. Las ramas existentes leen el mismo campo. Nombres sin distinción de mayúsculas; intrínsecos sin paréntesis se releen salvo variables que los oculten.

PetsCurrent Followers GetPetsCurrent GetFollowers.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; función RegisterCharacterGetterAliases.

2. Invoke

Lee Player.Followers en el hilo del juego si Player existe y no está destruido; de lo contrario 0. Sin búsqueda de equipo, cálculo de bonos, petición status ni espera. Un fantasma presente no es un Player destruido.

Invoke lee en el hilo del juego; la espera respeta la cancelación del script. Sin paquete, solicitud de status, target, modificación ni retraso incorporado.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función Invoke.

3. CharacterStatus

CharacterStatus valida el cuerpo fijo antes de actualizar. Weight viene del status propio extendido, espacios desde type 3, Luck desde type 4 y WeightMax del servidor desde type 5. Paquetes compactos/antiguos sin contador opcional conservan la caché. Player nuevo empieza en cero; la consulta no demuestra un status reciente.

PetsCurrent/Followers lee espacios de control ocupados del status propio type >= 3. Una mascota puede ocupar varios; el servidor fija reglas para criaturas invocadas/domadas. No cuenta mobiles visibles, no lista ID ni cuenta animales cercanos.

Código del proyecto: src/ClassicUO.Client/Network/PacketHandlers.cs; función CharacterStatus.

4. Clear

World.Clear elimina Player. Las consultas dan 0 hasta que vuelvan el jugador y sus datos. Un valor guardado no prueba el requisito tras reconectar.

Integer — espacios de control ocupados, 0..255 en el modelo. 0 puede ser real, desconocido o Player ausente/destruido. Cantidad, no Boolean, ID ni type: 1 significa una unidad, no éxito. No enumera objetos ni devuelve un array.

Código del proyecto: src/ClassicUO.Client/Game/World.cs; función Clear.

Cada llamada vuelve a leer datos locales. Las variables guardan instantáneas; llamadas separadas pueden ver distintas actualizaciones. Un valor no cero no prueba conexión; cero puede ser un valor o datos ausentes.

Ejemplos

Calcular la capacidad libre

# Calcular la capacidad libre
#
# Permite comprobar si hay capacidad para otra criatura domada o invocada. Followers indica los
# espacios de control ocupados; FollowersMax, el límite total. No cuenta animales cercanos ni es
# la orden de movimiento Follow.
#
# Lee el contador de status del jugador actual: espacios de control ocupados.
#
# Integerespacios de control ocupados, 0..255 en el modelo. 0 puede ser real, desconocido o
# Player ausente/destruido. Cantidad, no Boolean, ID ni type: 1 significa una unidad, no éxito.
# No enumera objetos ni devuelve un array.

SUB Main()
    # current es la ocupación, maximum el límite y freeSlots la diferencia. Un límite ausente o
    # datos incoherentes detienen el ejemplo. Lee el estado guardado sin pedir actualización.

    VAR current = UO.PetsCurrent()
    VAR maximum = UO.FollowersMax()
    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

Explicación de los parámetros y la ejecución:

  • current es la ocupación, maximum el límite y freeSlots la diferencia. Un límite ausente o datos incoherentes detienen el ejemplo. Lee el estado guardado sin pedir actualización.

Comprobar antes de Animal Taming

# Comprobar antes de Animal Taming
#
# Permite comprobar si hay capacidad para otra criatura domada o invocada. Followers indica los
# espacios de control ocupados; FollowersMax, el límite total. No cuenta animales cercanos ni es
# la orden de movimiento Follow.
#
# Lee el contador de status del jugador actual: espacios de control ocupados.
#
# Integerespacios de control ocupados, 0..255 en el modelo. 0 puede ser real, desconocido o
# Player ausente/destruido. Cantidad, no Boolean, ID ni type: 1 significa una unidad, no éxito.
# No enumera objetos ni devuelve un array.

SUB Main()
    # Seleccione primero el animal para lasttarget. Cambie requiredSlots=2 por su coste en el
    # servidor. Sin capacidad no se prepara objetivo ni se inicia habilidad. El objetivo se prepara
    # antes de UseSkill("Animal Taming"), con un solo argumento. Habilidad, distancia y servidor
    # determinan el éxito.

    VAR requiredSlots = 2
    VAR current = UO.PetsCurrent()
    VAR maximum = UO.FollowersMax()
    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

Explicación de los parámetros y la ejecución:

  • Seleccione primero el animal para lasttarget. Cambie requiredSlots=2 por su coste en el servidor. Sin capacidad no se prepara objetivo ni se inicia habilidad. El objetivo se prepara antes de UseSkill("Animal Taming"), con un solo argumento. Habilidad, distancia y servidor determinan el éxito.

Reutilizar la comprobación con otros costes

# Reutilizar la comprobación con otros costes
#
# Permite comprobar si hay capacidad para otra criatura domada o invocada. Followers indica los
# espacios de control ocupados; FollowersMax, el límite total. No cuenta animales cercanos ni es
# la orden de movimiento Follow.
#
# Lee el contador de status del jugador actual: espacios de control ocupados.
#
# Integerespacios de control ocupados, 0..255 en el modelo. 0 puede ser real, desconocido o
# Player ausente/destruido. Cantidad, no Boolean, ID ni type: 1 significa una unidad, no éxito.
# No enumera objetos ni devuelve un array.

SUB Main()
    # CanAddFollower es la función BASIC definida en el ejemplo. extraSlots es el coste adicional,
    # no type/ID. Devuelve 1/True o 0/False según el estado guardado; no doma ni invoca. Vuelva a
    # comprobar justo antes de actuar.

    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

Explicación de los parámetros y la ejecución:

  • CanAddFollower es la función BASIC definida en el ejemplo. extraSlots es el coste adicional, no type/ID. Devuelve 1/True o 0/False según el estado guardado; no doma ni invoca. Vuelva a comprobar justo antes de actuar.

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

Clone this wiki locally