Skip to content

API UO PetsMax it

Codex edited this page Sep 22, 2026 · 1 revision

UO.PetsMax

ClassicUO / Basic IDE

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

Serve a controllare se c’è spazio per un’altra creatura addomesticata o evocata. Followers indica gli slot di controllo occupati, FollowersMax il limite totale. Non conta gli animali vicini e non è il comando di movimento Follow.

Legge il contatore status del giocatore attuale: massimo degli slot di controllo.

Sintassi esatta

UO.PetsMax() -> Integer

Parametri

Nessun parametro.

Restituisce

Integer — massimo degli slot di controllo, 0..255 nel modello. 0 può essere reale, sconosciuto o Player assente/distrutto. Quantità, non Boolean, ID o type: 1 significa un’unità, non successo. Nessuna ricerca oggetti o array restituito.

Comportamento

  • Con 3 slot occupati su 5 ne restano 2. 4 può indicare quattro creature da uno slot oppure una da quattro. Per un costo di 2 occorre maximum - current >= 2. Costi e limite dipendono dal server: non usare sempre 5.
  • Zero non dimostra perdita o morte dell’animale: i dati possono mancare o essere vecchi. Un aumento non identifica la creatura addomesticata. Controllare animale e messaggi del server. I posti in stalla sono un’altra cosa.
  • Nessun argomento. Seguire le firme visualizzate.
  • Legge Player.FollowersMax nel thread di gioco se Player esiste e non è distrutto; altrimenti 0. Nessuna ricerca nell’equipaggiamento, calcolo bonus, richiesta status o attesa. Un fantasma presente non è un Player distrutto.
  • PetsMax/FollowersMax legge il totale consentito dal server da status type 3, non gli slot liberi. L’occupazione può superare il limite. Capacità libera: maximum - current, riportando i negativi a 0. Non libera, addomestica o evoca creature.
  • CharacterStatus verifica il corpo fisso prima degli aggiornamenti. Weight è nello status proprio esteso, slot dal type 3, Luck dal type 4, WeightMax server dal type 5. Pacchetti compatti/vecchi senza un contatore opzionale conservano la cache. Player nuovo parte da zero; nessuna prova di status fresco.
  • RegisterCharacterGetterAliases aggiunge funzioni senza argomenti e nomi intrinseci mancanti. I rami esistenti leggono lo stesso campo. Nomi indipendenti dalle maiuscole; intrinseci senza parentesi riletti salvo variabili che li nascondono.
  • Ogni chiamata rilegge i dati locali. Le variabili conservano istantanee; letture separate possono vedere aggiornamenti diversi. Un risultato non zero non verifica la connessione; zero può essere un valore o dati assenti.

Funzioni interne: dalla chiamata al risultato

Passaggi nativi della lettura cache. CanCarry, LuckAtLeast o CanAddFollower nell’esempio è una funzione BASIC utente completa, non un’azione nativa nascosta. Non modifica inventario o seguaci.

1. RegisterCharacterGetterAliases

RegisterCharacterGetterAliases aggiunge funzioni senza argomenti e nomi intrinseci mancanti. I rami esistenti leggono lo stesso campo. Nomi indipendenti dalle maiuscole; intrinseci senza parentesi riletti salvo variabili che li nascondono.

PetsMax FollowersMax GetPetsMax GetFollowersMax.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione RegisterCharacterGetterAliases.

2. Invoke

Legge Player.FollowersMax nel thread di gioco se Player esiste e non è distrutto; altrimenti 0. Nessuna ricerca nell’equipaggiamento, calcolo bonus, richiesta status o attesa. Un fantasma presente non è un Player distrutto.

Invoke legge sul thread del gioco; l’attesa rispetta l’annullamento dello script. Nessun pacchetto, richiesta status, target, modifica o ritardo incorporato.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Invoke.

3. CharacterStatus

CharacterStatus verifica il corpo fisso prima degli aggiornamenti. Weight è nello status proprio esteso, slot dal type 3, Luck dal type 4, WeightMax server dal type 5. Pacchetti compatti/vecchi senza un contatore opzionale conservano la cache. Player nuovo parte da zero; nessuna prova di status fresco.

PetsMax/FollowersMax legge il totale consentito dal server da status type 3, non gli slot liberi. L’occupazione può superare il limite. Capacità libera: maximum - current, riportando i negativi a 0. Non libera, addomestica o evoca creature.

Sorgente del progetto: src/ClassicUO.Client/Network/PacketHandlers.cs; funzione CharacterStatus.

4. Clear

World.Clear rimuove Player. Le letture danno 0 finché giocatore e dati non tornano disponibili. Un valore salvato non prova il requisito dopo una riconnessione.

Integer — massimo degli slot di controllo, 0..255 nel modello. 0 può essere reale, sconosciuto o Player assente/distrutto. Quantità, non Boolean, ID o type: 1 significa un’unità, non successo. Nessuna ricerca oggetti o array restituito.

Sorgente del progetto: src/ClassicUO.Client/Game/World.cs; funzione Clear.

Ogni chiamata rilegge i dati locali. Le variabili conservano istantanee; letture separate possono vedere aggiornamenti diversi. Un risultato non zero non verifica la connessione; zero può essere un valore o dati assenti.

Esempi

Calcolare gli slot liberi

# Calcolare gli slot liberi
#
# Serve a controllare se c’è spazio per un’altra creatura addomesticata o evocata. Followers
# indica gli slot di controllo occupati, FollowersMax il limite totale. Non conta gli animali
# vicini e non è il comando di movimento Follow.
#
# Legge il contatore status del giocatore attuale: massimo degli slot di controllo.
#
# Integermassimo degli slot di controllo, 0..255 nel modello. 0 può essere reale, sconosciuto
# o Player assente/distrutto. Quantità, non Boolean, ID o type: 1 significa un’unità, non
# successo. Nessuna ricerca oggetti o array restituito.

SUB Main()
    # current è l’occupazione, maximum il limite, freeSlots la differenza. Limite assente o dati
    # incoerenti fermano l’esempio. Si legge lo stato memorizzato senza richiedere aggiornamenti.

    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

Spiegazione dei parametri e dell’esecuzione:

  • current è l’occupazione, maximum il limite, freeSlots la differenza. Limite assente o dati incoerenti fermano l’esempio. Si legge lo stato memorizzato senza richiedere aggiornamenti.

Controllare prima di Animal Taming

# Controllare prima di Animal Taming
#
# Serve a controllare se c’è spazio per un’altra creatura addomesticata o evocata. Followers
# indica gli slot di controllo occupati, FollowersMax il limite totale. Non conta gli animali
# vicini e non è il comando di movimento Follow.
#
# Legge il contatore status del giocatore attuale: massimo degli slot di controllo.
#
# Integermassimo degli slot di controllo, 0..255 nel modello. 0 può essere reale, sconosciuto
# o Player assente/distrutto. Quantità, non Boolean, ID o type: 1 significa un’unità, non
# successo. Nessuna ricerca oggetti o array restituito.

SUB Main()
    # Selezionare prima l’animale per lasttarget. Sostituire requiredSlots=2 con il costo sul
    # server. Senza spazio non vengono preparati bersagli  avviate abilità. Il bersaglio precede
    # UseSkill("Animal Taming"), con un solo argomento. Abilità, distanza e server determinano il
    # successo.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Selezionare prima l’animale per lasttarget. Sostituire requiredSlots=2 con il costo sul server. Senza spazio non vengono preparati bersagli né avviate abilità. Il bersaglio precede UseSkill("Animal Taming"), con un solo argomento. Abilità, distanza e server determinano il successo.

Riutilizzare il controllo per costi diversi

# Riutilizzare il controllo per costi diversi
#
# Serve a controllare se c’è spazio per un’altra creatura addomesticata o evocata. Followers
# indica gli slot di controllo occupati, FollowersMax il limite totale. Non conta gli animali
# vicini e non è il comando di movimento Follow.
#
# Legge il contatore status del giocatore attuale: massimo degli slot di controllo.
#
# Integermassimo degli slot di controllo, 0..255 nel modello. 0 può essere reale, sconosciuto
# o Player assente/distrutto. Quantità, non Boolean, ID o type: 1 significa un’unità, non
# successo. Nessuna ricerca oggetti o array restituito.

SUB Main()
    # CanAddFollower è la funzione BASIC definita nell’esempio. extraSlots è il costo aggiuntivo,
    # non type/ID. Restituisce 1/True o 0/False dai dati memorizzati; non addomestica  evoca.
    # Ricontrollare prima dell’azione.

    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

Spiegazione dei parametri e dell’esecuzione:

  • CanAddFollower è la funzione BASIC definita nell’esempio. extraSlots è il costo aggiuntivo, non type/ID. Restituisce 1/True o 0/False dai dati memorizzati; non addomestica né evoca. Ricontrollare prima dell’azione.

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

Clone this wiki locally