-
Notifications
You must be signed in to change notification settings - Fork 0
API UO IsFlying it
ClassicUO / Basic IDE
Controlla se un personaggio sta volando, normalmente un Gargoyle prima di un percorso o di una richiesta di decollo. Senza argomento: «sto volando?». Legge soltanto lo stato: non decolla, atterra o sposta il personaggio.
UO.IsFlying() -> Integer
UO.IsFlying(value:Any) -> Integer
-
value— Serial opzionale: numero, stringa esadecimale, self, lasttarget o nome UO.AddObject. Se omesso usa il proprio personaggio. È un ID mobile, non graphic/type o Z. Nome sconosciuto, mobile assente/distrutto o oggetto restituiscono 0.
Integer Boolean: 1 = TRUE, 0 = FALSE. Confrontabile con numeri o costanti logiche senza virgolette. 1 indica IsFlying sul mobile; altrimenti, o se assente, 0. La sola altezza Z non indica il volo.
Risultato logico: 1 = TRUE, 0 = FALSE. Dopo VAR result = comando(...), usare IF result = TRUE THEN o IF result = 1 THEN; per il risultato negativo, IF result = FALSE THEN o IF result = 0 THEN. TRUE/FALSE senza virgolette. Chiamare una sola volta e salvare il risultato: un nuovo richiamo può ripetere l’azione o leggere uno stato cambiato.
- Serve soprattutto per il volo Gargoyle, ma il getter non controlla la razza. Legge il bit mobile 0x04 dal protocollo 7.0.0.0; prima restituisce 0. Tetto, Z alta, animazione delle ali o razza da soli non dimostrano il volo.
- UO.ToggleFly() richiede separatamente un cambio di stato, non un’attivazione garantita. Durante il volo richiede l’atterraggio. Il server può rifiutare: rileggere Flying con attesa limitata. FALSE può indicare anche dati assenti; controllare Connected prima di agire.
- Legge il modello locale: nessun target, richiesta di status, modifica di flag o invio di pacchetti. Un oggetto distrutto è assente anche prima della rimozione dal dizionario.
- Ogni risultato è una lettura distinta. Il mondo può cambiare tra Exists e la chiamata successiva; più letture non formano un’istantanea atomica.
Queste sono le vere fasi interne C#. ReadState è una funzione ausiliaria completamente definita nell’esempio, non un comando integrato nascosto.
Alla creazione del runtime, RegisterCharacterGetterAliases registra nomi e forme. Senza argomento usa bridge.Self; con un argomento usa il relativo serial. Le registrazioni esistenti vengono mantenute.
1 indica IsFlying sul mobile; altrimenti, o se assente, 0. La sola altezza Z non indica il volo.
Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione RegisterCharacterGetterAliases.
TryGetObject risolve numeri, stringhe esadecimali e nomi salvati. Il nome AddObject viene risolto a ogni chiamata; nessuna ricerca graphic/type o selezione interattiva.
Serial opzionale: numero, stringa esadecimale, self, lasttarget o nome UO.AddObject. Se omesso usa il proprio personaggio. È un ID mobile, non graphic/type o Z. Nome sconosciuto, mobile assente/distrutto o oggetto restituiscono 0.
Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione TryGetObject.
Invoke legge nel thread del gioco; un thread di lavoro attende l’elaborazione del gestore. L’annullamento dello script interrompe l’attesa. Nessun ritardo o richiesta di rete aggiuntivi.
Ogni risultato è una lettura distinta. Il mondo può cambiare tra Exists e la chiamata successiva; più letture non formano un’istantanea atomica.
Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Invoke.
Controlla se un personaggio sta volando, normalmente un Gargoyle prima di un percorso o di una richiesta di decollo. Senza argomento: «sto volando?». Legge soltanto lo stato: non decolla, atterra o sposta il personaggio.
Serve soprattutto per il volo Gargoyle, ma il getter non controlla la razza. Legge il bit mobile 0x04 dal protocollo 7.0.0.0; prima restituisce 0. Tetto, Z alta, animazione delle ali o razza da soli non dimostrano il volo.
Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Flying.
Legge il modello locale: nessun target, richiesta di status, modifica di flag o invio di pacchetti. Un oggetto distrutto è assente anche prima della rimozione dal dizionario.
# Parentesi vuote: self. TRUE = 1, FALSE = 0; IF UO.Flying() THEN è valido. Nessun cambio di stato.
SUB Main()
# Read once; no toggle request is sent.
VAR active = UO.IsFlying()
IF active = TRUE THEN
UO.Print("Flying mode active")
ELSE
UO.Print("Ground mode or character data unavailable")
END IF
END SUBSpiegazione dei parametri e dell’esecuzione:
- Parentesi vuote: self. TRUE = 1, FALSE = 0; IF UO.Flying() THEN è valido. Nessun cambio di stato.
# ReadState(obj) riceve serial/alias e restituisce lo stato; la funzione completa verifica prima l’esistenza. Per altri personaggi usa dati già caricati.
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.IsFlying(obj)
END FUNCTIONSpiegazione dei parametri e dell’esecuzione:
- ReadState(obj) riceve serial/alias e restituisce lo stato; la funzione completa verifica prima l’esistenza. Per altri personaggi usa dati già caricati.
# Per il proprio Gargoyle su un server con volo. EnsureFlight(timeoutMs) restituisce 1/TRUE se osserva il volo, altrimenti 0/FALSE. Limite 2000 ms, controllo ogni 50 ms. Nessuna richiesta se già in volo, al massimo una negli altri casi. Pausa o ritardi di esecuzione possono estendere il tempo reale.
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.IsFlying() THEN
RETURN TRUE
END IF
UO.ToggleFly()
VAR waited = 0
WHILE waited < timeoutMs
IF NOT UO.Connected() THEN
RETURN FALSE
END IF
IF UO.IsFlying() THEN
RETURN TRUE
END IF
WAIT(50)
waited += 50
WEND
RETURN UO.IsFlying()
END FUNCTIONSpiegazione dei parametri e dell’esecuzione:
- Per il proprio Gargoyle su un server con volo. EnsureFlight(timeoutMs) restituisce 1/TRUE se osserva il volo, altrimenti 0/FALSE. Limite 2000 ms, controllo ogni 50 ms. Nessuna richiesta se già in volo, al massimo una negli altri casi. Pausa o ritardi di esecuzione possono estendere il tempo reale.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь