Skip to content

API wait it

Codex edited this page Sep 26, 2026 · 1 revision

wait

ClassicUO / Basic IDE

Home · API · Journal

Sospende lo script corrente per un numero di millisecondi. Usare tra controlli ripetuti per evitare cicli senza pausa.

Sintassi esatta

wait(ms:Integer) -> Unit

Parametri

  • ms — Millisecondi interi: 1000 è un secondo. Usare 0..2147483647. Non sono passi, secondi o un timeout di conferma del server.

Restituisce

Unit: nessun risultato. Chiamare su una riga separata. La fine dell’attesa non prova che un oggetto si sia mosso, un incantesimo sia finito o la connessione sia riuscita; controllare lo stato separatamente.

Comportamento

  • Attende la procedura corrente, mentre gioco e altri script proseguono. L’annullamento dello script interrompe l’attesa tramite il token. Pianificazione di sistema e gestori possono allungare il tempo effettivo; nessuna garanzia sui tempi esatti dei fotogrammi. Per attività asincrone Basic offre Delay con Await.
  • UO.Wait divide il tempo positivo in intervalli fino a 25 ms, controllando gli eventi UO tra essi. wait e sleep chiamano la stessa funzione Basic e gestiscono timer e callback presenti, ma non distribuiscono direttamente i vecchi eventi UO. Con UO.SetEvent non sono completamente intercambiabili.
  • Zero non crea una vera pausa e non serve a regolare un ciclo veloce. Il tempo negativo non significa infinito: UO.Wait lo limita a 0; wait/sleep possono rifiutarlo con callback attivi, mentre il ponte client senza di essi non attende. Usare solo tempi non negativi.
  • Basic.WaitUntil · Basic.Timers · Delay

Funzioni interne: dalla chiamata al risultato

Sospende lo script corrente per un numero di millisecondi. Usare tra controlli ripetuti per evitare cicli senza pausa.

1. Wait

Millisecondi interi: 1000 è un secondo. Usare 0..2147483647. Non sono passi, secondi o un timeout di conferma del server.

UO.Wait divide il tempo positivo in intervalli fino a 25 ms, controllando gli eventi UO tra essi. wait e sleep chiamano la stessa funzione Basic e gestiscono timer e callback presenti, ma non distribuiscono direttamente i vecchi eventi UO. Con UO.SetEvent non sono completamente intercambiabili.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; funzione Wait.

2. WaitWithTimers

Attende la procedura corrente, mentre gioco e altri script proseguono. L’annullamento dello script interrompe l’attesa tramite il token. Pianificazione di sistema e gestori possono allungare il tempo effettivo; nessuna garanzia sui tempi esatti dei fotogrammi. Per attività asincrone Basic offre Delay con Await.

Zero non crea una vera pausa e non serve a regolare un ciclo veloce. Il tempo negativo non significa infinito: UO.Wait lo limita a 0; wait/sleep possono rifiutarlo con callback attivi, mentre il ponte client senza di essi non attende. Usare solo tempi non negativi.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/Interpreter.Timers.cs; funzione WaitWithTimers.

3. Wait

Millisecondi interi: 1000 è un secondo. Usare 0..2147483647. Non sono passi, secondi o un timeout di conferma del server.

Attende la procedura corrente, mentre gioco e altri script proseguono. L’annullamento dello script interrompe l’attesa tramite il token. Pianificazione di sistema e gestori possono allungare il tempo effettivo; nessuna garanzia sui tempi esatti dei fotogrammi. Per attività asincrone Basic offre Delay con Await.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Wait.

Esempi

wait — 1

# wait — 1
#
# Sospende lo script corrente per un numero di millisecondi. Usare tra controlli ripetuti per
# evitare cicli senza pausa.
#
# Unit: nessun risultato. Chiamare su una riga separata. La fine dell’attesa non prova che un
# oggetto si sia mosso, un incantesimo sia finito o la connessione sia riuscita; controllare lo
# stato separatamente.

SUB Main()
    # 250 è un quarto di secondo. L’istruzione successiva segue l’attesa; Delay complete è testo di
    # esempio, non un risultato restituito.

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

Spiegazione dei parametri e dell’esecuzione:

  • 250 è un quarto di secondo. L’istruzione successiva segue l’attesa; Delay complete è testo di esempio, non un risultato restituito.

wait — 2

# wait — 2
#
# Sospende lo script corrente per un numero di millisecondi. Usare tra controlli ripetuti per
# evitare cicli senza pausa.
#
# Unit: nessun risultato. Chiamare su una riga separata. La fine dell’attesa non prova che un
# oggetto si sia mosso, un incantesimo sia finito o la connessione sia riuscita; controllare lo
# stato separatamente.

SUB Main()
    # WaitForOnline è definita interamente. 20 permette al massimo venti pause da 250 ms. Controlla
    # la connessione prima delle pause e dopo l’ultima. L’ausilio restituisce Connected (1/0);
    # l’attesa non restituisce valori e non apre connessioni.

    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

Spiegazione dei parametri e dell’esecuzione:

  • WaitForOnline è definita interamente. 20 permette al massimo venti pause da 250 ms. Controlla la connessione prima delle pause e dopo l’ultima. L’ausilio restituisce Connected (1/0); l’attesa non restituisce valori e non apre connessioni.

wait — 3

# wait — 3
#
# Sospende lo script corrente per un numero di millisecondi. Usare tra controlli ripetuti per
# evitare cicli senza pausa.
#
# Unit: nessun risultato. Chiamare su una riga separata. La fine dell’attesa non prova che un
# oggetto si sia mosso, un incantesimo sia finito o la connessione sia riuscita; controllare lo
# stato separatamente.

SUB Main()
    # Il ciclo legge il peso esattamente tre volte, con due pause da 500 ms e nessuna pausa finale.
    # Stampa la prima lettura e i cambiamenti. previous conserva un valore di confronto, senza
    # cambiare il peso di gioco.

    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

Spiegazione dei parametri e dell’esecuzione:

  • Il ciclo legge il peso esattamente tre volte, con due pause da 500 ms e nessuna pausa finale. Stampa la prima lettura e i cambiamenti. previous conserva un valore di confronto, senza cambiare il peso di gioco.

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

Clone this wiki locally