Skip to content

API UO FunRunning fr

Codex edited this page Oct 3, 2026 · 1 revision

UO.FunRunning

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

UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

Vérifie l’existence d’une exécution active de la procédure, même en pause. Évite de relancer un observateur existant.

Syntaxe exacte

UO.FunRunning(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 l’exécution existe sans être annulée, même en pause manuelle ou de déconnexion ; 0 (False) si absente, non démarrée, terminée ou en annulation. If UO.FunRunning(name), = 1 et = True sont valides. GetScriptState distingue exécution (1) et pause (2).

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. FunRunning

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 l’exécution existe sans être annulée, même en pause manuelle ou de déconnexion ; 0 (False) si absente, non démarrée, terminée ou en annulation. If UO.FunRunning(name), = 1 et = True sont valides. GetScriptState distingue exécution (1) et pause (2).

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

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. FunRunning

Vérifie l’existence d’une exécution active de la procédure, même en pause. Évite de relancer un observateur existant.

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.

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

É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 en l’absence d’exécution

# Lancer en l’absence d’exécution
#
# Vérifie l’existence d’une exécution active de la procédure, même en pause. Évite de relancer
# un observateur existant.
#
# Integer : 1 (True) si l’exécution existe sans être annulée, même en pause manuelle ou de
# déconnexion ; 0 (False) si absente, non démarrée, terminée ou en annulation. If
# UO.FunRunning(name), = 1 et = True sont valides. GetScriptState distingue exécution (1) et
# pause (2).

SUB Main()
    # FunRunning = 0 permet une demande. Une pause renvoie 1 et n’est pas levée.
    # 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 Not UO.FunRunning("WeightWatch") 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:

  • FunRunning = 0 permet une demande. Une pause renvoie 1 et n’est pas levée.
  • 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.

Distinguer activité et pause

# Distinguer activité et pause
#
# Vérifie l’existence d’une exécution active de la procédure, même en pause. Évite de relancer
# un observateur existant.
#
# Integer : 1 (True) si l’exécution existe sans être annulée, même en pause manuelle ou de
# déconnexion ; 0 (False) si absente, non démarrée, terminée ou en annulation. If
# UO.FunRunning(name), = 1 et = True sont valides. GetScriptState distingue exécution (1) et
# pause (2).

SUB Main()
    # NamedRunState cherche le libellé WeightWatch et renvoie GetScriptState : 1, 2 ou 0. Suppose un
    # libellé unique inchangé et une liste stable. Après SetScriptName, chercher le nouveau libellé
    # ou le chemin ; FunRunning utilise toujours le nom source.
    # 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.FunRunning("WeightWatch") Then
        Return NamedRunState("WeightWatch")
    End If
    Return 0
END SUB

Function NamedRunState(name) As Integer
    Dim indices = UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptName(index) = name Then
            Return UO.GetScriptState(index)
        End If
    Next
    Return 0
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

Explication des paramètres et du déroulement:

  • NamedRunState cherche le libellé WeightWatch et renvoie GetScriptState : 1, 2 ou 0. Suppose un libellé unique inchangé et une liste stable. Après SetScriptName, chercher le nouveau libellé ou le chemin ; FunRunning utilise toujours le nom source.
  • 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.

Arrêter un seul observateur

# Arrêter un seul observateur
#
# Vérifie l’existence d’une exécution active de la procédure, même en pause. Évite de relancer
# un observateur existant.
#
# Integer : 1 (True) si l’exécution existe sans être annulée, même en pause manuelle ou de
# déconnexion ; 0 (False) si absente, non démarrée, terminée ou en annulation. If
# UO.FunRunning(name), = 1 et = True sont valides. GetScriptState distingue exécution (1) et
# pause (2).

SUB Main()
    # Terminate reçoit le nom d’origine WeightWatch et annule cette tâche, même en pause. Les autres
    # continuent. Lancer Main comme contrôleur séparé.
    # 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.FunRunning("WeightWatch") Then
        UO.Terminate("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:

  • Terminate reçoit le nom d’origine WeightWatch et annule cette tâche, même en pause. Les autres continuent. Lancer Main comme contrôleur séparé.
  • 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