Repository navigation
IT UO Topic gumps
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Home · C# · IDE · UO API · A–Z · Esempi · Lingue
Lettura delle finestre del server e invio di risposte: pulsanti, caselle di controllo, pulsanti di opzione e campi. La finestra ID, il proprietario serial e l'indice della finestra aperta non sono intercambiabili.
| Argomento | Comandi e spiegazioni |
|---|---|
| GetGump | UO.GetGump |
| GetGumpInfo | UO.GetGumpInfo |
| Gump ID / Serial | UO.GetGumpID · UO.GetGumpSerial |
| Text Lines | UO.GetGumpTextLines · UO.GetGumpFullLines · UO.GetGumpShortLines |
| Buttons | UO.GetGumpButtonsDescription · UO.NumGumpButton |
| CheckBox | UO.NumGumpCheckBox · UO.GumpAutoCheckBox |
| RadioButton | UO.NumGumpRadiobutton · UO.GumpAutoRadiobutton |
| TextEntry | UO.NumGumpTextEntry · UO.GumpAutoTextEntry |
| WaitGump | UO.WaitGump |
| SelectGump | UO.SelectGump |
| SendGumpSelect | UO.SendGumpSelect |
| Ignore Gumps | UO.AddGumpIgnoreByID · UO.AddGumpIgnoreBySerial · UO.ClearGumpsIgnore |
| Close Gump | UO.IsGumpCanBeClosed · UO.CloseClientGump · UO.CancelGump |
UO.GetGump · UO.GetGumpID · UO.GetGumpSerial · UO.GetGumpCount · UO.GetGumpsCount · UO.GetGumpInfo · UO.GetGumpButtonsDescription · UO.GetGumpFullLines · UO.GetGumpShortLines · UO.GetGumpTextLines · UO.GumpObject · UO.LastGump · UO.IsGump · UO.GumpExists · UO.IsGumpCanBeClosed
UO.NumGumpButton · UO.NumGumpCheckBox · UO.NumGumpRadiobutton · UO.NumGumpTextEntry · UO.GumpAutoCheckBox · UO.GumpAutoRadiobutton · UO.GumpAutoTextEntry · UO.WaitGump · UO.WaitGumpCheck · UO.WaitGumpEntry · UO.SelectGump · UO.SendGumpSelect · UO.SetGump
UO.AddGumpIgnoreByID · UO.AddGumpIgnoreBySerial · UO.ClearGumpsIgnore · UO.CancelGump · UO.CloseClientGump
Ogni carta comando ha diversi scenari indipendenti: codice diretto, funzioni e classi. Di seguito sono selezionati brevi scenari; restrizioni e un'analisi completa sono nelle carte.
Parametri, risultato e tutti gli scenari
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
UO.Print("Serial=" + Hex(info[0]));
UO.Print("GumpID=" + Hex(info[1]));
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri, risultato e tutti gli scenari
UO.WaitGump(100);
UO.UseObject("0x40001234");Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddGumpIgnoreByID(object? id);Aggiunge il gump numerico ID all'elenco delle eccezioni locali utilizzato da UO.GetGumpInfo.
-
idè un gump numerico ID che restituisceUO.GetGumpInfo.
void. L'aggiunta di ID non chiude la finestra né conferma che il server l'ha elaborato.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.AddGumpIgnoreByID");
UO.AddGumpIgnoreByID(123);Parametri e flusso di esecuzione:
- Elimina il gump con ID 123 dal risultato di UO.GetGumpInfo.
UO.AddGumpIgnoreByID(123);Parametri e flusso di esecuzione:
- Memorizza ID in una variabile prima di lanciare l'eccezione.
return RunScenario();
object? RunScenario()
{
var ignoredId = 123;
UO.AddGumpIgnoreByID(ignoredId);
return null;
}Parametri e flusso di esecuzione:
- Aggiungi un po' di ID; ogni eccezione influisce su GetGumpInfo.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddGumpIgnoreByID(123);
UO.AddGumpIgnoreByID(456);
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: id (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "addgumpignorebyid": state.IgnoredGumpIds.Add(Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddGumpIgnoreBySerial(object? serial);Aggiunge il serial gump all'elenco delle eccezioni locali utilizzato da UO.GetGumpInfo.
-
serialè un gump numerico serial che restituisceUO.GetGumpInfo.
void. L'aggiunta di serial non chiude la finestra né conferma che il server l'ha elaborato.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.AddGumpIgnoreBySerial");
UO.AddGumpIgnoreBySerial(1073741824);Parametri e flusso di esecuzione:
- Elimina il gump con serial 1073741824 dal risultato UO.GetGumpInfo.
UO.AddGumpIgnoreBySerial(1073741824);Parametri e flusso di esecuzione:
- Passa serial dalla variabile.
return RunScenario();
object? RunScenario()
{
var ignoredSerial = 1073741824;
UO.AddGumpIgnoreBySerial(ignoredSerial);
return null;
}Parametri e flusso di esecuzione:
- Elimina due gump serial dall'output di GetGumpInfo.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddGumpIgnoreBySerial(1073741824);
UO.AddGumpIgnoreBySerial(1073741825);
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: serial (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "addgumpignorebyserial": state.IgnoredGumpSerials.Add(Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.CancelGump();
void UO.CancelGump(object? gumpId);Chiude il gump del server selezionato tramite un risolutore compatibile CloseSimpleGump.
-
gumpId- Opzionale int/valore numerico. Il risolutore cerca prima un server/locale serial corrispondente, quindi l'indice Gump del server. Senza argomenti, viene passato -1 e viene selezionato l'ultimo gump.
void: nessun valore restituito.
- Un argomento denominato gumpId non garantisce di cercare solo ID. CloseGumpUnsafe per il server gump invia il pulsante 0, quindi elimina la finestra locale. Se il gump non viene trovato, non viene eseguita alcuna azione. Questo non è CancelMenu, né sta cancellando il WaitGump in sospeso.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.CancelGump");
UO.CancelGump();Parametri e flusso di esecuzione:
- Il modulo senza argomento seleziona l'ultimo server gump disponibile.
UO.CancelGump();Parametri e flusso di esecuzione:
- Viene utilizzato l'effettivo ID del primo gump; l'elenco potrebbe cambiare tra una chiamata e l'altra.
return RunScenario();
object? RunScenario()
{
var id = UO.GetGumpID(0);
if (Truth(id != 0))
{
UO.CancelGump(id);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il valore -1 seleziona esplicitamente l'ultimo gump nel risolutore.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.CancelGump(-1);
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: Nessun parametro.
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseSimpleGump:bridge.CloseSimpleGump(arguments.Length > 0 ? Arg(0) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "cancelgump": bridge.CloseSimpleGump(arguments.Length > 0 ? Arg(0) : -1); break;Parametri: gumpId (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseSimpleGump:bridge.CloseSimpleGump(arguments.Length > 0 ? Arg(0) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "cancelgump": bridge.CloseSimpleGump(arguments.Length > 0 ? Arg(0) : -1); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearGumpsIgnore();Cancella entrambi i set di runtime Gump ID e Gump serial ignorati.
Non ci sono parametri.
void: nessun valore restituito.
- Non chiude le finestre. Dopo aver cancellato, GetGumpInfo può nuovamente restituire un'istantanea del gump precedentemente ignorato.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.ClearGumpsIgnore");
UO.ClearGumpsIgnore();Parametri e flusso di esecuzione:
- Cancella entrambi i set di runtime Gump ID e Gump serial ignorati.
UO.ClearGumpsIgnore();Parametri e flusso di esecuzione:
- Rimuovi la regola di ignoranza aggiunta.
return RunScenario();
object? RunScenario()
{
UO.AddGumpIgnoreByID(0x1234);
UO.ClearGumpsIgnore();
return null;
}Parametri e flusso di esecuzione:
- La cancellazione di un set vuoto è accettabile e non crea una nuova impostazione.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearGumpsIgnore();
UO.ClearGumpsIgnore();
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: Nessun parametro.
Risultato: void / Unit.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "cleargumpsignore":
state.IgnoredGumpIds.Clear(); state.IgnoredGumpSerials.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.CloseClientGump(object? id);Rimuove i gump del server locale il cui ServerSerial corrisponde al ID passato.
-
id- int/numerico ID gump rispetto a ServerSerial. Questo non è un indice di elenco, né è locale serial.
void: nessun valore restituito.
- Scorre ServerGumpsUnsafe, crea uno snapshot di tutte le corrispondenze e chiama Dispose. Non invia il pulsante 0 o il risultato del modulo al server. Se non ci sono corrispondenze, non cambia nulla.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.CloseClientGump");
UO.CloseClientGump(UO.GetGumpID(0));Parametri e flusso di esecuzione:
- GetGumpID fornisce il server ID; CloseClientGump rimuove le finestre locali corrispondenti.
if (Truth(UO.GetGumpsCount() > 0))
{
var id = UO.GetGumpID(0);
UO.CloseClientGump(id);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Specificare ID del gump del server desiderato; nessuna corrispondenza è accettabile.
return RunScenario();
object? RunScenario()
{
var id = 0x12345678;
UO.CloseClientGump(id);
return null;
}Parametri e flusso di esecuzione:
- Dopo il primo Dispose, la seconda chiusura solitamente non trova più la finestra.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var id = UO.GetGumpID(0);
if (Truth(id != 0))
{
UO.CloseClientGump(id);
UO.CloseClientGump(id);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: id (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseClientGump:bridge.CloseClientGump(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "closeclientgump": bridge.CloseClientGump(Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGump(object? identifier);
dynamic UO.GetGump(object? gumpId, object? identifier);
dynamic UO.GetGump(object? gumpId, object? identifier, object? key);Legge un campo del gump del server selezionato. Consente di impostare esplicitamente il selettore della finestra.
-
gumpId- Opzionale prima int nelle forme (gumpId,identificatore) e (gumpId,identificatore,chiave). int o stringa numerica: cerca prima una corrispondenza esatta GumpID/serial, quindi l'indice con 0. -1 è il gump selezionato da questo script e, se non è presente, l'ultimo nell'elenco corrente. Altri negativi int mantengono 32-bit ID. Questo è un selettore, in contrapposizione al rigoroso GumpIndex in NumGump*. -
identifier- string senza distinzione tra maiuscole e minuscole. Tutti i valori e i tipi di risultati supportati sono elencati nella sezione Resi. Il nome sconosciuto restituisce una stringa vuota. -
key- Opzionale int, predefinito - 1. Indice con 0 per pulsante/testo/object/comando; questo non è il controllo ID. Un indice negativo e fuori dai limiti risulta in 0 per il pulsante o una stringa vuota per i campi di testo. Altri identificatori non utilizzano la chiave.
Il tipo del risultato dipende dall'identificatore. int: buttonlen — numero di pulsanti regolari; button — ButtonID per chiave indice; textlen: numero di elementi di testo disponibili; injid: indice della finestra corrente; risposto — 0 (la cronologia delle risposte non viene memorizzata); inclient — 1 per una finestra live trovata, 0 se assente; objectcount: numero di controlli live, inclusi quelli nidificati. string: serial e gumpid - stringhe esadecimali 0xXXXXXXXX; text — testo dell'elemento nella chiave dell'indice; object — nome del tipo di controllo; comando — descrizione del controllo (tipo, pagina, ID, coordinate, dimensioni e campi supportati). Se non è presente alcuna finestra, gli identificatori numerici danno 0, gli identificatori di stringa danno una stringa vuota. injid=0 è anche un primo indice valido: 0 di per sé non dimostra l'assenza di una finestra. Questo non è Array o Pascal TGumpInfo.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- SelectGump/InfoGump specifica la finestra selezionata solo nel runtime corrente. Se la finestra selezionata viene chiusa, viene utilizzato l'ultimo elemento dell'elenco corrente, che non è necessariamente l'elemento più recente nel tempo.
- textlen/text fa riferimento ai controlli di testo disponibili, non al pool di stringhe originale del pacchetto server. object/command si riferisce all'intero albero dei controlli live. Non è possibile mischiare indici di elenchi diversi.
- Ogni chiamata legge lo stato corrente separatamente. Per serial, GumpID ed elenchi corrispondenti, utilizzare GetGumpInfo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGump("gumpid");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- gumpid e serial restituiscono stringhe già formattate in esadecimale; non è necessario alcun esagono aggiuntivo. Le righe vuote indicano che non è presente alcuna finestra durante la lettura.
var id = UO.GetGump("gumpid");
var serial = UO.GetGump("serial");
UO.Print(id + " / " + serial);Parametri e flusso di esecuzione:
- buttonlen: numero di pulsanti; i è l'indice della riga da 0 a count-1. pulsante - ID per la risposta, non grafica o indice. Quando cambi finestra, rileggi l'elenco.
return RunScenario();
object? RunScenario()
{
var count = UO.GetGump("buttonlen");
var i = 0;
while (Truth(i < count))
{
var button = UO.GetGump("button", i);
UO.Print(Convert.ToString(button));
i = i + 1;
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 0x12345678 è un esempio di GumpID/serial, sostituisci ID con la forma desiderata. text with key=0 legge il primo controllo di testo disponibile; questo è un elenco diverso dal pulsante.
- SelectGump segnala l'assenza della finestra specificata, ma non blocca la successiva lettura: verificare separatamente il gumpid restituito se necessario.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.SelectGump(0x12345678);
if (Truth(UO.GetGump("inclient")))
{
var count = UO.GetGump("textlen");
if (Truth(count > 0))
{
UO.Print(UO.GetGump("text", 0));
}
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: identifier (String)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetGump. -
InjectionScript.Runtime.InjectionApiUO.LastGump:LastGump(identifier, -1).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue GetGump(string identifier) => LastGump(identifier, -1);Parametri: gumpId (Integer/String), identifier (String/Integer)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetGump. -
InjectionScript.Runtime.InjectionApiUO.GetGump:GetGump(gumpId, identifier, -1).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue GetGump(int gumpId, string identifier) => GetGump(gumpId, identifier, -1);Parametri: gumpId (Integer/String), identifier (String/Integer)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetGump. -
InjectionScript.Runtime.InjectionApiUO.LastGump:LastGump(identifier, key).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue GetGump(string identifier, int key) => LastGump(identifier, key);Parametri: gumpId (Integer), identifier (String), key (Integer)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetGump. -
InjectionScript.Runtime.InjectionApiUO.ConvertGumpValue:ConvertGumpValue(identifier, bridge.GetGumpValue(gumpId, identifier, key)). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpValue:bridge.GetGumpValue(gumpId, identifier, key).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue GetGump(int gumpId, string identifier, int key)
=> ConvertGumpValue(identifier, bridge.GetGumpValue(gumpId, identifier, key));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGumpButtonsDescription(object? gumpIndex);Restituisce le descrizioni dei normali pulsanti gump del server.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
Array - descrizioni dei pulsanti regolari. [] - indice non valido o nessun elemento corrispondente. L'indice della riga inizia con 0; non è un controllo ID.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Ogni riga contiene ButtonID, azione, toPage e grafica. I pulsanti di opzione non sono normali pulsanti di risposta.
- Quando SilentMode=0 anche il risultato non vuoto viene aggiunto alla finestra di testo e la apre. SetSilentMode(1) lascia solo la restituzione dell'array.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGumpButtonsDescription(0);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra. ArrayLength verifica la presenza di una linea prima di chiamare le linee[0].
var lines = UO.GetGumpButtonsDescription(0);
if (Truth(ArrayLength(lines) > 0))
{
UO.Print(lines[0]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- SetSilentMode(1) disabilita la finestra di testo aggiuntiva. La Print esplicita nell'esempio stampa ancora le stringhe.
- i è l'indice dell'array; Prendere ID del pulsante/interruttore desiderato dalla descrizione corrispondente.
return RunScenario();
object? RunScenario()
{
UO.SetSilentMode(1);
var lines = UO.GetGumpButtonsDescription(0);
var i = 0;
while (Truth(i < ArrayLength(lines)))
{
UO.Print(lines[i]);
i = i + 1;
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il conteggio viene convertito nell'indice dell'ultima finestra. I dati vengono letti dal server gump caricato; le finestre locali non sono incluse qui.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int count = UO.GetGumpsCount();
if (count == 0)
return null;
int index = count - 1;
var lines = UO.GetGumpButtonsDescription(index);
foreach (object? line in (object? [])lines)
UO.Print(Convert.ToString(line) ?? "");
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: dynamic / Array.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GumpLinesResult:GumpLinesResult(bridge.GetGumpButtonsDescription(Arg(0))). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpButtonsDescription:bridge.GetGumpButtonsDescription(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpbuttonsdescription": return GumpLinesResult(bridge.GetGumpButtonsDescription(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetGumpCount();Versione breve GetGumpsCount: numero di gump del server attivi.
Non ci sono parametri.
int >= 0 — numero di finestre, non l'indice dell'ultima finestra. 0 — l'elenco è vuoto.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.GetGumpCount();
UO.Print("GetGumpCount: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Questo è il numero di gump del server, non l'indice della finestra; lo zaino locale e la mappa non sono inclusi qui.
int count = UO.GetGumpCount();
UO.Print($"Active server gumps: {count}");Parametri e flusso di esecuzione:
- Gli indici partono da zero. L'elenco può cambiare tra una chiamata e l'altra, quindi la quantità corrente viene controllata prima della lettura.
return RunScenario();
object? RunScenario()
{
int count = UO.GetGumpCount();
for (int index = 0; index < count; index++)
{
if (index >= UO.GetGumpCount())
break;
UO.Print($"Gump {index}: ID={UO.GetGumpID(index)}, serial={UO.GetGumpSerial(index)}");
}
return null;
}Parametri e flusso di esecuzione:
- L'attesa è limitata da un timeout. La semplice presenza di una finestra non dimostra che si tratti di uno spazio necessario; per selezionare, seleziona ID.
return await new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenarioAsync();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
async public Task<object?> RunScenarioAsync()
{
bool appeared = await WaitForGump(3000);
UO.Print(appeared ? "A server gump appeared" : "No server gump within the timeout");
return null;
}
async Task<bool> WaitForGump(int timeoutMs)
{
var timer = System.Diagnostics.Stopwatch.StartNew();
while (timer.ElapsedMilliseconds < timeoutMs)
{
if (UO.GetGumpCount() > 0)
return true;
await WaitAsync(50);
}
return false;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetGumpCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpCount:bridge.GetGumpCount().
Codice interno di implementazione; non è uno script autonomo.
public int GetGumpCount() => bridge.GetGumpCount();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGumpFullLines(object? gumpIndex);Restituisce le descrizioni di tutti gli elementi viventi, inclusi i gump dei server nidificati.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
Array - descrizioni di tutti gli elementi viventi, compresi quelli nidificati. [] - indice non valido o nessun elemento corrispondente. L'indice della riga inizia con 0; non è un controllo ID.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Descrizioni dell'albero di controllo corrente: tipo, pagina, ID, X/Y, dimensioni e campi supportati. Questo non è un pacchetto di markup del server raw.
- Quando SilentMode=0 anche il risultato non vuoto viene aggiunto alla finestra di testo e la apre. SetSilentMode(1) lascia solo la restituzione dell'array.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGumpFullLines(0);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra. ArrayLength verifica la presenza di una linea prima di chiamare le linee[0].
var lines = UO.GetGumpFullLines(0);
if (Truth(ArrayLength(lines) > 0))
{
UO.Print(lines[0]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- SetSilentMode(1) disabilita la finestra di testo aggiuntiva. La Print esplicita nell'esempio stampa ancora le stringhe.
- i è l'indice dell'array; Prendere ID del pulsante/interruttore desiderato dalla descrizione corrispondente.
return RunScenario();
object? RunScenario()
{
UO.SetSilentMode(1);
var lines = UO.GetGumpFullLines(0);
var i = 0;
while (Truth(i < ArrayLength(lines)))
{
UO.Print(lines[i]);
i = i + 1;
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il conteggio viene convertito nell'indice dell'ultima finestra. I dati vengono letti dal server gump caricato; le finestre locali non sono incluse qui.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int count = UO.GetGumpsCount();
if (count == 0)
return null;
int index = count - 1;
var lines = UO.GetGumpFullLines(index);
foreach (object? line in (object? [])lines)
UO.Print(Convert.ToString(line) ?? "");
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: dynamic / Array.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GumpLinesResult:GumpLinesResult(bridge.GetGumpFullLines(Arg(0))). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpFullLines:bridge.GetGumpFullLines(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpfulllines": return GumpLinesResult(bridge.GetGumpFullLines(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetGumpID(object? gumpIndex);Legge l'ID del tipo di finestra GumpID dall'indice Gump del server.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
int - Identificatore del tipo di finestra 32 bit GumpID. 0 è un indice non valido (serial=0 potrebbe essere presente anche nella finestra stessa). Quando è impostato il bit più significativo, int è negativo: utilizzare Hex(valore) per visualizzare. Questo non è il type di un argomento o un indice.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Per una coppia serial/GumpID abbinata, utilizza un GetGumpInfo: i campi info[0] e info[1].
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.GetGumpID(0);
UO.Print("GetGumpID: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è il primo indice dell'elenco dei server. Hex memorizza la rappresentazione in bit del negativo int.
var value = UO.GetGumpID(0);
UO.Print(Hex(value));
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parametri e flusso di esecuzione:
- Con un elenco immutabile, il conteggio è dopo l'ultimo indice, quindi mancante=0. L'ultimo indice valido è count-1.
return RunScenario();
object? RunScenario()
{
var count = UO.GetGumpsCount();
var missing = UO.GetGumpID(count);
UO.Print(Hex(missing));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parametri e flusso di esecuzione:
- 0x999 è un esempio di ID; sostituiscilo con il reale ID della finestra desiderata. Indice, ID e proprietario serial hanno valori diversi.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int wantedId = 0x00000999;
int count = UO.GetGumpsCount();
for (int index = 0; index < count; index++)
{
if (index >= UO.GetGumpsCount())
break;
if (UO.GetGumpID(index) == wantedId)
{
UO.Print($"Gump index {index}, serial {UO.GetGumpSerial(index)}");
return index;
}
}
return -1;
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpId:bridge.GetGumpId(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpid": return new InjectionValue(bridge.GetGumpId(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGumpInfo(object? gumpIndex);Restituisce un'istantanea coerente degli identificatori e degli elementi di un singolo server gump.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
Array - esattamente cinque elementi: [0] int serial; [1] int GumpID; [2] Array di testi non vuoti; [3] Array descrizioni di pulsanti regolari; [4] Array di descrizioni di tutti gli elementi viventi, compresi quelli nidificati. Un gump non valido/chiuso o ignorato da questo script produce un array vuoto []. ID con il bit più significativo è rappresentato da un int negativo. Un array di testo vuoto di per sé non significa che non ci sia una finestra.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- L'intera istantanea viene copiata in una richiesta del thread di gioco. La modifica/chiusura della finestra dopo il ritorno non modifica l'array salvato.
- La descrizione del controllo indica il tipo, la pagina, ID, X/Y, dimensioni. I pulsanti contengono inoltre ButtonID, azione, toPage e graphic; interruttori - ID, selezionato, inattivo/attivo. I testi possono contenere spazi e =; La stringa non può essere analizzata incondizionatamente tramite spazi.
- AddGumpIgnoreByID/AddGumpIgnoreBySerial nasconde il risultato di questa sola lettura nello script corrente; ClearGumpsIgnore rimuove questi filtri. GetGumpsCount non diminuisce.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGumpInfo(0);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- GumpIndex=0 — il primo server gump. Il controllo della lunghezza protegge l'accesso ai campi della finestra mancanti.
- info[0] — serial, info[1] — GumpID; entrambi appartengono alla stessa registrazione.
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
UO.Print("Serial=" + Hex(info[0]));
UO.Print("GumpID=" + Hex(info[1]));
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- info[3] — array di descrizioni dei pulsanti; il campo ButtonID nella riga specifica ID per la risposta. i è solo l'indice della riga, non il ButtonID.
- I pulsanti di opzione sono pulsanti di opzione e vengono visualizzati in info[4], non nell'elenco dei pulsanti normali.
return RunScenario();
object? RunScenario()
{
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
var buttons = info[3];
var i = 0;
while (Truth(i < ArrayLength(buttons)))
{
UO.Print(buttons[i]);
i = i + 1;
}
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- info[2] - copia dei testi. La chiusura è consentita solo per la finestra non inibita NoClose.
- La chiusura non cancella i testi salvati; Per una finestra esistente è accettabile anche un array di testi vuoto.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
var texts = info[2];
UO.CloseSimpleGump(0);
if (Truth(ArrayLength(texts) > 0))
{
UO.Print(texts[0]);
}
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: dynamic / Array.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpId:bridge.GetGumpId(index). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpSerial:bridge.GetGumpSerial(index). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpTextLines:bridge.GetGumpTextLines(index). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpButtonsDescription:bridge.GetGumpButtonsDescription(index). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpFullLines:bridge.GetGumpFullLines(index). -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(snapshot.Text).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpinfo":
{
int index = Arg(0);
GumpSnapshot snapshot;
if (bridge is IApiGumpAccess reader)
snapshot = reader.ReadGump(index);
else
{
int id = bridge.GetGumpId(index);
snapshot = id == 0 ? null : new GumpSnapshot(bridge.GetGumpSerial(index), id,
bridge.GetGumpTextLines(index), bridge.GetGumpButtonsDescription(index), bridge.GetGumpFullLines(index));
}
if (snapshot == null || state.IgnoredGumpIds.Contains(snapshot.Id)
|| state.IgnoredGumpSerials.Contains(snapshot.Serial))
return new InjectionValue(Array.Empty<InjectionValue>());
return new InjectionValue(new[]
{
new InjectionValue(snapshot.Serial), new InjectionValue(snapshot.Id), StringArray(snapshot.Text),
StringArray(snapshot.Buttons), StringArray(snapshot.Controls)
});
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetGumpSerial(object? gumpIndex);Legge il proprietario dell'istanza/finestra serial in base all'indice Gump del server.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
int è il 32-bit serial dell'istanza/proprietario della finestra. 0 è un indice non valido (serial=0 potrebbe essere presente anche nella finestra stessa). Quando è impostato il bit più significativo, int è negativo: utilizzare Hex(valore) per visualizzare. Questo non è il type dell'argomento e non è un indice.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Per una coppia serial/GumpID abbinata, utilizza un GetGumpInfo: i campi info[0] e info[1].
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.GetGumpSerial(0);
UO.Print("GetGumpSerial: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è il primo indice dell'elenco dei server. Hex memorizza la rappresentazione in bit del negativo int.
var value = UO.GetGumpSerial(0);
UO.Print(Hex(value));
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parametri e flusso di esecuzione:
- Con un elenco immutabile, il conteggio è dopo l'ultimo indice, quindi mancante=0. L'ultimo indice valido è count-1.
return RunScenario();
object? RunScenario()
{
var count = UO.GetGumpsCount();
var missing = UO.GetGumpSerial(count);
UO.Print(Hex(missing));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parametri e flusso di esecuzione:
- Serial è di proprietà della finestra del server o del suo proprietario in base al contratto di comando. Non può essere utilizzato al posto dell'indice Gump.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int count = UO.GetGumpsCount();
for (int index = 0; index < count; index++)
{
if (index >= UO.GetGumpsCount())
break;
int serial = UO.GetGumpSerial(index);
UO.Print($"Window {index}: serial={UO.Int2Hex(serial)}, ID={UO.GetGumpID(index)}");
}
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpSerial:bridge.GetGumpSerial(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpserial": return new InjectionValue(bridge.GetGumpSerial(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGumpShortLines(object? gumpIndex);Restituisce le descrizioni degli elementi di testo e dei pulsanti del server gump.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
Array - descrizioni di elementi di testo e pulsanti. [] - indice non valido o nessun elemento corrispondente. L'indice della riga inizia con 0; non è un controllo ID.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Dalla short list sono escluse le decorazioni senza testo e senza la tipologia Bottone; include pulsanti di opzione.
- Quando SilentMode=0 anche il risultato non vuoto viene aggiunto alla finestra di testo e la apre. SetSilentMode(1) lascia solo la restituzione dell'array.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGumpShortLines(0);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra. ArrayLength verifica la presenza di una linea prima di chiamare le linee[0].
var lines = UO.GetGumpShortLines(0);
if (Truth(ArrayLength(lines) > 0))
{
UO.Print(lines[0]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- SetSilentMode(1) disabilita la finestra di testo aggiuntiva. La Print esplicita nell'esempio stampa ancora le stringhe.
- i è l'indice dell'array; Prendere ID del pulsante/interruttore desiderato dalla descrizione corrispondente.
return RunScenario();
object? RunScenario()
{
UO.SetSilentMode(1);
var lines = UO.GetGumpShortLines(0);
var i = 0;
while (Truth(i < ArrayLength(lines)))
{
UO.Print(lines[i]);
i = i + 1;
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il conteggio viene convertito nell'indice dell'ultima finestra. I dati vengono letti dal server gump caricato; le finestre locali non sono incluse qui.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int count = UO.GetGumpsCount();
if (count == 0)
return null;
int index = count - 1;
var lines = UO.GetGumpShortLines(index);
foreach (object? line in (object? [])lines)
UO.Print(Convert.ToString(line) ?? "");
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: dynamic / Array.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GumpLinesResult:GumpLinesResult(bridge.GetGumpShortLines(Arg(0))). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpShortLines:bridge.GetGumpShortLines(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumpshortlines": return GumpLinesResult(bridge.GetGumpShortLines(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetGumpTextLines(object? gumpIndex);Restituisce testi non vuoti di etichette, HTML, campi di input ed etichette di interruttori gump del server.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
Array — testi non vuoti di etichette, HTML, campi di input e etichette di commutazione. [] - indice non valido o nessun elemento corrispondente. L'indice della riga inizia con 0; non è il controllo ID.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Solo testo; ButtonID, dimensioni e struttura non sono inclusi. Non stampa nulla in più.
- GetGumpTextLines non apre una finestra di testo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.GetGumpTextLines(0);
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra. ArrayLength verifica la presenza di una linea prima di chiamare le linee[0].
var lines = UO.GetGumpTextLines(0);
if (Truth(ArrayLength(lines) > 0))
{
UO.Print(lines[0]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- SetSilentMode(1) disabilita la finestra di testo aggiuntiva. La Print esplicita nell'esempio stampa ancora le stringhe.
- i è l'indice dell'array; Prendere ID del pulsante/interruttore desiderato dalla descrizione corrispondente.
return RunScenario();
object? RunScenario()
{
UO.SetSilentMode(1);
var lines = UO.GetGumpTextLines(0);
var i = 0;
while (Truth(i < ArrayLength(lines)))
{
UO.Print(lines[i]);
i = i + 1;
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il conteggio viene convertito nell'indice dell'ultima finestra. I dati vengono letti dal server gump caricato; le finestre locali non sono incluse qui.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
int count = UO.GetGumpsCount();
if (count == 0)
return null;
int index = count - 1;
var lines = UO.GetGumpTextLines(index);
foreach (object? line in (object? [])lines)
UO.Print(Convert.ToString(line) ?? "");
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: dynamic / Array.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetGumpTextLines(Arg(0))). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpTextLines:bridge.GetGumpTextLines(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getgumptextlines": return StringArray(bridge.GetGumpTextLines(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetGumpsCount();Restituisce il numero di gump del server attivi.
Non ci sono parametri.
int >= 0 — numero di finestre, non l'indice dell'ultima finestra. 0 — l'elenco è vuoto.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.GetGumpsCount();
UO.Print("GetGumpsCount: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Non ci sono argomenti. count=0 significa che non ci sono finestre del server nell'elenco corrente.
var count = UO.GetGumpsCount();
if (Truth(count == 0))
{
UO.Print("No server gumps");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- i è l'indice con 0. Il ID risultante identifica i tipi di finestra anziché le posizioni nell'elenco.
- Se le finestre cambiano durante la passeggiata è necessario rileggere l'elenco; count non blocca l'interfaccia.
return RunScenario();
object? RunScenario()
{
var count = UO.GetGumpsCount();
var i = 0;
while (Truth(i < count))
{
UO.Print(Hex(UO.GetGumpID(i)));
i = i + 1;
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- count-1 è l'ultimo indice dell'elenco corrente, non una garanzia della finestra più recente. info è vuoto se la finestra è scomparsa prima della lettura.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var count = UO.GetGumpsCount();
if (Truth(count > 0))
{
var info = UO.GetGumpInfo(count - 1);
UO.Print(ArrayLength(info));
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpCount:bridge.GetGumpCount().
Codice interno di implementazione; non è uno script autonomo.
case "getgumpscount": return new InjectionValue(bridge.GetGumpCount());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GumpAutoCheckBox(object? checkBoxID, object? value);Imposta il valore dell'elemento una volta nel primo gump del server adatto; se l'elemento non esiste ancora, salva l'attesa.
-
checkBoxID- int - esatto ID dell'elemento del tipo corrispondente. Questo non è un indice, non un GumpID e non una finestra serial; 0 è il solito ID, senza sostituzione del primo elemento. -
value- int - 1 abilita, 0 disabilita. I valori numerici diversi da zero includono anche; Si consigliano 0/1. La selezione di un pulsante di opzione deseleziona i pulsanti di opzione vicini del suo gruppo.
void - non restituisce nulla: né successo, né un nuovo valore, né conferma del server.
- Innanzitutto controlla le finestre esistenti nell'ordine corrente dell'interfaccia, quindi i layout del server nuovi o aggiornati. Si attiva una volta alla prima corrispondenza di tipo e ID. Per una finestra specifica, utilizzare NumGump* con un indice.
- Tutti i campi in sospeso vengono applicati prima delle risposte automatiche ai pulsanti. La ripetizione dello stesso tipo e ID in uno script sostituisce un valore che non è stato ancora eseguito. Limite: 1024 campi cliente in sospeso; il superamento provoca un errore di script.
- Il normale completamento della procedura risparmia l'attesa. Cancellando il titolare o Terminate con il suo nome si tolgono le sue attese; TerminateAll cancella tutto, compresi quelli rimasti dopo il completamento delle procedure. Cambiare il mondo cancella la coda. Le aspettative non vengono salvate nel profilo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.GumpAutoCheckBox");
UO.GumpAutoCheckBox(33, 1);Parametri e flusso di esecuzione:
- Il primo parametro 33 è un esempio ID dell'elemento desiderato; sostituiscilo con il vero ID di InfoGump. Il secondo è il valore da impostare. Se non è presente alcun elemento, l'azione rimane in sospeso.
UO.GumpAutoCheckBox(33, 1);Parametri e flusso di esecuzione:
- 33 è ID dell'elemento, 100 è un esempio di ButtonID di conferma, 0x40001234 è serial dell'oggetto che apre il form. Sostituisci tutti e tre i valori con i tuoi. Il campo verrà compilato prima della risposta, anche se la finestra è arrivata più tardi.
return RunScenario();
object? RunScenario()
{
UO.GumpAutoCheckBox(33, 1);
UO.WaitGump(100);
UO.UseObject("0x40001234");
return null;
}Parametri e flusso di esecuzione:
- Entrambe le chiamate utilizzano ID 33. Se l'elemento non è ancora apparso, vale l'ultimo valore. Se la finestra è già aperta, entrambe le modifiche vengono eseguite immediatamente in ordine.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.GumpAutoCheckBox(33, 1);
UO.GumpAutoCheckBox(33, 0);
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: checkBoxID (Any), value (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.QueueGumpControl:QueueGumpControl("checkbox", Arg(0), Text(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(1).
Codice interno di implementazione; non è uno script autonomo.
case "gumpautocheckbox": QueueGumpControl("checkbox", Arg(0), Text(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GumpAutoRadiobutton(object? radiobuttonID, object? value);Imposta il valore dell'elemento una volta nel primo gump del server adatto; se l'elemento non esiste ancora, salva l'attesa.
-
radiobuttonID- int - esatto ID dell'elemento del tipo corrispondente. Questo non è un indice, non un GumpID e non una finestra serial; 0 è il solito ID, senza sostituzione del primo elemento. -
value- int - 1 abilita, 0 disabilita. I valori numerici diversi da zero includono anche; Si consigliano 0/1. La selezione di un pulsante di opzione deseleziona i pulsanti di opzione vicini del suo gruppo.
void - non restituisce nulla: né successo, né un nuovo valore, né conferma del server.
- Innanzitutto controlla le finestre esistenti nell'ordine corrente dell'interfaccia, quindi i layout del server nuovi o aggiornati. Si attiva una volta alla prima corrispondenza di tipo e ID. Per una finestra specifica, utilizzare NumGump* con un indice.
- Tutti i campi in sospeso vengono applicati prima delle risposte automatiche ai pulsanti. La ripetizione dello stesso tipo e ID in uno script sostituisce un valore che non è stato ancora eseguito. Limite: 1024 campi cliente in sospeso; il superamento provoca un errore di script.
- Il normale completamento della procedura risparmia l'attesa. Cancellando il titolare o Terminate con il suo nome si tolgono le sue attese; TerminateAll cancella tutto, compresi quelli rimasti dopo il completamento delle procedure. Cambiare il mondo cancella la coda. Le aspettative non vengono salvate nel profilo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.GumpAutoRadiobutton");
UO.GumpAutoRadiobutton(33, 1);Parametri e flusso di esecuzione:
- Il primo parametro 33 è un esempio ID dell'elemento desiderato; sostituiscilo con il vero ID di InfoGump. Il secondo è il valore da impostare. Se non è presente alcun elemento, l'azione rimane in sospeso.
UO.GumpAutoRadiobutton(33, 1);Parametri e flusso di esecuzione:
- 33 è ID dell'elemento, 100 è un esempio di ButtonID di conferma, 0x40001234 è serial dell'oggetto che apre il form. Sostituisci tutti e tre i valori con i tuoi. Il campo verrà compilato prima della risposta, anche se la finestra è arrivata più tardi.
return RunScenario();
object? RunScenario()
{
UO.GumpAutoRadiobutton(33, 1);
UO.WaitGump(100);
UO.UseObject("0x40001234");
return null;
}Parametri e flusso di esecuzione:
- Entrambe le chiamate utilizzano ID 33. Se l'elemento non è ancora apparso, vale l'ultimo valore. Se la finestra è già aperta, entrambe le modifiche vengono eseguite immediatamente in ordine.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.GumpAutoRadiobutton(33, 1);
UO.GumpAutoRadiobutton(33, 0);
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: radiobuttonID (Any), value (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.QueueGumpControl:QueueGumpControl("radio", Arg(0), Text(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(1).
Codice interno di implementazione; non è uno script autonomo.
case "gumpautoradiobutton": QueueGumpControl("radio", Arg(0), Text(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GumpAutoTextEntry(object? textEntryID, object? value);Imposta il valore dell'elemento una volta nel primo gump del server adatto; se l'elemento non esiste ancora, salva l'attesa.
-
textEntryID- int - esatto ID dell'elemento del tipo corrispondente. Questo non è un indice, non un GumpID e non una finestra serial; 0 è il solito ID, senza sostituzione del primo elemento. -
value- string - testo del campo, inclusa una riga vuota da cancellare. Le restrizioni sulla lunghezza e sui caratteri consentiti del campo stesso vengono mantenute.
void - non restituisce nulla: né successo, né un nuovo valore, né conferma del server.
- Innanzitutto controlla le finestre esistenti nell'ordine corrente dell'interfaccia, quindi i layout del server nuovi o aggiornati. Si attiva una volta alla prima corrispondenza di tipo e ID. Per una finestra specifica, utilizzare NumGump* con un indice.
- Tutti i campi in sospeso vengono applicati prima delle risposte automatiche ai pulsanti. La ripetizione dello stesso tipo e ID in uno script sostituisce un valore che non è stato ancora eseguito. Limite: 1024 campi cliente in sospeso; il superamento provoca un errore di script.
- Il normale completamento della procedura risparmia l'attesa. Cancellando il titolare o Terminate con il suo nome si tolgono le sue attese; TerminateAll cancella tutto, compresi quelli rimasti dopo il completamento delle procedure. Cambiare il mondo cancella la coda. Le aspettative non vengono salvate nel profilo.
- Il testo delimitato da un campo può essere abbreviato o rifiutato; l'elemento trovato consuma comunque un'azione una tantum. Il comando non invia una risposta tramite pulsante e non attende il server. Per verificare, utilizzare GetGumpInfo/NumGumpTextEntry.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.GumpAutoTextEntry");
UO.GumpAutoTextEntry(33, "500");Parametri e flusso di esecuzione:
- Il primo parametro 33 è un esempio ID dell'elemento desiderato; sostituiscilo con il vero ID di InfoGump. Il secondo è il valore da impostare. Se non è presente alcun elemento, l'azione rimane in sospeso.
UO.GumpAutoTextEntry(33, "500");Parametri e flusso di esecuzione:
- 33 è ID dell'elemento, 100 è un esempio di ButtonID di conferma, 0x40001234 è serial dell'oggetto che apre il form. Sostituisci tutti e tre i valori con i tuoi. Il campo verrà compilato prima della risposta, anche se la finestra è arrivata più tardi.
return RunScenario();
object? RunScenario()
{
UO.GumpAutoTextEntry(33, "500");
UO.WaitGump(100);
UO.UseObject("0x40001234");
return null;
}Parametri e flusso di esecuzione:
- Entrambe le chiamate utilizzano ID 33. Se l'elemento non è ancora apparso, vale l'ultimo valore. Se la finestra è già aperta, entrambe le modifiche vengono eseguite immediatamente in ordine.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.GumpAutoTextEntry(33, "500");
UO.GumpAutoTextEntry(33, "");
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: textEntryID (Any), value (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.QueueGumpControl:QueueGumpControl("textentry", Arg(0), Text(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(1).
Codice interno di implementazione; non è uno script autonomo.
case "gumpautotextentry": QueueGumpControl("textentry", Arg(0), Text(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GumpExists(object? id);
int UO.GumpExists(object? firstId, object? secondId);Verifica la presenza di un server Gump utilizzando un selettore o la coppia esatta serial/GumpID.
-
id— Forma con un argomento: numerico serial, GumpID o indice con 0. -1 non seleziona l'ultimo gump qui. -
firstId— Forma a due argomenti: numerico 32-bit serial, incluso il negativo int con il bit più significativo. -
secondId— Forma a due argomenti: GumpID esatto a 32 bit. 0 è un numero esatto, non un carattere jolly. Solo -1 torna al controllo con un argomento di firstId come serial/GumpID/index.
int - 1, se la finestra corrispondente esiste adesso; 0 altrimenti. Non restituisce l'indice, serial o il numero di corrispondenze.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Il controllo non seleziona una finestra e non la riserva. La coppia ID viene controllata nel suo insieme; ID con il bit più significativo non disabilita il filtro.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.GumpExists(0x87654321);
UO.Print("GumpExists: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0x87654321: il GumpID desiderato o serial. Un argomento non distingue tra questi spazi ID.
var exists = UO.GumpExists(0x87654321);
UO.Print(Convert.ToString(exists));Parametri e flusso di esecuzione:
- Il primo numero è serial, il secondo è GumpID. Entrambi sono negativi nel segno int, ma il confronto preserva tutti i bit 32.
return RunScenario();
object? RunScenario()
{
var exists = UO.GumpExists(0x87654321, 0x98765432);
if (Truth(exists))
{
UO.Print("Matching pair exists");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- info[0]/info[1] appartengono alla stessa immagine. esiste=1 significa che la coppia esiste adesso; una finestra riaperta con la stessa coppia non è diversa dalla precedente.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
var exists = UO.GumpExists(info[0], info[1]);
UO.Print(Convert.ToString(exists));
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: id (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GumpExists. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GumpExists:bridge.GumpExists(NumberConversions.ToInt(id), -1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(id).
Codice interno di implementazione; non è uno script autonomo.
public int GumpExists(InjectionValue id) => bridge.GumpExists(NumberConversions.ToInt(id), -1);Parametri: firstId (Any), secondId (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GumpExists. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GumpExists:bridge.GumpExists(NumberConversions.ToInt(firstId), NumberConversions.ToInt(secondId)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(firstId).
Codice interno di implementazione; non è uno script autonomo.
public int GumpExists(InjectionValue firstId, InjectionValue secondId)
=> bridge.GumpExists(NumberConversions.ToInt(firstId), NumberConversions.ToInt(secondId));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GumpObject(object? gumpId);Seleziona un server gump esistente per le chiamate successive.
-
gumpId- int: corrisponde prima a LocalSerial o ServerSerial, quindi indicizza zero nell'elenco gumps corrente. Questi non sono pulsanti ID.
void - nessun valore. Chiama su una linea separata; il completamento non conferma l'azione del server.
- Bridge.SelectGump salva _selectedServerGump. Se serial non corrisponde, prende l'indice 0..count-1. Non trovato: il gump selezionato diventa null e viene visualizzato un messaggio.
- Gump non si apre e non viene inviata alcuna risposta al server. Gli indici cambiano quando le finestre vengono aperte/chiuse; per una selezione stabile utilizzare l'attuale serial/id.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.GumpObject");
UO.GumpObject(0);Parametri e flusso di esecuzione:
- Seleziona un server gump esistente per le chiamate successive.
if (Truth(UO.GumpExists(0)))
{
UO.GumpObject(0);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Bridge.SelectGump salva _selectedServerGump. Se serial non corrisponde, prende l'indice 0..count-1. Non trovato: il gump selezionato diventa null e viene visualizzato un messaggio.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
var serial = UO.GetGumpSerial(0);
UO.GumpObject(serial);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Gump non si apre e non viene inviata alcuna risposta al server. Gli indici cambiano quando le finestre vengono aperte/chiuse; per una selezione stabile utilizzare l'attuale serial/id.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.GumpObject(0);
UO.Print(UO.LastGump("gumpid"));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpId (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectGump:bridge.SelectGump(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "gumpobject": bridge.SelectGump(Arg(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.IsGump();Controlla se c'è almeno un server gump attivo.
Non ci sono parametri.
int — 1, se la lista non è vuota; 0 se vuoto. Questo è un segno di disponibilità, non il numero di finestre.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.IsGump();
UO.Print("IsGump: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Non ci sono argomenti. GetGumpInfo(0) legge il primo elemento e può restituire un array vuoto se la finestra è già stata chiusa.
if (Truth(UO.IsGump()))
{
var info = UO.GetGumpInfo(0);
UO.Print(ArrayLength(info));
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Con tre finestre stabili presenti=1, conteggio=3.
return RunScenario();
object? RunScenario()
{
var present = UO.IsGump();
var count = UO.GetGumpsCount();
UO.Print(Convert.ToString(present) + "/" + Convert.ToString(count));
return null;
}Parametri e flusso di esecuzione:
- Attendere al massimo circa 3000 ms, controllare ogni 50 ms. Il regalo finale mostra lo stato dopo l'attesa.
return await new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenarioAsync();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
async public Task<object?> RunScenarioAsync()
{
var started = Now();
while (Truth(UO.IsGump() == 0) && Truth(Now() - started < 3000))
{
await Delay(50);
}
var present = UO.IsGump();
return null;
}
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
private int Now() => global::ClassicUO.CSharp.CSharpScriptContext.Current.Now();
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpCount:bridge.GetGumpCount().
Codice interno di implementazione; non è uno script autonomo.
case "isgump": return new InjectionValue(bridge.GetGumpCount() > 0 ? 1 : 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.IsGumpCanBeClosed(object? gumpIndex);Controlla se è consentita la chiusura locale del gump del server con il tasto destro del mouse.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire.
int — 1, se la finestra esiste e CanCloseWithRightClick è abilitato; altrimenti 0. Questo non è il risultato della chiusura o della presenza di un pulsante Annulla.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- NoClose vieta CloseSimpleGump; la possibilità di inviare ButtonID al server è un'azione separata.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.IsGumpCanBeClosed(0);
UO.Print("IsGumpCanBeClosed: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra. La verifica e la chiusura sono sfide diverse; l'indice può cambiare tra di loro.
if (Truth(UO.IsGumpCanBeClosed(0)))
{
UO.CloseSimpleGump(0);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- closable=0 su una finestra esistente significa che la finestra non può essere chiusa, non l'assenza della finestra.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
var closable = UO.IsGumpCanBeClosed(0);
UO.Print(Convert.ToString(closable));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- -1 non è valido per questo comando indice e restituisce 0; questa non è l'ultima selezione della finestra.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var result = UO.IsGumpCanBeClosed(-1);
UO.Print(Convert.ToString(result));
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.IsGumpCanBeClosed:bridge.IsGumpCanBeClosed(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "isgumpcanbeclosed": return new InjectionValue(bridge.IsGumpCanBeClosed(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LastGump(object? identifier);
dynamic UO.LastGump(object? identifier, object? key);Legge un campo del gump del server selezionato. Utilizza la finestra selezionata da questo script o l'ultimo elemento dell'elenco corrente.
-
identifier- string senza distinzione tra maiuscole e minuscole. Tutti i valori e i tipi di risultati supportati sono elencati nella sezione Resi. Il nome sconosciuto restituisce una stringa vuota. -
key- Opzionale int, predefinito - 1. Indice con 0 per pulsante/testo/object/comando; questo non è il controllo ID. Un indice negativo e fuori dai limiti risulta in 0 per il pulsante o una stringa vuota per i campi di testo. Altri identificatori non utilizzano la chiave.
Il tipo del risultato dipende dall'identificatore. int: buttonlen — numero di pulsanti regolari; button — ButtonID per chiave indice; textlen: numero di elementi di testo disponibili; injid: indice della finestra corrente; risposto — 0 (la cronologia delle risposte non viene memorizzata); inclient — 1 per una finestra live trovata, 0 se assente; objectcount: numero di controlli live, inclusi quelli nidificati. string: serial e gumpid - stringhe esadecimali 0xXXXXXXXX; text — testo dell'elemento nella chiave dell'indice; object — nome del tipo di controllo; comando — descrizione del controllo (tipo, pagina, ID, coordinate, dimensioni e campi supportati). Se non è presente alcuna finestra, gli identificatori numerici danno 0, gli identificatori di stringa danno una stringa vuota. injid=0 è anche un primo indice valido: 0 di per sé non dimostra l'assenza di una finestra. Questo non è Array o Pascal TGumpInfo.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- SelectGump/InfoGump specifica la finestra selezionata solo nel runtime corrente. Se la finestra selezionata viene chiusa, viene utilizzato l'ultimo elemento dell'elenco corrente, che non è necessariamente l'elemento più recente nel tempo.
- textlen/text fa riferimento ai controlli di testo disponibili, non al pool di stringhe originale del pacchetto server. object/command si riferisce all'intero albero dei controlli live. Non è possibile mischiare indici di elenchi diversi.
- Ogni chiamata legge lo stato corrente separatamente. Per serial, GumpID ed elenchi corrispondenti, utilizzare GetGumpInfo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
object? result = UO.LastGump("gumpid");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- gumpid e serial restituiscono stringhe già formattate in esadecimale; non è necessario alcun esagono aggiuntivo. Le righe vuote indicano che non è presente alcuna finestra durante la lettura.
var id = UO.LastGump("gumpid");
var serial = UO.LastGump("serial");
UO.Print(id + " / " + serial);Parametri e flusso di esecuzione:
- buttonlen: numero di pulsanti; i è l'indice della riga da 0 a count-1. pulsante - ID per la risposta, non grafica o indice. Quando cambi finestra, rileggi l'elenco.
return RunScenario();
object? RunScenario()
{
var count = UO.LastGump("buttonlen");
var i = 0;
while (Truth(i < count))
{
var button = UO.LastGump("button", i);
UO.Print(Convert.ToString(button));
i = i + 1;
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 0x12345678 è un esempio di GumpID/serial, sostituisci ID con la forma desiderata. text with key=0 legge il primo controllo di testo disponibile; questo è un elenco diverso dal pulsante.
- SelectGump segnala l'assenza della finestra specificata, ma non blocca la successiva lettura: verificare separatamente il gumpid restituito se necessario.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.SelectGump(0x12345678);
if (Truth(UO.LastGump("inclient")))
{
var count = UO.LastGump("textlen");
if (Truth(count > 0))
{
UO.Print(UO.LastGump("text", 0));
}
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: identifier (String)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.LastGump. -
InjectionScript.Runtime.InjectionApiUO.LastGump:LastGump(identifier, -1).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue LastGump(string identifier) => LastGump(identifier, -1);Parametri: identifier (String), key (Integer)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.LastGump. -
InjectionScript.Runtime.InjectionApiUO.ConvertGumpValue:ConvertGumpValue(identifier, bridge.GetGumpValue(-1, identifier, key)). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetGumpValue:bridge.GetGumpValue(-1, identifier, key).
Codice interno di implementazione; non è uno script autonomo.
public InjectionValue LastGump(string identifier, int key) => ConvertGumpValue(identifier, bridge.GetGumpValue(-1, identifier, key));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.NumGumpButton(object? gumpIndex, object? value);Attiva un pulsante gump del server esistente in base all'indice rigoroso della finestra e all'esatto ButtonID.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire. -
value- int - ButtonID dalla descrizione di un pulsante normale. Non il numero di riga, non il pulsante graphic, non il GumpID.
int (bool) - 1, se la finestra e il pulsante vengono trovati e viene eseguita l'azione locale; 0 se non è presente alcuna finestra/pulsante. Anche la modifica della pagina restituisce 1. Questa non è una conferma dell'elaborazione del server.
Il risultato del comando è un flag numerico: 1 significa una condizione soddisfatta, 0 significa una condizione non soddisfatta. Dopo var risultato = comando(...) controlla se (risultato != 0) o se (risultato == 0). Salva il risultato di una chiamata: una chiamata ripetuta può eseguire nuovamente l'azione o leggere lo stato che è già cambiato.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Il pulsante SwitchPage cambia la pagina localmente. Il pulsante Attiva provoca una risposta goffa; la finestra di solito si chiude. A differenza di SendGumpSelect, questo comando richiede un ButtonID esistente nell'albero di controllo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.NumGumpButton(0, 77);
UO.Print("NumGumpButton: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della finestra, 77 è un esempio ButtonID dell'ispettore. Il tuo modulo ha bisogno del suo vero ID.
var ok = UO.NumGumpButton(0, 77);
if (Truth(ok == 0))
{
UO.Print("Button not found");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 0x12345678 è il GumpID previsto, 100 è il ButtonID. Questi due numeri appartengono a spazi diversi ID.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpID(0) == 0x12345678))
{
var ok = UO.NumGumpButton(0, 100);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 33 - casella di controllo ID, 1 - abilita, 100 - pulsante ID. Lo stato della casella di controllo verrà incluso nella risposta solo per il pulsante Attiva.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.NumGumpCheckBox(0, 33, 1)))
{
var ok = UO.NumGumpButton(0, 100);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any), value (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ActivateGumpButton:bridge.ActivateGumpButton(Arg(0), Arg(1)).
Codice interno di implementazione; non è uno script autonomo.
case "numgumpbutton": return (bridge is IApiGumpAccess buttons
? buttons.ActivateGumpButtonAtIndex(Arg(0), Arg(1)) : bridge.ActivateGumpButton(Arg(0), Arg(1))) != 0 ? InjectionValue.True : InjectionValue.False;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.NumGumpCheckBox(object? gumpIndex, object? cbid, object? value);Imposta lo stato del flag nel server gump per indice.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire. -
cbid- int - l'esatto elemento ID dalla descrizione del gump. Questo non è il numero di serie dell'elemento; la ID mancante non viene sostituita con un indice. -
value— int — 1 abilita/seleziona, 0 disabilita. Vengono riconosciuti anche i valori numerici diversi da zero, true e check. Si consigliano 0 e 1.
int (bool) — 1, se l'elemento richiesto viene trovato e il suo valore finale corrisponde a quello specificato; 0 se l'indice non è valido, manca il tipo ID/elemento, oppure se il campo non ha assunto un valore esatto. Anche la reimpostazione di un valore già impostato ha esito positivo.
Il risultato del comando è un flag numerico: 1 significa una condizione soddisfatta, 0 significa una condizione non soddisfatta. Dopo var risultato = comando(...) controlla se (risultato != 0) o se (risultato == 0). Salva il risultato di una chiamata: una chiamata ripetuta può eseguire nuovamente l'azione o leggere lo stato che è già cambiato.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Cambia lo stato locale. I campi e i pulsanti di opzione selezionati vengono inviati seguiti dalla risposta del pulsante.
- La selezione di un pulsante di opzione deseleziona il pulsante di opzione adiacente dello stesso gruppo; le caselle di controllo regolari sono indipendenti.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.NumGumpCheckBox(0, 33, 1);
UO.Print("NumGumpCheckBox: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra; 33 — esatto CBID; 1 - nuovo valore. Sostituisci 33 con ID del tuo gump.
var ok = UO.NumGumpCheckBox(0, 33, 1);
if (Truth(ok == 0))
{
UO.Print("Control missing or value rejected");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 0 cancella il campo o lo deseleziona. Viene restituito l'esito positivo della modifica, non il nuovo valore del campo.
return RunScenario();
object? RunScenario()
{
var ok = UO.NumGumpCheckBox(0, 33, 0);
UO.Print(Convert.ToString(ok));
return null;
}Parametri e flusso di esecuzione:
- 100 - esempio di conferma ButtonID del server; deve essere sostituito ID della tua finestra. Da 0 a SendGumpSelect(0,100) è l'indice della finestra.
- La risposta può chiudere il gump e cambiare gli indici. inviato significa invio locale, risultato di un'operazione non confermata dal server.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.NumGumpCheckBox(0, 33, 1)))
{
var sent = UO.SendGumpSelect(0, 100);
UO.Print(Convert.ToString(sent));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any), cbid (Any), value (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.SetIndexedGumpValue:SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(2).
Codice interno di implementazione; non è uno script autonomo.
case "numgumpcheckbox": return SetIndexedGumpValue(Arg(0), "checkbox", Arg(1), Text(2));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.NumGumpRadiobutton(object? gumpIndex, object? radiobuttonID, object? value);Imposta lo stato di un pulsante di opzione in un server gump per indice.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire. -
radiobuttonID- int - l'esatto elemento ID dalla descrizione del gump. Questo non è il numero di serie dell'elemento; la ID mancante non viene sostituita con un indice. -
value— int — 1 abilita/seleziona, 0 disabilita. Vengono riconosciuti anche i valori numerici diversi da zero, true e check. Si consigliano 0 e 1.
int (bool) — 1, se l'elemento richiesto viene trovato e il suo valore finale corrisponde a quello specificato; 0 se l'indice non è valido, manca il tipo ID/elemento, oppure se il campo non ha assunto un valore esatto. Anche la reimpostazione di un valore già impostato ha esito positivo.
Il risultato del comando è un flag numerico: 1 significa una condizione soddisfatta, 0 significa una condizione non soddisfatta. Dopo var risultato = comando(...) controlla se (risultato != 0) o se (risultato == 0). Salva il risultato di una chiamata: una chiamata ripetuta può eseguire nuovamente l'azione o leggere lo stato che è già cambiato.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Cambia lo stato locale. I campi e i pulsanti di opzione selezionati vengono inviati seguiti dalla risposta del pulsante.
- La selezione di un pulsante di opzione deseleziona il pulsante di opzione adiacente dello stesso gruppo; le caselle di controllo regolari sono indipendenti.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.NumGumpRadiobutton(0, 33, 1);
UO.Print("NumGumpRadiobutton: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra; 33 — RadiobuttonID esatto; 1 - nuovo valore. Sostituisci 33 con ID del tuo gump.
var ok = UO.NumGumpRadiobutton(0, 33, 1);
if (Truth(ok == 0))
{
UO.Print("Control missing or value rejected");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- 0 cancella il campo o lo deseleziona. Viene restituito l'esito positivo della modifica, non il nuovo valore del campo.
return RunScenario();
object? RunScenario()
{
var ok = UO.NumGumpRadiobutton(0, 33, 0);
UO.Print(Convert.ToString(ok));
return null;
}Parametri e flusso di esecuzione:
- 100 - esempio di conferma ButtonID del server; deve essere sostituito ID della tua finestra. Da 0 a SendGumpSelect(0,100) è l'indice della finestra.
- La risposta può chiudere il gump e cambiare gli indici. inviato significa invio locale, risultato di un'operazione non confermata dal server.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.NumGumpRadiobutton(0, 33, 1)))
{
var sent = UO.SendGumpSelect(0, 100);
UO.Print(Convert.ToString(sent));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any), radiobuttonID (Any), value (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.SetIndexedGumpValue:SetIndexedGumpValue(Arg(0), "radio", Arg(1), Text(2)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(2).
Codice interno di implementazione; non è uno script autonomo.
case "numgumpradiobutton": return SetIndexedGumpValue(Arg(0), "radio", Arg(1), Text(2));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.NumGumpTextEntry(object? gumpIndex, object? textEntryID, object? value);Imposta il testo del campo di input nel server gump per indice.
-
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire. -
textEntryID- int - l'esatto elemento ID dalla descrizione del gump. Questo non è il numero di serie dell'elemento; la ID mancante non viene sostituita con un indice. -
value- string - nuovo testo. Una stringa vuota cancella il campo; le restrizioni di lunghezza/carattere sul campo stesso vengono mantenute.
int (bool) — 1, se l'elemento richiesto viene trovato e il suo valore finale corrisponde a quello specificato; 0 se l'indice non è valido, manca il tipo ID/elemento, oppure se il campo non ha assunto un valore esatto. Anche la reimpostazione di un valore già impostato ha esito positivo.
Il risultato del comando è un flag numerico: 1 significa una condizione soddisfatta, 0 significa una condizione non soddisfatta. Dopo var risultato = comando(...) controlla se (risultato != 0) o se (risultato == 0). Salva il risultato di una chiamata: una chiamata ripetuta può eseguire nuovamente l'azione o leggere lo stato che è già cambiato.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Cambia lo stato locale. I campi e i pulsanti di opzione selezionati vengono inviati seguiti dalla risposta del pulsante.
- La selezione di un pulsante di opzione deseleziona il pulsante di opzione adiacente dello stesso gruppo; le caselle di controllo regolari sono indipendenti.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.NumGumpTextEntry(0, 33, "500");
UO.Print("NumGumpTextEntry: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 — indice della finestra; 33 — esatto TextEntryID; '500' è il nuovo valore. Sostituisci 33 con ID del tuo gump.
var ok = UO.NumGumpTextEntry(0, 33, "500");
if (Truth(ok == 0))
{
UO.Print("Control missing or value rejected");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- '' cancella il campo o lo deseleziona. Viene restituito l'esito positivo della modifica, non il nuovo valore del campo.
return RunScenario();
object? RunScenario()
{
var ok = UO.NumGumpTextEntry(0, 33, "");
UO.Print(Convert.ToString(ok));
return null;
}Parametri e flusso di esecuzione:
- 100 - esempio di conferma ButtonID del server; deve essere sostituito ID della tua finestra. Da 0 a SendGumpSelect(0,100) è l'indice della finestra.
- La risposta può chiudere il gump e cambiare gli indici. inviato significa invio locale, risultato di un'operazione non confermata dal server.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.NumGumpTextEntry(0, 33, "500")))
{
var sent = UO.SendGumpSelect(0, 100);
UO.Print(Convert.ToString(sent));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: gumpIndex (Any), textEntryID (Any), value (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.SetIndexedGumpValue:SetIndexedGumpValue(Arg(0), "textentry", Arg(1), Text(2)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(2).
Codice interno di implementazione; non è uno script autonomo.
case "numgumptextentry": return SetIndexedGumpValue(Arg(0), "textentry", Arg(1), Text(2));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SelectGump(object? id);Seleziona un server gump esistente per le chiamate successive.
-
id- int: corrisponde prima a LocalSerial o ServerSerial, quindi indicizza zero nell'elenco gumps corrente. Questi non sono pulsanti ID.
void - nessun valore. Chiama su una linea separata; il completamento non conferma l'azione del server.
- Bridge.SelectGump salva _selectedServerGump. Se serial non corrisponde, prende l'indice 0..count-1. Non trovato: il gump selezionato diventa null e viene visualizzato un messaggio.
- Gump non si apre e non viene inviata alcuna risposta al server. Gli indici cambiano quando le finestre vengono aperte/chiuse; per una selezione stabile utilizzare l'attuale serial/id.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.SelectGump");
UO.SelectGump(0);Parametri e flusso di esecuzione:
- Seleziona un server gump esistente per le chiamate successive.
if (Truth(UO.GumpExists(0)))
{
UO.SelectGump(0);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Bridge.SelectGump salva _selectedServerGump. Se serial non corrisponde, prende l'indice 0..count-1. Non trovato: il gump selezionato diventa null e viene visualizzato un messaggio.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
var serial = UO.GetGumpSerial(0);
UO.SelectGump(serial);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Gump non si apre e non viene inviata alcuna risposta al server. Gli indici cambiano quando le finestre vengono aperte/chiuse; per una selezione stabile utilizzare l'attuale serial/id.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.SelectGump(0);
UO.Print(UO.LastGump("gumpid"));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: id (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SelectGump. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SelectGump:bridge.SelectGump(NumberConversions.ToInt(id)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(id).
Codice interno di implementazione; non è uno script autonomo.
public void SelectGump(InjectionValue id) => bridge.SelectGump(NumberConversions.ToInt(id));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.SendGumpSelect(object? triggerId);
int UO.SendGumpSelect(object? gumpIndex, object? triggerId);
int UO.SendGumpSelect(object? serial, object? gumpId, object? triggerId);
int UO.SendGumpSelect(object? serial, object? gumpId, object? triggerId, object? timeout);Invia il ButtonID per il server gump selezionato.
-
triggerId- int o stringa numerica - ButtonID del server. 0 solitamente significa chiusura/fallimento, ma l'azione esatta è determinata dal server. Non è richiesto un ButtonID visibile nell'albero. -
gumpIndex— Obbligatorio int — indice del server attivo gump, da 0 a GetGumpsCount()-1. Questo non è GumpID/serial. Il numero negativo e l'indice fuori dall'elenco non sono validi. L'apertura, la chiusura e il riordino delle finestre possono modificare l'indice; controlla GetGumpID/GetGumpSerial prima di agire. Utilizzato solo nella forma a due argomenti (gumpIndex, triggerId). -
serial— Nelle forme argomento 3/4, il bit numerico 32 serial. 0 o -1 disabilita il filtro serial; i restanti numeri, compresi quelli negativi con il bit più significativo, vengono confrontati esattamente. -
gumpId— Nei moduli argomento 3/4, il GumpID numerico a 32-bit. 0 o -1 disabilita il filtro GumpID. Sono consentite stringhe esadecimali; i nomi AddObject non sono consentiti qui. -
timeout— Quarto argomento facoltativo, int millisecondi di attesa per una coppia ID corrispondente. Per impostazione predefinita, 0 è un tentativo immediato; il negativo è limitato a 0. Ricontrollare l'intervallo 20 ms.
int — 1, se viene trovato un gump del server live e viene richiamata la risposta; 0 se la finestra non viene trovata prima della scadenza del timeout. Non restituisce il ID selezionato e non attende la conferma del risultato da parte del server.
- Funziona con gump server attivi. Zaino, mappa, impostazioni e altre finestre locali non sono incluse in questo elenco. Una chiamata legge i dati nel thread del gioco; chiamate diverse possono visualizzare stati diversi dell'elenco.
- Un argomento seleziona il gump precedentemente selezionato da questo script; se è chiuso/non selezionato - l'ultimo elemento dell'elenco corrente. Due argomenti specificano un indice rigoroso. Tre/quattro - una coppia di ID con filtri.
- La selezione e la chiamata di una risposta avvengono in una richiesta del thread di gioco. L'attesa viene annullata interrompendo la procedura. Non confondere la risposta diretta del server con il cambio di pagina: il pulsante SwitchPage richiede NumGumpButton.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il risultato di una sola chiamata viene mostrato nel diario. Un numero non viene convertito in bool; per un array viene mostrato il numero di elementi.
var result = UO.SendGumpSelect(100);
UO.Print("SendGumpSelect: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- SelectGump seleziona il tipo/serial 0x12345678 oppure segnala assenza; 100 - ID pulsante.
- Se non c'è più una finestra selezionata, il modulo con un argomento utilizza l'ultima finestra disponibile. Per un'identità rigorosa, utilizzare un modulo con due ID.
UO.SelectGump(0x12345678);
var sent = UO.SendGumpSelect(100);
UO.Print(Convert.ToString(sent));Parametri e flusso di esecuzione:
- 0 — indice, 100 — ButtonID. Questo non è serial=0 e non GumpID=100.
return RunScenario();
object? RunScenario()
{
var sent = UO.SendGumpSelect(0, 100);
if (Truth(sent == 0))
{
UO.Print("No gump at index zero");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- info[0] - serial, info[1] - GumpID, 100 - ButtonID. La modifica dell'indice non reindirizzerà la risposta a un tipo/proprietario diverso.
- I valori Serial/GumpID 0/-1 sono filtri non vincolati; le coppie identiche non distinguono le istanze riaperte.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var info = UO.GetGumpInfo(0);
if (Truth(ArrayLength(info) == 5))
{
var sent = UO.SendGumpSelect(info[0], info[1], 100);
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}Parametri e flusso di esecuzione:
- 0 disabilita il filtro serial; 0x87654321 — esatto ID con il bit più significativo; 100 — pulsante; 2000 — attesa massima in ms. Non utilizzato come carattere jolly incondizionato.
var sent = UO.SendGumpSelect(0, 0x87654321, 100, 2000);
UO.Print(Convert.ToString(sent));C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: triggerId (Integer/String)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect:bridge.SendGumpSelect(triggerId).
Codice interno di implementazione; non è uno script autonomo.
public int SendGumpSelect(int triggerId) => bridge.SendGumpSelect(triggerId);Parametri: triggerId (Integer/String)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect. -
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect:SendGumpSelect(NumberConversions.ToInt(triggerId)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(triggerId).
Codice interno di implementazione; non è uno script autonomo.
public int SendGumpSelect(string triggerId) => SendGumpSelect(NumberConversions.ToInt(triggerId));Parametri: gumpIndex (Any), triggerId (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect:bridge.SendGumpSelect(NumberConversions.ToInt(gumpIndex), NumberConversions.ToInt(triggerId)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(gumpIndex).
Codice interno di implementazione; non è uno script autonomo.
public int SendGumpSelect(InjectionValue gumpIndex, InjectionValue triggerId)
=> bridge.SendGumpSelect(NumberConversions.ToInt(gumpIndex), NumberConversions.ToInt(triggerId));Parametri: serial (Any), gumpId (Any), triggerId (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect:bridge.SendGumpSelect(NumberConversions.ToInt(serial), NumberConversions.ToInt(gumpId), NumberConversions.ToInt(triggerId)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(serial).
Codice interno di implementazione; non è uno script autonomo.
public int SendGumpSelect(InjectionValue serial, InjectionValue gumpId, InjectionValue triggerId)
=> bridge.SendGumpSelect(NumberConversions.ToInt(serial), NumberConversions.ToInt(gumpId), NumberConversions.ToInt(triggerId));Parametri: serial (Any), gumpId (Any), triggerId (Any), timeout (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SendGumpSelect. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SendGumpSelect:bridge.SendGumpSelect(NumberConversions.ToInt(serial), NumberConversions.ToInt(gumpId), NumberConversions.ToInt(triggerId), Math.Max(0, NumberConversions.ToInt(timeout))). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(serial).
Codice interno di implementazione; non è uno script autonomo.
public int SendGumpSelect(InjectionValue serial, InjectionValue gumpId, InjectionValue triggerId, InjectionValue timeout)
=> bridge.SendGumpSelect(NumberConversions.ToInt(serial), NumberConversions.ToInt(gumpId),
NumberConversions.ToInt(triggerId), Math.Max(0, NumberConversions.ToInt(timeout)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SetGump(object? identifier, object? key, object? stateValue);
void UO.SetGump(object? gumpId, object? identifier, object? key, object? stateValue);Modifica il campo di un server gump esistente.
-
gumpId- Solo forma a quattro argomenti: serial/id o indice Gump zero. Il modulo con tre usi -1 - l'ultimo/gump selezionato. -
identifier— Stringa "checkbox", "radio" o "textentry", maiuscole e minuscole non sono importanti. Un nome non supportato non modifica il campo. -
key- int: primo elemento LocalSerial/ID, quindi indice zero tra gli elementi del tipo specificato. Nessun elemento: messaggio di errore. -
stateValue— Per casella di controllo/radio: "checked", "true" senza distinzione tra maiuscole e minuscole o int riconosciuti diversi da zero; l'altro si spegne. Per l'immissione di testo: tutto il testo fino a ToString.
void - nessun valore. Chiama su una linea separata; il completamento non conferma l'azione del server.
- SetGumpValue chiama TrySetGumpValue; con 0 visualizza un messaggio. Cambia il campo locale di un gump già esistente e non registra un hook in attesa di una nuova finestra.
- La modifica della casella di controllo/immissione di testo non invia automaticamente una risposta al server. Per rispondere selezionare il pulsante tramite SendGumpSelect/WaitGump; I pulsanti di opzione vengono elaborati in una vista separata.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.SetGump");
UO.SetGump("checkbox", 0, 1);Parametri e flusso di esecuzione:
- Modifica il campo di un server gump esistente.
if (Truth(UO.GetGumpsCount() > 0))
{
UO.SetGump("checkbox", 0, 1);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- SetGumpValue chiama TrySetGumpValue; con 0 visualizza un messaggio. Cambia il campo locale di un gump già esistente e non registra un hook in attesa di una nuova finestra.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.SetGump(0, "textentry", 0, "Example");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- La modifica della casella di controllo/immissione di testo non invia automaticamente una risposta al server. Per rispondere selezionare il pulsante tramite SendGumpSelect/WaitGump; I pulsanti di opzione vengono elaborati in una vista separata.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.SetGump("radio", 0, "true");
UO.SetGump("checkbox", 0, 0);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: identifier (Any), key (Any), stateValue (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SetGump. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, identifier.ToString(), NumberConversions.ToInt(key), stateValue.ToString()). -
InjectionScript.Runtime.InjectionValue.ToString:identifier.ToString(). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(key).
Codice interno di implementazione; non è uno script autonomo.
public void SetGump(InjectionValue identifier, InjectionValue key, InjectionValue stateValue)
=> bridge.SetGumpValue(-1, identifier.ToString(), NumberConversions.ToInt(key), stateValue.ToString());Parametri: gumpId (Any), identifier (Any), key (Any), stateValue (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SetGump. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(NumberConversions.ToInt(gumpId), identifier.ToString(), NumberConversions.ToInt(key), stateValue.ToString()). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(gumpId). -
InjectionScript.Runtime.InjectionValue.ToString:identifier.ToString().
Codice interno di implementazione; non è uno script autonomo.
public void SetGump(InjectionValue gumpId, InjectionValue identifier, InjectionValue key, InjectionValue stateValue)
=> bridge.SetGumpValue(NumberConversions.ToInt(gumpId), identifier.ToString(), NumberConversions.ToInt(key), stateValue.ToString());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.WaitGump(object? value);
void UO.WaitGump(object? trigger1, object? trigger2);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11, object? trigger12);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11, object? trigger12, object? trigger13);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11, object? trigger12, object? trigger13, object? trigger14);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11, object? trigger12, object? trigger13, object? trigger14, object? trigger15);
void UO.WaitGump(object? trigger1, object? trigger2, object? trigger3, object? trigger4, object? trigger5, object? trigger6, object? trigger7, object? trigger8, object? trigger9, object? trigger10, object? trigger11, object? trigger12, object? trigger13, object? trigger14, object? trigger15, object? trigger16);Registra una sequenza di risposte singole ai pulsanti. L'esecuzione dello script continua immediatamente; l'assenza di una finestra non causa un ritardo di 30 secondi.
-
value— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger1— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger2— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger3— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger4— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger5— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger6— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger7— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger8— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger9— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger10— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger11— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger12— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger13— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger14— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger15— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array. -
trigger16— Elemento di sequenza: int ButtonID, numerico string, stringa con |/virgola o array di tali elementi. L'ordine è da sinistra a destra. Si applicano i limiti e le regole generali triggerId. Valore è il nome dell'unico parametro nella forma object?, che accetta anche un array.
void - non restituisce nulla: né successo, né un nuovo valore, né conferma del server.
- Cerca un vero pulsante di attivazione con il ButtonID desiderato; I pulsanti per cambiare pagina e finestra senza il pulsante richiesto vengono saltati. I successivi ID non bypassano il primo in attesa. Per una consegna di markup: non più di una risposta in una finestra. Il markup aggiornato può utilizzare lo stesso oggetto finestra.
- Il successivo WaitGump dello stesso script completa la sequenza in sospeso. La ricerca non è limitata al GumpID: usa NumGumpButton o SendGumpSelect per una selezione precisa. ButtonID=0 funzionerà solo se esiste un pulsante di attivazione esistente con ID 0; Questa non è una chiusura universale.
- Il normale completamento della procedura risparmia l'attesa. Cancellando il titolare o Terminate con il suo nome si tolgono le sue attese; TerminateAll cancella tutto, compresi quelli rimasti dopo il completamento delle procedure. Cambiare il mondo cancella la coda. Le aspettative non vengono salvate nel profilo.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.WaitGump");
UO.WaitGump(100);Parametri e flusso di esecuzione:
- 100 — ButtonID della risposta. WaitGump lo registra prima di UseObject; un'ulteriore esecuzione non significa che il server abbia già accettato la risposta.
UO.WaitGump(100);
UO.UseObject("0x40001234");Parametri e flusso di esecuzione:
- 7, 22 e 1 sono i ButtonID dei moduli sequenziali. Questi ID vengono controllati in ordine. Il numero di argomenti non specifica il ritardo; la chiamata registra l'intera sequenza.
return RunScenario();
object? RunScenario()
{
UO.WaitGump(7, 22, 1);
UO.UseObject("0x40001234");
return null;
}Parametri e flusso di esecuzione:
- La riga 7|22|1 specifica la stessa sequenza. TerminateAll cancella quindi tutti i gump pendenti e interrompe tutte le procedure; questa è un'azione globale.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.WaitGump("7|22|1");
UO.TerminateAll();
return null;
}
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: value (Any/Integer/String)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(arguments).
Codice interno di implementazione; non è uno script autonomo.
case "waitgump": CompactWaitGump(arguments); return InjectionValue.Unit;Parametri: value (Any/Integer/String)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.WaitGump. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.WaitGumpSelect:bridge.WaitGumpSelect(triggerId, 30_000).
Codice interno di implementazione; non è uno script autonomo.
public void WaitGump(int triggerId)
{
if (bridge is IApiGumpAutomation automation) automation.QueueGumpButtons(new[] { triggerId });
else bridge.WaitGumpSelect(triggerId, 30_000);
}Parametri: value (Any/Integer/String)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.WaitGump. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(chain). -
InjectionScript.Runtime.InjectionApiUO.WaitGump:WaitGump(NumberConversions.ToInt(triggerId)). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(triggerId).
Codice interno di implementazione; non è uno script autonomo.
public void WaitGump(string triggerId)
{
string text = (triggerId ?? string.Empty).Trim();
if (text.Contains('|') || text.Contains(','))
{
InjectionValue[] chain = text.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(value => new InjectionValue(value.Trim())).ToArray();
CompactWaitGump(chain);
return;
}
WaitGump(NumberConversions.ToInt(triggerId));
}Parametri: trigger1 (Any), trigger2 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6) — UO.WaitGump(Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11, trigger12) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any), trigger12 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11, trigger12, trigger13) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any), trigger12 (Any), trigger13 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11, trigger12, trigger13, trigger14) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any), trigger12 (Any), trigger13 (Any), trigger14 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11, trigger12, trigger13, trigger14, trigger15) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any), trigger12 (Any), trigger13 (Any), trigger14 (Any), trigger15 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}
UO.WaitGump(trigger1, trigger2, trigger3, trigger4, trigger5, trigger6, trigger7, trigger8, trigger9, trigger10, trigger11, trigger12, trigger13, trigger14, trigger15, trigger16) — UO.WaitGump(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parametri: trigger1 (Any), trigger2 (Any), trigger3 (Any), trigger4 (Any), trigger5 (Any), trigger6 (Any), trigger7 (Any), trigger8 (Any), trigger9 (Any), trigger10 (Any), trigger11 (Any), trigger12 (Any), trigger13 (Any), trigger14 (Any), trigger15 (Any), trigger16 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [WaitGump]. -
InjectionScript.Runtime.InjectionApiUO.CompactWaitGump:CompactWaitGump(values).
La chiamata esegue il delegate del gestore memorizzato. Il metodo di registrazione lo crea durante la costruzione dell’API.
Codice interno di implementazione; non è uno script autonomo.
values =>
{
CompactWaitGump(values);
return InjectionValue.Unit;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.WaitGumpCheck(object? index, object? state);
void UO.WaitGumpCheck(object? index, object? state, object? index2, object? state2);
void UO.WaitGumpCheck(object? index, object? state, object? index2, object? state2, object? index3, object? state3);Modifica fino a tre campi della casella di controllo del gump corrente.
-
index— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
index2— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
index3— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
state— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo. -
state2— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo. -
state3— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo.
void - nessun valore. Chiama su una linea separata; il completamento non conferma l'azione del server.
- ExecuteLegacyManualAlias esamina gli argomenti in coppia e chiama SetGumpValue(-1, "checkbox", selettore, valore) per ognuno. Tutti i moduli registrati sono argomenti 2, 4 o 6.
- Il nome UO.Wait non significa attesa: non c'è blocco né coda per futuri gump. Se il campo manca, viene visualizzato un errore. La risposta del pulsante non viene inviata.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.WaitGumpCheck");
UO.WaitGumpCheck(0, 1);Parametri e flusso di esecuzione:
- Modifica fino a tre campi della casella di controllo del gump corrente.
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpCheck(0, 1);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- ExecuteLegacyManualAlias esamina gli argomenti in coppia e chiama SetGumpValue(-1, "checkbox", selettore, valore) per ognuno. Tutti i moduli registrati sono argomenti 2, 4 o 6.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpCheck(0, 1, 1, 0);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il nome UO.Wait non significa attesa: non c'è blocco né coda per futuri gump. Se il campo manca, viene visualizzato un errore. La risposta del pulsante non viene inviata.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpCheck(0, 1, 1, 0, 2, 1);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: index (Any), state (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpcheck":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1));
break;Parametri: index (Any), state (Any), index2 (Any), state2 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpcheck":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1));
break;
UO.WaitGumpCheck(index, state, index2, state2, index3, state3) — UO.WaitGumpCheck(Any,Any,Any,Any,Any,Any)
Parametri: index (Any), state (Any), index2 (Any), state2 (Any), index3 (Any), state3 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpcheck":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "checkbox", Arg(index), Text(index + 1));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.WaitGumpEntry(object? index, object? text);
void UO.WaitGumpEntry(object? index, object? text, object? index2, object? text2);
void UO.WaitGumpEntry(object? index, object? text, object? index2, object? text2, object? index3, object? text3);Modifica fino a tre campi di testo del gump corrente.
-
index— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
index2— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
index3— int elemento ID o indice zero, come SetGump. Gli argomenti sono forniti in coppia: selettore, valore. -
text— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo. -
text2— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo. -
text3— Valore del campo fino a ToString. La casella di controllo include il numero "selezionato"/"true"/diverso da zero; textentry accetta il testo.
void - nessun valore. Chiama su una linea separata; il completamento non conferma l'azione del server.
- ExecuteLegacyManualAlias esamina gli argomenti in coppia e chiama SetGumpValue(-1, "textentry", selettore, valore) per ciascuno. Tutti i moduli registrati sono argomenti 2, 4 o 6.
- Il nome UO.Wait non significa attesa: non c'è blocco né coda per futuri gump. Se il campo manca, viene visualizzato un errore. La risposta del pulsante non viene inviata.
Ogni esempio può essere salvato come file separato .csx ed eseguito in IDE. Le funzioni oggetto UO e attesa forniscono l'host della sessione di gioco corrente. Sostituisci i nomi, le coordinate e gli indirizzi demo serial con i tuoi.
Esegui questo codice in un file .csx separato. Gli argomenti sono visibili nella chiamata; sostituisci nomi, serial e indirizzi di esempio con i tuoi.
Il comando è un’istruzione separata. Il messaggio precedente indica l’inizio della chiamata e non conferma un’azione del server.
UO.Print("Calling UO.WaitGumpEntry");
UO.WaitGumpEntry(0, "Example");Parametri e flusso di esecuzione:
- Modifica fino a tre campi di testo del gump corrente.
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpEntry(0, "Example");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- ExecuteLegacyManualAlias esamina gli argomenti in coppia e chiama SetGumpValue(-1, "textentry", selettore, valore) per ciascuno. Tutti i moduli registrati sono argomenti 2, 4 o 6.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpEntry(0, "First", 1, "Second");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parametri e flusso di esecuzione:
- Il nome UO.Wait non significa attesa: non c'è blocco né coda per futuri gump. Se il campo manca, viene visualizzato un errore. La risposta del pulsante non viene inviata.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitGumpEntry(0, "First", 1, "Second", 2, "Third");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C# distingue maiuscole e minuscole. Usare il nome UO esatto. Confrontare i flag numerici con 0; usare bool solo se la firma restituisce bool.
Parametri: index (Any), text (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpentry":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1));
break;Parametri: index (Any), text (Any), index2 (Any), text2 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpentry":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1));
break;
UO.WaitGumpEntry(index, text, index2, text2, index3, text3) — UO.WaitGumpEntry(Any,Any,Any,Any,Any,Any)
Parametri: index (Any), text (Any), index2 (Any), text2 (Any), index3 (Any), text3 (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(index). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(index + 1).
Codice interno di implementazione; non è uno script autonomo.
case "waitgumpentry":
for (int index = 0; index + 1 < arguments.Length; index += 2)
bridge.SetGumpValue(-1, "textentry", Arg(index), Text(index + 1));
break;ClassicUO — Bad Newbie & C# Scripts IDE