Repository navigation
API UO CallSub fr
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
Demande une tâche distincte pour une procédure connue du gestionnaire, par exemple un observateur indépendant. Le lancement est asynchrone, contrairement à un appel Basic ordinaire attendant un résultat.
UO.CallSub(subrutineName:String) -> Unit
-
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.
Unit : aucune valeur, résultat de fonction ou confirmation du lancement. Un nom inconnu ne lance rien. Utiliser un appel Basic normal MyFunction(...) pour une exécution synchrone.
- L’Autoload sélectionné est prioritaire pour les noms identiques. Plusieurs définitions dans ce fichier sont ambiguës ; un auxiliaire chargé séparément doit avoir un nom unique. L’ordre des fichiers ne choisit pas une sauvegarde. CallSub, comme UO.Exec("exec Nom"), lit l’Autoload sélectionné sur disque avant le lancement. Un remplacement agit au prochain appel ; un fichier vide ou supprimé produit un message d’erreur, pas l’ancien code ni une sauvegarde. Les auxiliaires uniques chargés séparément conservent leur propre voie de lancement. L’appel attend la décision d’admission, pas la fin de la tâche enfant.
- 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.
É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.
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.
Unit : aucune valeur, résultat de fonction ou confirmation du lancement. Un nom inconnu ne lance rien. Utiliser un appel Basic normal MyFunction(...) pour une exécution synchrone.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; fonction CallSub.
L’Autoload sélectionné est prioritaire pour les noms identiques. Plusieurs définitions dans ce fichier sont ambiguës ; un auxiliaire chargé séparément doit avoir un nom unique. L’ordre des fichiers ne choisit pas une sauvegarde. CallSub, comme UO.Exec("exec Nom"), lit l’Autoload sélectionné sur disque avant le lancement. Un remplacement agit au prochain appel ; un fichier vide ou supprimé produit un message d’erreur, pas l’ancien code ni une sauvegarde. Les auxiliaires uniques chargés séparément conservent leur propre voie de lancement. L’appel attend la décision d’admission, pas la fin de la tâche enfant.
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 RunNamedProcedure.
Demande une tâche distincte pour une procédure connue du gestionnaire, par exemple un observateur indépendant. Le lancement est asynchrone, contrairement à un appel Basic ordinaire attendant un résultat.
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.
Source du projet: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; fonction Exec.
É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.
# Lancer puis continuer Main
#
# Demande une tâche distincte pour une procédure connue du gestionnaire, par exemple un
# observateur indépendant. Le lancement est asynchrone, contrairement à un appel Basic ordinaire
# attendant un résultat.
#
# Unit : aucune valeur, résultat de fonction ou confirmation du lancement. Un nom inconnu ne
# lance rien. Utiliser un appel Basic normal MyFunction(...) pour une exécution synchrone.
SUB Main()
# WeightWatch est définie ci-dessous. Main renvoie 77 sans attendre les trois mesures ; 77 vient
# de Main, pas de CallSub.
# 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.
UO.CallSub("WeightWatch")
Return 77
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 SubExplication des paramètres et du déroulement:
- WeightWatch est définie ci-dessous. Main renvoie 77 sans attendre les trois mesures ; 77 vient de Main, pas de CallSub.
- 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.
# Conserver une tâche active ou en pause
#
# Demande une tâche distincte pour une procédure connue du gestionnaire, par exemple un
# observateur indépendant. Le lancement est asynchrone, contrairement à un appel Basic ordinaire
# attendant un résultat.
#
# Unit : aucune valeur, résultat de fonction ou confirmation du lancement. Un nom inconnu ne
# lance rien. Utiliser un appel Basic normal MyFunction(...) pour une exécution synchrone.
SUB Main()
# StartIfIdle vérifie définition puis activité. False : aucune demande ; True : seulement une
# demande CallSub, sans preuve de lancement ni de fin.
# 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.
Return StartIfIdle("WeightWatch")
END SUB
Function StartIfIdle(name) As Boolean
If Not UO.SubExists(name) Then
Return False
End If
If UO.FunRunning(name) Then
Return False
End If
UO.CallSub(name)
Return True
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 SubExplication des paramètres et du déroulement:
- StartIfIdle vérifie définition puis activité. False : aucune demande ; True : seulement une demande CallSub, sans preuve de lancement ni de fin.
- 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.
# Deux observateurs indépendants
#
# Demande une tâche distincte pour une procédure connue du gestionnaire, par exemple un
# observateur indépendant. Le lancement est asynchrone, contrairement à un appel Basic ordinaire
# attendant un résultat.
#
# Unit : aucune valeur, résultat de fonction ou confirmation du lancement. Un nom inconnu ne
# lance rien. Utiliser un appel Basic normal MyFunction(...) pour une exécution synchrone.
SUB Main()
# WeightWatch et ManaWatch sont indépendants, sans variables locales partagées. L’ordre des
# messages n’est pas garanti.
# 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.
UO.CallSub("WeightWatch")
UO.CallSub("ManaWatch")
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
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 SubExplication des paramètres et du déroulement:
- WeightWatch et ManaWatch sont indépendants, sans variables locales partagées. L’ordre des messages n’est pas garanti.
- 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.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь