Skip to content

API UO SubExists fr

Codex edited this page Oct 3, 2026 · 1 revision

UO.SubExists

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

UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

Cherche une définition dans le catalogue du gestionnaire avant de lancer un module facultatif. Sa présence ne prouve ni son exécution ni la possibilité de la lancer sans arguments.

Syntaxe exacte

UO.SubExists(subrutineName:String) -> Integer

Paramètres

  • subrutineName — String subrutineName obligatoire : nom Sub/Function du catalogue, comme WeightWatch. Ni chemin, fichier, indice, code source, ni libellé modifié par SetScriptName. La casse est ignorée, les espaces ne sont pas supprimés. Aucun argument de procédure ne peut être transmis.

Retour

Integer : 1 (True) si la définition existe, sinon 0 (False). If UO.SubExists(name), = 1 et = True sont valides ; 0 correspond à False. Ne vérifie ni fichier, ni validité, ni exécution active.

Comportement

  • Recherche limitée au catalogue de cette session. Les noms identiques sélectionnent la première correspondance : choisir des noms uniques. Ces commandes ne chargent aucun fichier inconnu et ne parcourent pas le disque.
  • CallSub fournit zéro argument. Private, erreurs de syntaxe, paramètres obligatoires, Basic désactivé ou règle de procédure unique peuvent refuser le lancement ; consulter l’état/les erreurs IDE. Un nouvel appel ne duplique ni ne reprend une tâche active. Après annulation, le démarrage peut attendre le nettoyage. Le contrôleur n’attend pas la fin de la tâche.
  • FunRunning utilise le nom d’origine et la clé, pas un libellé renommé. La pause conserve l’exécution et renvoie 1. L’annulation renvoie 0 même pendant le nettoyage. Vérification et appel suivant ne sont pas atomiques ; la tâche peut se terminer entre les deux.
  • SubExists peut renvoyer 1 pour une définition Private ou invalide. Arrêter la tâche ou fermer l’onglet ne supprime pas forcément l’entrée du catalogue. Recharger un fichier modifié retire les définitions obsolètes. Une fonction chargée seulement dans un runtime séparé peut être inconnue du gestionnaire.

Fonctions internes : de l’appel au résultat

Étapes réelles de l’implémentation : les noms C# ne sont pas de nouvelles commandes UO. Toutes les fonctions auxiliaires Basic exécutables sont fournies intégralement.

1. SubExists

String subrutineName obligatoire : nom Sub/Function du catalogue, comme WeightWatch. Ni chemin, fichier, indice, code source, ni libellé modifié par SetScriptName. La casse est ignorée, les espaces ne sont pas supprimés. Aucun argument de procédure ne peut être transmis.

Integer : 1 (True) si la définition existe, sinon 0 (False). If UO.SubExists(name), = 1 et = True sont valides ; 0 correspond à False. Ne vérifie ni fichier, ni validité, ni exécution active.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction SubExists.

2. FindProcedureByName

Recherche limitée au catalogue de cette session. Les noms identiques sélectionnent la première correspondance : choisir des noms uniques. Ces commandes ne chargent aucun fichier inconnu et ne parcourent pas le disque.

SubExists peut renvoyer 1 pour une définition Private ou invalide. Arrêter la tâche ou fermer l’onglet ne supprime pas forcément l’entrée du catalogue. Recharger un fichier modifié retire les définitions obsolètes. Une fonction chargée seulement dans un runtime séparé peut être inconnue du gestionnaire.

Source du projet: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; fonction FindProcedureByName.

3. SubExists

Cherche une définition dans le catalogue du gestionnaire avant de lancer un module facultatif. Sa présence ne prouve ni son exécution ni la possibilité de la lancer sans arguments.

SubExists peut renvoyer 1 pour une définition Private ou invalide. Arrêter la tâche ou fermer l’onglet ne supprime pas forcément l’entrée du catalogue. Recharger un fichier modifié retire les définitions obsolètes. Une fonction chargée seulement dans un runtime séparé peut être inconnue du gestionnaire.

Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction SubExists.

Étapes réelles de l’implémentation : les noms C# ne sont pas de nouvelles commandes UO. Toutes les fonctions auxiliaires Basic exécutables sont fournies intégralement.

Exemples

Lancer une procédure disponible

# Lancer une procédure disponible
#
# Cherche une définition dans le catalogue du gestionnaire avant de lancer un module facultatif.
# Sa présence ne prouve ni son exécution ni la possibilité de la lancer sans arguments.
#
# Integer : 1 (True) si la définition existe, sinon 0 (False). If UO.SubExists(name), = 1 et =
# True sont valides ; 0 correspond à False. Ne vérifie ni fichier, ni validité, ni exécution
# active.

SUB Main()
    # Pour ce résultat logique, = True équivaut à = 1. Charger le fichier pour enregistrer
    # WeightWatch définie ci-dessous.
    # Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour
    # enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de
    # poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses
    # prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

    If UO.SubExists("WeightWatch") = True Then
        UO.CallSub("WeightWatch")
    End If
END SUB

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

Explication des paramètres et du déroulement:

  • Pour ce résultat logique, = True équivaut à = 1. Charger le fichier pour enregistrer WeightWatch définie ci-dessous.
  • Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

Choisir un remplacement

# Choisir un remplacement
#
# Cherche une définition dans le catalogue du gestionnaire avant de lancer un module facultatif.
# Sa présence ne prouve ni son exécution ni la possibilité de la lancer sans arguments.
#
# Integer : 1 (True) si la définition existe, sinon 0 (False). If UO.SubExists(name), = 1 et =
# True sont valides ; 0 correspond à False. Ne vérifie ni fichier, ni validité, ni exécution
# active.

SUB Main()
    # WeightWatch peut provenir d’un autre fichier. Si absente, choisir ManaWatch locale. Un refus
    # de lancer la procédure principale trouvée n’active pas le remplacement.
    # Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour
    # enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de
    # poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses
    # prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

    If UO.SubExists("WeightWatch") = 1 Then
        UO.CallSub("WeightWatch")
    ElseIf UO.SubExists("ManaWatch") Then
        UO.CallSub("ManaWatch")
    End If
END SUB

Sub ManaWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Mana: " & CStr(UO.Mana()))
        End If
        UO.Wait(1000)
    Next
End Sub

Explication des paramètres et du déroulement:

  • WeightWatch peut provenir d’un autre fichier. Si absente, choisir ManaWatch locale. Un refus de lancer la procédure principale trouvée n’active pas le remplacement.
  • Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

Vérifier les deux définitions

# Vérifier les deux définitions
#
# Cherche une définition dans le catalogue du gestionnaire avant de lancer un module facultatif.
# Sa présence ne prouve ni son exécution ni la possibilité de la lancer sans arguments.
#
# Integer : 1 (True) si la définition existe, sinon 0 (False). If UO.SubExists(name), = 1 et =
# True sont valides ; 0 correspond à False. Ne vérifie ni fichier, ni validité, ni exécution
# active.

SUB Main()
    # HaveMonitors utilise AndAlso. Si l’un des noms manque, Main ne lance rien. Ce n’est pas une
    # garantie de lancement simultané réussi.
    # Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour
    # enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de
    # poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses
    # prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

    If HaveMonitors() Then
        UO.CallSub("WeightWatch")
        UO.CallSub("ManaWatch")
    End If
END SUB

Function HaveMonitors() As Boolean
    Return UO.SubExists("WeightWatch") AndAlso UO.SubExists("ManaWatch")
End Function

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

Sub ManaWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Mana: " & CStr(UO.Mana()))
        End If
        UO.Wait(1000)
    Next
End Sub

Explication des paramètres et du déroulement:

  • HaveMonitors utilise AndAlso. Si l’un des noms manque, Main ne lance rien. Ce n’est pas une garantie de lancement simultané réussi.
  • Enregistrer chaque exemple séparément, le charger dans IDE/gestionnaire et lancer Main pour enregistrer les procédures. WeightWatch/ManaWatch sont entièrement définies : trois mesures de poids/mana, Wait(1000) = 1000 ms, affichage uniquement en jeu. Observation finie ; les pauses prolongent la durée. Autoriser les procédures simultanées pour les deux tâches.

Clone this wiki locally