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

UO.GetScriptsList

ClassicUO • Runtime API

Liefert die aktuellen numerischen Skriptindizes.

Genaue Syntax

UO.GetScriptsList() -> Array

Parameter

Keine Parameter.

Rückgabewert

Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen oder Textdatensätze.

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.
  • Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.

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.

Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen oder Textdatensätze.

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

2. GetScriptsList

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

Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.

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

3. GetScriptsList

Enumerable.Range(0, GetScriptsCount()).ToArray()

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

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
#
# Liefert die aktuellen numerischen Skriptindizes.
#
# Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
# oder Textdatensätze.

SUB Main()
    # Sub Main ausführen. Übergebene 0 ist ein Index; leere Klammern bedeuten keine Argumente.
    # Print-Texte sind Beispielmeldungen.
    # Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand
    # übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.
    # Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
    # oder Textdatensätze.

    Dim indices=UO.GetScriptsList()
    For Each index In indices
        UO.Print(CStr(index) & ": " & UO.GetScriptName(index))
    Next
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.
  • Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.
  • Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen oder Textdatensätze.

Schleife oder Bedingung

# Schleife oder Bedingung
#
# Liefert die aktuellen numerischen Skriptindizes.
#
# Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
# oder Textdatensätze.

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.
    # Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand
    # übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.
    # Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
    # oder Textdatensätze.

    Dim indices=UO.GetScriptsList()
    If GetArrayLength(indices)>0 Then
        Dim firstIndex=indices[0]
        UO.Print(UO.GetScriptPath(firstIndex))
    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.
  • Keine Argumente. Jedes numerische Element kann an den Getter für Name, Pfad oder Zustand übergeben werden. Änderungen am zurückgegebenen Array steuern keine Skripte.
  • Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen oder Textdatensätze.

Vollständige Hilfsfunktion

# Vollständige Hilfsfunktion
#
# Liefert die aktuellen numerischen Skriptindizes.
#
# Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
# oder Textdatensätze.

SUB Main()
    # Die vollständige Funktion steht unter Main. Ihre Parameter und Rückgaben sind vom verwendeten
    # API-Befehl zu unterscheiden.
    # FindNamedScript liefert den ersten aktuellen Index mit exakt passendem Anzeigenamen oder -1.
    # Namen können doppelt vorkommen; Positionen können sich ändern.
    # Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen
    # oder Textdatensätze.

    Dim index=FindNamedScript("Mining")
    If index>=0 Then
        UO.Print(CStr(index))
    Else
        UO.Print("Name not found")
    End If
END SUB

Function FindNamedScript(wanted) As Integer
    Dim indices=UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptName(index)=wanted Then
            Return index
        End If
    Next
    Return -1
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.
  • FindNamedScript liefert den ersten aktuellen Index mit exakt passendem Anzeigenamen oder -1. Namen können doppelt vorkommen; Positionen können sich ändern.
  • Array aus Integer: Indizes 0..N-1 oder ein leeres Array. Die Elemente sind Zahlen, keine Namen oder Textdatensätze.

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

Basic