-
Notifications
You must be signed in to change notification settings - Fork 0
API UO CallSub it
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
Richiede un’attività separata per una procedura nota al gestore, ad esempio un monitor indipendente. L’avvio è asincrono, diverso da una normale chiamata Basic che attende il risultato.
UO.CallSub(subrutineName:String) -> Unit
-
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.
Unit: nessun valore, risultato di funzione o conferma di avvio. Un nome sconosciuto non avvia nulla. Per l’esecuzione sincrona usare una normale chiamata Basic MyFunction(...).
- L’Autoload selezionato ha priorità per nomi uguali. Più definizioni nello stesso file sono ambigue; un helper caricato separatamente deve avere un nome univoco. Le copie di riserva non vengono scelte in ordine di file. CallSub, come UO.Exec("exec Nome"), legge l’Autoload selezionato dal disco prima dell’avvio. La sostituzione vale dalla chiamata successiva; un file vuoto o eliminato segnala un errore anziché eseguire codice memorizzato o una copia. Gli helper univoci caricati separatamente conservano un percorso di avvio distinto. La chiamata attende la decisione di avvio, non la fine della nuova attività.
- 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.
Sono passaggi reali dell’implementazione; i nomi C# non sono comandi UO aggiuntivi. Tutte le funzioni ausiliarie Basic eseguibili sono definite negli esempi.
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.
Unit: nessun valore, risultato di funzione o conferma di avvio. Un nome sconosciuto non avvia nulla. Per l’esecuzione sincrona usare una normale chiamata Basic MyFunction(...).
Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; funzione CallSub.
L’Autoload selezionato ha priorità per nomi uguali. Più definizioni nello stesso file sono ambigue; un helper caricato separatamente deve avere un nome univoco. Le copie di riserva non vengono scelte in ordine di file. CallSub, come UO.Exec("exec Nome"), legge l’Autoload selezionato dal disco prima dell’avvio. La sostituzione vale dalla chiamata successiva; un file vuoto o eliminato segnala un errore anziché eseguire codice memorizzato o una copia. Gli helper univoci caricati separatamente conservano un percorso di avvio distinto. La chiamata attende la decisione di avvio, non la fine della nuova attività.
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 RunNamedProcedure.
Richiede un’attività separata per una procedura nota al gestore, ad esempio un monitor indipendente. L’avvio è asincrono, diverso da una normale chiamata Basic che attende il risultato.
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à.
Sorgente del progetto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; funzione Exec.
Sono passaggi reali dell’implementazione; i nomi C# non sono comandi UO aggiuntivi. Tutte le funzioni ausiliarie Basic eseguibili sono definite negli esempi.
# Avviare e continuare Main
#
# Richiede un’attività separata per una procedura nota al gestore, ad esempio un monitor
# indipendente. L’avvio è asincrono, diverso da una normale chiamata Basic che attende il
# risultato.
#
# Unit: nessun valore, risultato di funzione o conferma di avvio. Un nome sconosciuto non avvia
# nulla. Per l’esecuzione sincrona usare una normale chiamata Basic MyFunction(...).
SUB Main()
# WeightWatch è definita sotto. Main restituisce 77 senza attendere tre misure; 77 appartiene a
# Main, non a CallSub.
# 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à.
UO.CallSub("WeightWatch")
Return 77
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 SubSpiegazione dei parametri e dell’esecuzione:
- WeightWatch è definita sotto. Main restituisce 77 senza attendere tre misure; 77 appartiene a Main, non a CallSub.
- 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à.
# Conservare un’attività esistente
#
# Richiede un’attività separata per una procedura nota al gestore, ad esempio un monitor
# indipendente. L’avvio è asincrono, diverso da una normale chiamata Basic che attende il
# risultato.
#
# Unit: nessun valore, risultato di funzione o conferma di avvio. Un nome sconosciuto non avvia
# nulla. Per l’esecuzione sincrona usare una normale chiamata Basic MyFunction(...).
SUB Main()
# StartIfIdle controlla definizione e attività. False: nessuna richiesta; True: solo richiesta
# CallSub, non conferma di avvio o completamento.
# 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à.
Return StartIfIdle("WeightWatch")
END SUB
Function StartIfIdle(name) As Boolean
If Not UO.SubExists(name) Then
Return False
End If
If UO.FunRunning(name) Then
Return False
End If
UO.CallSub(name)
Return True
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 SubSpiegazione dei parametri e dell’esecuzione:
- StartIfIdle controlla definizione e attività. False: nessuna richiesta; True: solo richiesta CallSub, non conferma di avvio o completamento.
- 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à.
# Due monitor indipendenti
#
# Richiede un’attività separata per una procedura nota al gestore, ad esempio un monitor
# indipendente. L’avvio è asincrono, diverso da una normale chiamata Basic che attende il
# risultato.
#
# Unit: nessun valore, risultato di funzione o conferma di avvio. Un nome sconosciuto non avvia
# nulla. Per l’esecuzione sincrona usare una normale chiamata Basic MyFunction(...).
SUB Main()
# WeightWatch e ManaWatch non condividono variabili locali. L’ordine dei messaggi non è
# garantito.
# 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à.
UO.CallSub("WeightWatch")
UO.CallSub("ManaWatch")
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
Sub ManaWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Mana: " & CStr(UO.Mana()))
End If
UO.Wait(1000)
Next
End SubSpiegazione dei parametri e dell’esecuzione:
- WeightWatch e ManaWatch non condividono variabili locali. L’ordine dei messaggi non è garantito.
- 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à.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь