-
Notifications
You must be signed in to change notification settings - Fork 0
API UO IsFlying fr
ClassicUO / Basic IDE
Vérifie si un personnage vole actuellement, généralement un Gargoyle avant un trajet ou une demande de décollage. Sans argument : « suis-je en vol ? ». La commande lit seulement l’état ; elle ne fait ni décoller, ni atterrir, ni déplacer le personnage.
UO.IsFlying() -> Integer
UO.IsFlying(value:Any) -> Integer
-
value— Serial facultatif : nombre, chaîne hexadécimale, self, lasttarget ou nom UO.AddObject. Sans argument : votre personnage. ID de mobile, pas graphic/type ni Z. Nom inconnu, mobile absent/détruit ou objet : 0.
Integer Boolean : 1 = TRUE, 0 = FALSE. Comparez avec des nombres ou des constantes logiques sans guillemets. 1 si le mobile a IsFlying ; sinon, ou s’il est absent, 0. La hauteur Z ne suffit pas à indiquer le vol.
Résultat logique : 1 = TRUE, 0 = FALSE. Après VAR result = commande(...), utilisez IF result = TRUE THEN ou IF result = 1 THEN ; sinon IF result = FALSE THEN ou IF result = 0 THEN. TRUE/FALSE sans guillemets. Appelez une seule fois et conservez le résultat : un nouvel appel peut répéter l’action ou lire un état modifié.
- Utilisée surtout pour le vol Gargoyle, sans contrôle de race dans ce getter. Il lit le bit mobile 0x04 avec le protocole 7.0.0.0 ou ultérieur ; sinon 0. Un toit, une Z élevée, des ailes animées ou la race seule ne prouvent pas le vol.
- UO.ToggleFly() demande séparément une bascule, pas une activation garantie. En vol, elle demande un atterrissage. Le serveur peut refuser : relire Flying avec une attente bornée. FALSE peut aussi signifier absence de personnage/données ; vérifier Connected avant une action.
- Lit le modèle local : aucun target, aucune demande de status, aucune modification d’indicateur ni émission de paquet. Un objet détruit est absent avant même le retrait de son entrée du dictionnaire.
- Chaque résultat est une lecture distincte. Le monde peut changer entre Exists et l’appel suivant ; plusieurs lectures ne forment pas un instantané atomique.
Voici les véritables étapes internes C#. ReadState est une fonction auxiliaire entièrement définie dans l’exemple, pas une commande intégrée cachée.
À la création du runtime, RegisterCharacterGetterAliases enregistre les noms et les formes. Sans argument, utilise bridge.Self ; avec un argument, son serial. Les enregistrements existants sont conservés.
1 si le mobile a IsFlying ; sinon, ou s’il est absent, 0. La hauteur Z ne suffit pas à indiquer le vol.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction RegisterCharacterGetterAliases.
TryGetObject résout les nombres, les chaînes hexadécimales et les noms enregistrés. Le nom AddObject est résolu à chaque appel ; aucune recherche graphic/type ni sélection interactive.
Serial facultatif : nombre, chaîne hexadécimale, self, lasttarget ou nom UO.AddObject. Sans argument : votre personnage. ID de mobile, pas graphic/type ni Z. Nom inconnu, mobile absent/détruit ou objet : 0.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction TryGetObject.
Invoke lit dans le thread du jeu ; un thread de travail attend le traitement par le gestionnaire. L’annulation du script interrompt cette attente. Aucun délai ni appel réseau supplémentaire.
Chaque résultat est une lecture distincte. Le monde peut changer entre Exists et l’appel suivant ; plusieurs lectures ne forment pas un instantané atomique.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction Invoke.
Vérifie si un personnage vole actuellement, généralement un Gargoyle avant un trajet ou une demande de décollage. Sans argument : « suis-je en vol ? ». La commande lit seulement l’état ; elle ne fait ni décoller, ni atterrir, ni déplacer le personnage.
Utilisée surtout pour le vol Gargoyle, sans contrôle de race dans ce getter. Il lit le bit mobile 0x04 avec le protocole 7.0.0.0 ou ultérieur ; sinon 0. Un toit, une Z élevée, des ailes animées ou la race seule ne prouvent pas le vol.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction Flying.
Lit le modèle local : aucun target, aucune demande de status, aucune modification d’indicateur ni émission de paquet. Un objet détruit est absent avant même le retrait de son entrée du dictionnaire.
# Sans argument : self. TRUE = 1, FALSE = 0 ; IF UO.Flying() THEN convient. Aucun changement ici.
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 SUBExplication des paramètres et du déroulement:
- Sans argument : self. TRUE = 1, FALSE = 0 ; IF UO.Flying() THEN convient. Aucun changement ici.
# ReadState(obj) reçoit un serial/alias et renvoie l’état ; la fonction complète teste d’abord la présence. Les autres personnages utilisent les données déjà chargées.
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 FUNCTIONExplication des paramètres et du déroulement:
- ReadState(obj) reçoit un serial/alias et renvoie l’état ; la fonction complète teste d’abord la présence. Les autres personnages utilisent les données déjà chargées.
# Pour votre Gargoyle sur un serveur autorisant le vol. EnsureFlight(timeoutMs) renvoie 1/TRUE si le vol est observé, sinon 0/FALSE. Limite 2000 ms, contrôles toutes les 50 ms. Aucun appel si déjà en vol, sinon une demande au maximum. Une pause ou un retard d’exécution peut allonger le temps réel.
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 FUNCTIONExplication des paramètres et du déroulement:
- Pour votre Gargoyle sur un serveur autorisant le vol. EnsureFlight(timeoutMs) renvoie 1/TRUE si le vol est observé, sinon 0/FALSE. Limite 2000 ms, contrôles toutes les 50 ms. Aucun appel si déjà en vol, sinon une demande au maximum. Une pause ou un retard d’exécution peut allonger le temps réel.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь