API UO StartScript de - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.StartScript

ClassicUO • Runtime API

Lädt eine Basic-Datei und fordert deren öffentliche Sub Main an.

Genaue Syntax

UO.StartScript(ScriptPath:Any) -> Integer

Parameter

  • ScriptPath — Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

Rückgabewert

Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) = Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.

Verhalten

  • Laufende und pausierte Ausführungen zählen; abgeschlossene oder bereits abgebrochene werden ausgeschlossen. Der Aufrufer zählt normalerweise mit. Nur geladene IDE-Tabs sind keine Ausführungen.
  • Indizes sind aktuelle Positionen in Startreihenfolge. Starts und Stopps können Positionen verschieben. Einzelne Aufrufe bilden keinen atomaren Gesamtschnappschuss; vor späteren Steuerbefehlen neu lesen.
  • Das Schließen der Basic IDE entfernt aktive Ausführungen nicht. Diese Befehle betreffen diesen Client, keine anderen Clients oder Windows-Prozesse.
  • GetScriptsList liefert Indizes, GetScriptsCount eine Anzahl, GetScriptState einen dreistufigen Zustand. Werte nicht vertauschen oder jede Zahl ungleich null als true interpretieren.
  • Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade, ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze Skripte können vor dem Lesen der Anzahl schon enden.

Interne Funktionen: vom Aufruf zum Ergebnis

Es folgen tatsächliche Clientmethoden. Die Basic-Beispiele enthalten vollständige Helfer; interne C#-Methodennamen sind keine zusätzlichen Skriptbefehle.

1. ExecuteStealthCompatibility

Die Runtime ruft den registrierten UO-Befehl auf und verpackt das Brückenergebnis als Integer, String oder Array.

Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) = Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; Funktion ExecuteStealthCompatibility.

2. StartScript

Die Brücke verwendet den Ausführungsmanager dieses Clients.

Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade, ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze Skripte können vor dem Lesen der Anzahl schon enden.

Projektquelle: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; Funktion StartScript.

3. StartScript

Path.GetFullPath -> File.ReadAllText -> DiscoverProcedures -> SelectFileEntryPoint -> RunProcedure -> GetScriptsCount

Indizes sind aktuelle Positionen in Startreihenfolge. Starts und Stopps können Positionen verschieben. Einzelne Aufrufe bilden keinen atomaren Gesamtschnappschuss; vor späteren Steuerbefehlen neu lesen.

Projektquelle: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; Funktion StartScript.

Das Schließen der Basic IDE entfernt aktive Ausführungen nicht. Diese Befehle betreffen diesen Client, keine anderen Clients oder Windows-Prozesse.

Beispiele

Erster Aufruf und Ergebnis

# Erster Aufruf und Ergebnis
#
# Lädt eine Basic-Datei und fordert deren öffentliche Sub Main an.
#
# Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
# Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.

SUB Main()
    # Sub Main ausführen. Übergebene 0 ist ein Index; leere Klammern bedeuten keine Argumente.
    # Print-Texte sind Beispielmeldungen.
    # Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade,
    # ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch
    # stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze
    # Skripte können vor dem Lesen der Anzahl schon enden.
    # Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
    # Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
    # Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses
    # Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die
    # Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

    Dim count=UO.StartScript("Scripts/Worker.bas")
    If count=65535 Then
        UO.Print("launch failed")
    Else
        UO.Print("Active executions: " & CStr(count))
    End If
END SUB

Erläuterung der Parameter und Ausführung:

  • Sub Main ausführen. Übergebene 0 ist ein Index; leere Klammern bedeuten keine Argumente. Print-Texte sind Beispielmeldungen.
  • Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade, ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze Skripte können vor dem Lesen der Anzahl schon enden.
  • Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) = Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
  • Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

Schleife oder Bedingung

# Schleife oder Bedingung
#
# Lädt eine Basic-Datei und fordert deren öffentliche Sub Main an.
#
# Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
# Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.

SUB Main()
    # Eigenständiges Beispiel mit mehreren Befehlen. Arrayindizes beginnen bei null; vor dem Zugriff
    # die Länge prüfen. Wait(250) wartet gegebenenfalls 250 Millisekunden.
    # Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade,
    # ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch
    # stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze
    # Skripte können vor dem Lesen der Anzahl schon enden.
    # Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
    # Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
    # Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses
    # Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die
    # Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

    Dim count=UO.StartScript("Scripts/My Worker.bas")
    If count<>65535 Then
        Dim indices=UO.GetScriptsList()
        For Each index In indices
            UO.Print(CStr(index) & ": " & UO.GetScriptPath(index))
        Next
    End If
END SUB

Erläuterung der Parameter und Ausführung:

  • Eigenständiges Beispiel mit mehreren Befehlen. Arrayindizes beginnen bei null; vor dem Zugriff die Länge prüfen. Wait(250) wartet gegebenenfalls 250 Millisekunden.
  • Die genannten Worker.bas-Dateien zuvor separat erstellen. Ungültige/unlesbare Pfade, ungeeignete Main, deaktiviertes Basic oder abgelehnte Parallelstarts scheitern. Ein noch stoppender Lauf kann einen verzögerten Neustart bewirken; Annahme ist kein Abschluss. Kurze Skripte können vor dem Lesen der Anzahl schon enden.
  • Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) = Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
  • Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

Vollständige Hilfsfunktion

# Vollständige Hilfsfunktion
#
# Lädt eine Basic-Datei und fordert deren öffentliche Sub Main an.
#
# Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
# Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.

SUB Main()
    # Die vollständige Funktion steht unter Main. Ihre Parameter und Rückgaben sind vom verwendeten
    # API-Befehl zu unterscheiden.
    # TryStartBasic vergleicht mit 65535 und liefert true/false. Es wartet nicht auf Abschluss und
    # macht aus der Anzahl keinen Index.
    # Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) =
    # Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
    # Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses
    # Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die
    # Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

    If TryStartBasic("Scripts/Worker.bas") Then
        UO.Print("launch accepted")
    Else
        UO.Print("check file, Main and execution settings")
    End If
END SUB

Function TryStartBasic(fileName) As Boolean
    Dim count=UO.StartScript(fileName)
    Return count<>65535
End Function

Erläuterung der Parameter und Ausführung:

  • Die vollständige Funktion steht unter Main. Ihre Parameter und Rückgaben sind vom verwendeten API-Befehl zu unterscheiden.
  • TryStartBasic vergleicht mit 65535 und liefert true/false. Es wartet nicht auf Abschluss und macht aus der Anzahl keinen Index.
  • Integer: Anzahl aktiver Ausführungen nach angenommener Startanforderung; 65535 (0xFFFF) = Startfehler. Kein neuer Skriptindex, Boolean oder Abschlussnachweis.
  • Erforderlicher String ScriptPath. Relative Pfade beginnen im AutoLoad-Verzeichnis dieses Clients; absolute Pfade sind erlaubt. Pfade mit Leerzeichen in Anführungszeichen setzen. Die Datei benötigt unterstütztes Basic und eine öffentliche Sub Main ohne erforderliche Argumente.

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic