Skip to content

API UO FunRunning it

Codex edited this page Oct 3, 2026 · 1 revision

UO.FunRunning

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

UO.CallSub · UO.FunRunning · UO.SubExists

ClassicUO • Runtime API

Verifica se la procedura ha un’esecuzione attiva, anche in pausa. Evita di riavviare un monitor esistente.

Sintassi esatta

UO.FunRunning(subrutineName:String) -> Integer

Parametri

  • subrutineName — String subrutineName obbligatorio: nome Sub/Function del catalogo, per esempio WeightWatch. Non percorso, file, indice, codice o etichetta modificata con SetScriptName. Ignora maiuscole/minuscole ma non elimina spazi. Non può passare argomenti alla procedura.

Restituisce

Integer: 1 (True) se l’esecuzione esiste e non è annullata, anche in pausa manuale o per disconnessione; 0 (False) se assente, non avviata, terminata o in annullamento. Validi If UO.FunRunning(name), = 1 e = True. GetScriptState distingue attività (1) e pausa (2).

Comportamento

  • Ricerca solo nel catalogo della sessione. Nomi duplicati selezionano la prima corrispondenza: usare nomi univoci. Questi comandi non caricano file sconosciuti e non cercano sul disco.
  • CallSub fornisce zero argomenti. Private, errori di sintassi, parametri obbligatori, Basic disattivato o regola della singola procedura possono impedire l’avvio; controllare stato/errori IDE. Una nuova chiamata non duplica né riprende un’esecuzione attiva. Dopo annullamento può attendere la pulizia. Il controllore non attende la fine dell’attività.
  • FunRunning usa nome originale e chiave della procedura, non un’etichetta rinominata. La pausa conserva l’esecuzione e restituisce 1. L’annullamento restituisce 0 anche durante la pulizia. Controllo e chiamata successiva non sono atomici: l’attività può finire nel frattempo.
  • SubExists può dare 1 anche per definizioni Private o errate. Fermare l’attività o chiudere la scheda non elimina necessariamente la voce del catalogo. Ricaricare un file modificato rimuove le definizioni obsolete. Una funzione caricata solo in un runtime separato può non essere registrata nel gestore.

Funzioni interne: dalla chiamata al risultato

Sono passaggi reali dell’implementazione; i nomi C# non sono comandi UO aggiuntivi. Tutte le funzioni ausiliarie Basic eseguibili sono definite negli esempi.

1. FunRunning

String subrutineName obbligatorio: nome Sub/Function del catalogo, per esempio WeightWatch. Non percorso, file, indice, codice o etichetta modificata con SetScriptName. Ignora maiuscole/minuscole ma non elimina spazi. Non può passare argomenti alla procedura.

Integer: 1 (True) se l’esecuzione esiste e non è annullata, anche in pausa manuale o per disconnessione; 0 (False) se assente, non avviata, terminata o in annullamento. Validi If UO.FunRunning(name), = 1 e = True. GetScriptState distingue attività (1) e pausa (2).

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione FunRunning.

2. FindProcedureByName

Ricerca solo nel catalogo della sessione. Nomi duplicati selezionano la prima corrispondenza: usare nomi univoci. Questi comandi non caricano file sconosciuti e non cercano sul disco.

SubExists può dare 1 anche per definizioni Private o errate. Fermare l’attività o chiudere la scheda non elimina necessariamente la voce del catalogo. Ricaricare un file modificato rimuove le definizioni obsolete. Una funzione caricata solo in un runtime separato può non essere registrata nel gestore.

Sorgente del progetto: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; funzione FindProcedureByName.

3. FunRunning

Verifica se la procedura ha un’esecuzione attiva, anche in pausa. Evita di riavviare un monitor esistente.

FunRunning usa nome originale e chiave della procedura, non un’etichetta rinominata. La pausa conserva l’esecuzione e restituisce 1. L’annullamento restituisce 0 anche durante la pulizia. Controllo e chiamata successiva non sono atomici: l’attività può finire nel frattempo.

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

Sono passaggi reali dell’implementazione; i nomi C# non sono comandi UO aggiuntivi. Tutte le funzioni ausiliarie Basic eseguibili sono definite negli esempi.

Esempi

Avviare solo senza esecuzione attiva

# Avviare solo senza esecuzione attiva
#
# Verifica se la procedura ha un’esecuzione attiva, anche in pausa. Evita di riavviare un
# monitor esistente.
#
# Integer: 1 (True) se l’esecuzione esiste e non è annullata, anche in pausa manuale o per
# disconnessione; 0 (False) se assente, non avviata, terminata o in annullamento. Validi If
# UO.FunRunning(name), = 1 e = True. GetScriptState distingue attività (1) e pausa (2).

SUB Main()
    # FunRunning = 0 permette la richiesta. La pausa restituisce 1 e non viene rimossa.
    # Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le
    # procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana,
    # Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo.
    # Consentire procedure simultanee per le due attività.

    If Not UO.FunRunning("WeightWatch") Then
        UO.CallSub("WeightWatch")
    End If
END SUB

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

Spiegazione dei parametri e dell’esecuzione:

  • FunRunning = 0 permette la richiesta. La pausa restituisce 1 e non viene rimossa.
  • Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana, Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo. Consentire procedure simultanee per le due attività.

Distinguere attività e pausa

# Distinguere attività e pausa
#
# Verifica se la procedura ha un’esecuzione attiva, anche in pausa. Evita di riavviare un
# monitor esistente.
#
# Integer: 1 (True) se l’esecuzione esiste e non è annullata, anche in pausa manuale o per
# disconnessione; 0 (False) se assente, non avviata, terminata o in annullamento. Validi If
# UO.FunRunning(name), = 1 e = True. GetScriptState distingue attività (1) e pausa (2).

SUB Main()
    # NamedRunState cerca l’etichetta WeightWatch e restituisce GetScriptState: 1, 2 o 0. Richiede
    # etichetta unica invariata e lista stabile. Dopo SetScriptName cercare nuova etichetta o
    # percorso; FunRunning usa sempre il nome sorgente.
    # Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le
    # procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana,
    # Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo.
    # Consentire procedure simultanee per le due attività.

    If UO.FunRunning("WeightWatch") Then
        Return NamedRunState("WeightWatch")
    End If
    Return 0
END SUB

Function NamedRunState(name) As Integer
    Dim indices = UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptName(index) = name Then
            Return UO.GetScriptState(index)
        End If
    Next
    Return 0
End Function

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

Spiegazione dei parametri e dell’esecuzione:

  • NamedRunState cerca l’etichetta WeightWatch e restituisce GetScriptState: 1, 2 o 0. Richiede etichetta unica invariata e lista stabile. Dopo SetScriptName cercare nuova etichetta o percorso; FunRunning usa sempre il nome sorgente.
  • Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana, Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo. Consentire procedure simultanee per le due attività.

Fermare un solo monitor

# Fermare un solo monitor
#
# Verifica se la procedura ha un’esecuzione attiva, anche in pausa. Evita di riavviare un
# monitor esistente.
#
# Integer: 1 (True) se l’esecuzione esiste e non è annullata, anche in pausa manuale o per
# disconnessione; 0 (False) se assente, non avviata, terminata o in annullamento. Validi If
# UO.FunRunning(name), = 1 e = True. GetScriptState distingue attività (1) e pausa (2).

SUB Main()
    # Terminate riceve il nome originale WeightWatch e annulla solo quell’attività, anche in pausa.
    # Main deve essere un controllore separato.
    # Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le
    # procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana,
    # Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo.
    # Consentire procedure simultanee per le due attività.

    If UO.FunRunning("WeightWatch") Then
        UO.Terminate("WeightWatch")
    End If
END SUB

Sub WeightWatch()
    Dim sample
    For sample = 1 To 3
        If UO.Connected() Then
            UO.Print("Weight: " & CStr(UO.Weight()))
        End If
        UO.Wait(1000)
    Next
End Sub

Spiegazione dei parametri e dell’esecuzione:

  • Terminate riceve il nome originale WeightWatch e annulla solo quell’attività, anche in pausa. Main deve essere un controllore separato.
  • Salvare ogni esempio separatamente, caricarlo in IDE/gestore e avviare Main per registrare le procedure. WeightWatch/ManaWatch sono definite completamente: tre misure di peso/mana, Wait(1000) = 1000 ms, output solo nel mondo. Monitor finiti; le pause allungano il tempo. Consentire procedure simultanee per le due attività.

Clone this wiki locally