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

UO.GetScriptState

ClassicUO • Runtime API

Liest den Ausführungszustand für einen Index.

Genaue Syntax

UO.GetScriptState(ScriptIndex:Any) -> Integer

Parameter

  • ScriptIndex — Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

Rückgabewert

Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit 1 oder 2 vergleichen.

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.
  • Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1 beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.

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-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit 1 oder 2 vergleichen.

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

2. GetScriptState

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

Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1 beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.

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

3. GetScriptState

script == null ? 0 : script.IsPaused ? 2 : 1

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

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
#
# Liest den Ausführungszustand für einen Index.
#
# Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
# 1 oder 2 vergleichen.

SUB Main()
    # Sub Main ausführen. Übergebene 0 ist ein Index; leere Klammern bedeuten keine Argumente.
    # Print-Texte sind Beispielmeldungen.
    # Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1
    # beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.
    # Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
    # 1 oder 2 vergleichen.
    # Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative
    # oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine
    # Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

    Dim state=UO.GetScriptState(0)
    Select Case state
    Case 1
        UO.Print("running")
    Case 2
        UO.Print("paused")
    Case Else
        UO.Print("unknown")
    End Select
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.
  • Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1 beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.
  • Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit 1 oder 2 vergleichen.
  • Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

Schleife oder Bedingung

# Schleife oder Bedingung
#
# Liest den Ausführungszustand für einen Index.
#
# Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
# 1 oder 2 vergleichen.

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.
    # Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1
    # beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.
    # Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
    # 1 oder 2 vergleichen.
    # Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative
    # oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine
    # Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

    Dim paused=0
    Dim indices=UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptState(index)=2 Then
            paused+=1
        End If
    Next
    UO.Print(CStr(paused))
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.
  • Manuelle/Debugger-Pause und konfigurierte Pause bei Verbindungsabbruch zählen. Zustand 1 beweist weder aktuelle CPU-Arbeit noch eingehende Serverdaten.
  • Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit 1 oder 2 vergleichen.
  • Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

Vollständige Hilfsfunktion

# Vollständige Hilfsfunktion
#
# Liest den Ausführungszustand für einen Index.
#
# Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
# 1 oder 2 vergleichen.

SUB Main()
    # Die vollständige Funktion steht unter Main. Ihre Parameter und Rückgaben sind vom verwendeten
    # API-Befehl zu unterscheiden.
    # IsScriptActive bildet 1 und 2 auf true, 0 auf false ab. GetScriptState selbst bleibt ein
    # numerischer Zustandscode.
    # Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit
    # 1 oder 2 vergleichen.
    # Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative
    # oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine
    # Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

    If IsScriptActive(0)=True Then
        UO.Print("running or paused")
    Else
        UO.Print("not active")
    End If
END SUB

Function IsScriptActive(index) As Boolean
    Dim state=UO.GetScriptState(index)
    Return state=1 OrElse state=2
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.
  • IsScriptActive bildet 1 und 2 auf true, 0 auf false ab. GetScriptState selbst bleibt ein numerischer Zustandscode.
  • Integer-Zustand: 0 = fehlt/unbekannt, 1 = läuft, 2 = pausiert. Kein Boolean: ausdrücklich mit 1 oder 2 vergleichen.
  • Erforderlicher ganzzahliger ScriptIndex ab null aus einem aktuellen GetScriptsList. Negative oder fehlende Indizes liefern den dokumentierten leeren/unbekannten Wert. Keine Gegenstands-Serial, Prozedurnamen oder IDE-Lauf-ID übergeben.

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

Basic