Skip to content

API UO Exec de

Codex edited this page Oct 3, 2026 · 1 revision

UO.Exec

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

UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

Führt einen einzelnen Befehl in Konsolenschreibweise aus, etwa wenn Name oder Argumente als Text zusammengesetzt werden. Direkte Aufrufe wie UO.UseSkill("Hiding") sind meist übersichtlicher. Beliebiger Basic-Quellcode wird nicht ausgewertet.

Genaue Syntax

UO.Exec(parameters:String) -> Unit

Parameter

  • parameters — Erforderlicher String: Befehlsname und durch Leerzeichen getrennte Argumente, z. B. useskill Hiding. Im String ohne UO., Aufrufklammern oder Kommas; in Basic selbst UO.Exec(...). Leere Eingabe bewirkt nichts.

Rückgabewert

Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

Verhalten

  • Einfache oder doppelte Anführungszeichen gruppieren Argumente mit Leerzeichen. '' erhält ein leeres Argument; '00123' bleibt ein String mit führenden Nullen. Ohne Anführungszeichen werden Zahlen erkannt, andere Tokens bleiben Strings. 2+3 wird nicht berechnet.
  • Windows-/UNC-Backslashes bleiben erhalten. Einen abschließenden Backslash direkt vor dem Schlusszeichen verdoppeln oder / verwenden. Ein passendes Anführungszeichen im Argument verdoppeln oder mit Backslash maskieren. Offene Anführungszeichen erzeugen einen Fehler. Print/Msg/Say/ConsolePrint/TextPrint verbinden den Rest zu Text; ColorPrint/CharPrint trennen ihre ersten Argumente davon.
  • Zuerst wird ein passender UO-Handler gesucht, dann eine lokale Sub/Function dieser Runtime mit passender Argumentanzahl. Lokale Aufrufe sind synchron. Die Sonderform exec Prozedurname fordert beim Manager eine separate Aufgabe ohne Argumente an. Ein dort unbekannter Name startet nichts. Der Prozedurname ist kein Dateipfad.
  • Unbekannte normale Befehle, falsche Argumentanzahl oder Anführungszeichen liefern einen mit Try/Catch abfangbaren Fehler. exec verlangt genau einen nichtleeren Namen. Ein aktiver Lauf wird weder dupliziert noch aus Pause fortgesetzt. Dateien: startscript; Katalog: SubExists/FunRunning. Aliase: sayu→Say, closeuo→CloseHandle, CountOnGround→CountGround, clearignorelist→IgnoreReset, canceltarget→CancelTarget, cancelmove→MoveOff.

Interne Funktionen: vom Aufruf zum Ergebnis

Dies sind Implementierungsschritte des Clients, keine zusätzlichen Basic-Befehle. Hilfsprozeduren sind vollständig angegeben.

1. Tokenize

Einfache oder doppelte Anführungszeichen gruppieren Argumente mit Leerzeichen. '' erhält ein leeres Argument; '00123' bleibt ein String mit führenden Nullen. Ohne Anführungszeichen werden Zahlen erkannt, andere Tokens bleiben Strings. 2+3 wird nicht berechnet.

Windows-/UNC-Backslashes bleiben erhalten. Einen abschließenden Backslash direkt vor dem Schlusszeichen verdoppeln oder / verwenden. Ein passendes Anführungszeichen im Argument verdoppeln oder mit Backslash maskieren. Offene Anführungszeichen erzeugen einen Fehler. Print/Msg/Say/ConsolePrint/TextPrint verbinden den Rest zu Text; ColorPrint/CharPrint trennen ihre ersten Argumente davon.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; Funktion Tokenize.

2. Exec / CallNativeSubrutine

Zuerst wird ein passender UO-Handler gesucht, dann eine lokale Sub/Function dieser Runtime mit passender Argumentanzahl. Lokale Aufrufe sind synchron. Die Sonderform exec Prozedurname fordert beim Manager eine separate Aufgabe ohne Argumente an. Ein dort unbekannter Name startet nichts. Der Prozedurname ist kein Dateipfad.

Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; Funktion Exec / CallNativeSubrutine.

Dies sind Implementierungsschritte des Clients, keine zusätzlichen Basic-Befehle. Hilfsprozeduren sind vollständig angegeben.

Beispiele

Fertigkeit verwenden

# Fertigkeit verwenden
#
# Führt einen einzelnen Befehl in Konsolenschreibweise aus, etwa wenn Name oder Argumente als
# Text zusammengesetzt werden. Direkte Aufrufe wie UO.UseSkill("Hiding") sind meist
# übersichtlicher. Beliebiger Basic-Quellcode wird nicht ausgewertet.
#
# Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden
# verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

SUB Main()
    # Hiding ist das einzige UseSkill-Argument. Im Spiel wird die Fertigkeit angefordert; der Server
    # entscheidet über Erfolg. Direkt: UO.UseSkill("Hiding").

    UO.Exec("useskill Hiding")
END SUB

Erläuterung der Parameter und Ausführung:

  • Hiding ist das einzige UseSkill-Argument. Im Spiel wird die Fertigkeit angefordert; der Server entscheidet über Erfolg. Direkt: UO.UseSkill("Hiding").

Text an lokale Prozedur übergeben

# Text an lokale Prozedur übergeben
#
# Führt einen einzelnen Befehl in Konsolenschreibweise aus, etwa wenn Name oder Argumente als
# Text zusammengesetzt werden. Direkte Aufrufe wie UO.UseSkill("Hiding") sind meist
# übersichtlicher. Beliebiger Basic-Quellcode wird nicht ausgewertet.
#
# Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden
# verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

SUB Main()
    # SelectSavedRoute ist unten definiert und speichert den Routennamen. 00123 bleibt dank
    # Anführungszeichen erhalten. Nach dem synchronen Aufruf gibt Main diesen String zurück; die
    # Figur bewegt sich nicht.

    UO.Exec("SelectSavedRoute '00123'")
    Return UO.GetGlobal("manual", "savedRoute")
END SUB

Sub SelectSavedRoute(name)
    UO.SetGlobal("manual", "savedRoute", name)
End Sub

Erläuterung der Parameter und Ausführung:

  • SelectSavedRoute ist unten definiert und speichert den Routennamen. 00123 bleibt dank Anführungszeichen erhalten. Nach dem synchronen Aufruf gibt Main diesen String zurück; die Figur bewegt sich nicht.

Unabhängige Überwachung starten

# Unabhängige Überwachung starten
#
# Führt einen einzelnen Befehl in Konsolenschreibweise aus, etwa wenn Name oder Argumente als
# Text zusammengesetzt werden. Direkte Aufrufe wie UO.UseSkill("Hiding") sind meist
# übersichtlicher. Beliebiger Basic-Quellcode wird nicht ausgewertet.
#
# Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden
# verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

SUB Main()
    # Gesamte Datei im Manager/IDE laden, dann Main starten: WeightWatch muss im Katalog stehen.
    # Drei Gewichtsmessungen im Abstand von 1000 ms laufen unabhängig. Gleichzeitige Prozeduren
    # müssen erlaubt sein; ein erneuter Aufruf hebt keine Pause auf.

    UO.Exec("exec WeightWatch")
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

Erläuterung der Parameter und Ausführung:

  • Gesamte Datei im Manager/IDE laden, dann Main starten: WeightWatch muss im Katalog stehen. Drei Gewichtsmessungen im Abstand von 1000 ms laufen unabhängig. Gleichzeitige Prozeduren müssen erlaubt sein; ein erneuter Aufruf hebt keine Pause auf.

Dateipfad mit Leerzeichen

# Dateipfad mit Leerzeichen
#
# Führt einen einzelnen Befehl in Konsolenschreibweise aus, etwa wenn Name oder Argumente als
# Text zusammengesetzt werden. Direkte Aufrufe wie UO.UseSkill("Hiding") sind meist
# übersichtlicher. Beliebiger Basic-Quellcode wird nicht ausgewertet.
#
# Unit: kein Wert. Rückgabewerte des aufgerufenen Befehls oder einer lokalen Function werden
# verworfen. Dafür ist ein direkter Aufruf nötig. Die Rückkehr bestätigt keine Serveraktion.

SUB Main()
    # Durch eine vorhandene Basic-Datei mit Main ersetzen. startscript lädt sie und fordert Main an.
    # Die inneren Anführungszeichen gehören zur Konsolenform. Fehler in der IDE prüfen; Exec
    # bestätigt den Start nicht.

    UO.Exec("startscript 'C:\UO Scripts\Gather.bas'")
END SUB

Erläuterung der Parameter und Ausführung:

  • Durch eine vorhandene Basic-Datei mit Main ersetzen. startscript lädt sie und fordert Main an. Die inneren Anführungszeichen gehören zur Konsolenform. Fehler in der IDE prüfen; Exec bestätigt den Start nicht.

Clone this wiki locally