Skip to content

API wait de

Codex edited this page Sep 26, 2026 · 1 revision

wait

ClassicUO / Basic IDE

Home · API · Journal

Hält das aktuelle Skript für eine Anzahl Millisekunden an. Zwischen Zustandsprüfungen verwenden, um eine ständig laufende Schleife zu vermeiden.

Genaue Syntax

wait(ms:Integer) -> Unit

Parameter

  • ms — Ganzzahlige Millisekunden: 1000 ist eine Sekunde. 0..2147483647 verwenden. Keine Schritte, Sekunden oder Zeitgrenze für eine Serverbestätigung.

Rückgabewert

Unit: kein Ergebnis. Als eigene Anweisung aufrufen. Eine abgelaufene Wartezeit bestätigt weder Gegenstandsbewegung noch Zauberabschluss oder Verbindung; den Zustand gesondert prüfen.

Verhalten

  • Die aktuelle Prozedur wartet, während Spielschleife und andere Skripte weiterlaufen. Skriptabbruch unterbricht die Wartezeit über das Abbruchtoken. Systemplanung und Handler können die tatsächliche Dauer verlängern; keine Garantie für exakte Frame-Zeiten. Für asynchrone Aufgaben gibt es Basic Delay mit Await.
  • UO.Wait zerlegt positive Zeiten in Abschnitte bis 25 ms und prüft dazwischen UO-Ereignisse. wait und sleep rufen dieselbe Basic-Funktion auf und bedienen vorhandene Engine-Timer und Callbacks, lösen aber selbst keine alten UO-Ereignisse aus. Bei UO.SetEvent sind die Namen nicht vollständig austauschbar.
  • Null erzeugt keine echte Verzögerung und eignet sich nicht zur Taktung einer schnellen Schleife. Negative Zeit bedeutet nicht unendlich: UO.Wait begrenzt sie auf 0; wait/sleep können sie bei aktiven Callbacks ablehnen, während die Client-Brücke ohne diese nicht wartet. Nur nichtnegative Werte verwenden.
  • Basic.WaitUntil · Basic.Timers · Delay

Interne Funktionen: vom Aufruf zum Ergebnis

Hält das aktuelle Skript für eine Anzahl Millisekunden an. Zwischen Zustandsprüfungen verwenden, um eine ständig laufende Schleife zu vermeiden.

1. Wait

Ganzzahlige Millisekunden: 1000 ist eine Sekunde. 0..2147483647 verwenden. Keine Schritte, Sekunden oder Zeitgrenze für eine Serverbestätigung.

UO.Wait zerlegt positive Zeiten in Abschnitte bis 25 ms und prüft dazwischen UO-Ereignisse. wait und sleep rufen dieselbe Basic-Funktion auf und bedienen vorhandene Engine-Timer und Callbacks, lösen aber selbst keine alten UO-Ereignisse aus. Bei UO.SetEvent sind die Namen nicht vollständig austauschbar.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; Funktion Wait.

2. WaitWithTimers

Die aktuelle Prozedur wartet, während Spielschleife und andere Skripte weiterlaufen. Skriptabbruch unterbricht die Wartezeit über das Abbruchtoken. Systemplanung und Handler können die tatsächliche Dauer verlängern; keine Garantie für exakte Frame-Zeiten. Für asynchrone Aufgaben gibt es Basic Delay mit Await.

Null erzeugt keine echte Verzögerung und eignet sich nicht zur Taktung einer schnellen Schleife. Negative Zeit bedeutet nicht unendlich: UO.Wait begrenzt sie auf 0; wait/sleep können sie bei aktiven Callbacks ablehnen, während die Client-Brücke ohne diese nicht wartet. Nur nichtnegative Werte verwenden.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/Interpreter.Timers.cs; Funktion WaitWithTimers.

3. Wait

Ganzzahlige Millisekunden: 1000 ist eine Sekunde. 0..2147483647 verwenden. Keine Schritte, Sekunden oder Zeitgrenze für eine Serverbestätigung.

Die aktuelle Prozedur wartet, während Spielschleife und andere Skripte weiterlaufen. Skriptabbruch unterbricht die Wartezeit über das Abbruchtoken. Systemplanung und Handler können die tatsächliche Dauer verlängern; keine Garantie für exakte Frame-Zeiten. Für asynchrone Aufgaben gibt es Basic Delay mit Await.

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

Beispiele

wait — 1

# wait — 1
#
# Hält das aktuelle Skript für eine Anzahl Millisekunden an. Zwischen Zustandsprüfungen
# verwenden, um eine ständig laufende Schleife zu vermeiden.
#
# Unit: kein Ergebnis. Als eigene Anweisung aufrufen. Eine abgelaufene Wartezeit bestätigt weder
# Gegenstandsbewegung noch Zauberabschluss oder Verbindung; den Zustand gesondert prüfen.

SUB Main()
    # 250 ist eine Viertelsekunde. Die nächste Anweisung folgt danach; Delay complete ist
    # Beispieltext und kein Rückgabewert.

    wait(250)
    UO.Print("Delay complete")
END SUB

Erläuterung der Parameter und Ausführung:

  • 250 ist eine Viertelsekunde. Die nächste Anweisung folgt danach; Delay complete ist Beispieltext und kein Rückgabewert.

wait — 2

# wait — 2
#
# Hält das aktuelle Skript für eine Anzahl Millisekunden an. Zwischen Zustandsprüfungen
# verwenden, um eine ständig laufende Schleife zu vermeiden.
#
# Unit: kein Ergebnis. Als eigene Anweisung aufrufen. Eine abgelaufene Wartezeit bestätigt weder
# Gegenstandsbewegung noch Zauberabschluss oder Verbindung; den Zustand gesondert prüfen.

SUB Main()
    # WaitForOnline ist vollständig definiert. 20 erlaubt höchstens zwanzig Pausen von je 250 ms.
    # Vor den Pausen und nach der letzten wird die Verbindung geprüft. Der Helfer liefert Connected
    # (1/0); der Wartebefehl liefert nichts und stellt keine Verbindung her.

    RETURN WaitForOnline(20)
END SUB

SUB WaitForOnline(checks)
    WHILE checks > 0
        IF UO.Connected() THEN
            RETURN 1
        END IF
        wait(250)
        checks = checks - 1
    WEND
    RETURN UO.Connected()
END SUB

Erläuterung der Parameter und Ausführung:

  • WaitForOnline ist vollständig definiert. 20 erlaubt höchstens zwanzig Pausen von je 250 ms. Vor den Pausen und nach der letzten wird die Verbindung geprüft. Der Helfer liefert Connected (1/0); der Wartebefehl liefert nichts und stellt keine Verbindung her.

wait — 3

# wait — 3
#
# Hält das aktuelle Skript für eine Anzahl Millisekunden an. Zwischen Zustandsprüfungen
# verwenden, um eine ständig laufende Schleife zu vermeiden.
#
# Unit: kein Ergebnis. Als eigene Anweisung aufrufen. Eine abgelaufene Wartezeit bestätigt weder
# Gegenstandsbewegung noch Zauberabschluss oder Verbindung; den Zustand gesondert prüfen.

SUB Main()
    # Die Schleife liest das Gewicht genau dreimal mit zwei Pausen von 500 ms dazwischen, ohne
    # abschließende Pause. Ausgabe beim ersten Lesen und bei Änderungen. previous speichert einen
    # Vergleichswert und verändert nicht das Spielgewicht.

    VAR previous = -1
    VAR checks = 0
    WHILE checks < 3
        VAR weight = UO.Weight()
        IF weight <> previous THEN
            UO.Print("Weight: " + CStr(weight))
            previous = weight
        END IF
        checks = checks + 1
        IF checks < 3 THEN
            wait(500)
        END IF
    WEND
END SUB

Erläuterung der Parameter und Ausführung:

  • Die Schleife liest das Gewicht genau dreimal mit zwei Pausen von 500 ms dazwischen, ohne abschließende Pause. Ausgabe beim ersten Lesen und bei Änderungen. previous speichert einen Vergleichswert und verändert nicht das Spielgewicht.

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

Clone this wiki locally