Repository navigation
IT UO Topic journal
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Home · C# · IDE · UO API · A–Z · Esempi · Lingue
Cerca e attendi messaggi, indici di riga, ora, colore e autore serial. Separa le vecchie righe di registro dal messaggio che ti aspetti dopo l'azione.
| Argomento | Comandi e spiegazioni |
|---|---|
| Journal | UO.Journal |
| InJournal | UO.InJournal |
| InJournalBetweenTimes | UO.InJournalBetweenTimes |
| WaitJournalLine | UO.WaitJournalLine |
| System Journal | UO.AddToSystemJournal · UO.AddToSystemJournalEx · UO.ClearSystemJournal · UO.WaitJournalLineSystem |
| Journal Ignore | UO.AddJournalIgnore · UO.ClearJournalIgnore |
| Journal Color | UO.JournalColor · UO.GetJournalColor |
| Journal Serial | UO.JournalSerial · UO.GetJournalSerial |
| Journal Timer | UO.JournalTimer |
| Found Text | UO.GetFoundedText · UO.GetFoundedTextColor · UO.GetFoundedTextID · UO.GetFoundedTextIndex · UO.GetFoundedTextSerial · UO.GetFoundedTextTimer |
UO.Journal · UO.GetJournal · UO.InJournal · UO.InJournalBetweenTimes · UO.LowJournal · UO.HighJournal · UO.ClearJournal · UO.DeleteJournal · UO.ChangeJournalLength · UO.SetJournalLine · UO.AddToJournal · UO.LastJournalMessage · UO.LastMessage
UO.WaitJournalLine · UO.WaitJournalLineSystem · UO.WaitingForJournalText
UO.AddToSystemJournal · UO.AddToSystemJournalEx · UO.ClearSystemJournal
UO.AddJournalIgnore · UO.ClearJournalIgnore
UO.JournalColor · UO.GetJournalColor · UO.JournalSerial · UO.GetJournalSerial · UO.JournalTimer · UO.LineCount · UO.LineID · UO.LineIndex · UO.LineMsgType · UO.LineName · UO.LineTextColor · UO.LineTextFont · UO.LineTime · UO.LineType
UO.FoundedParamId · UO.GetFoundedText · UO.GetFoundedTextColor · UO.GetFoundedTextID · UO.GetFoundedTextIndex · UO.GetFoundedTextSerial · UO.GetFoundedTextTimer
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 found = UO.InJournal("You see");
if (Truth(found > 0))
{
var text = UO.GetFoundedText();
UO.Print(text);
}
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
var started = Now();
var found = UO.WaitJournalLine(started, "success|failed", 3000);
if (Truth(found))
{
UO.Print(UO.GetFoundedText());
}
else
{
UO.Print("Timeout");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddJournalIgnore(object? str);Aggiunge un filtro di testo locale per le voci del registro di gioco ClassicUO.
-
str- frammento di testo non vuoto da cercare nel testo della registrazione a giornale.
void. Il comando non restituisce il numero di corrispondenze.
- Il testo è tagliato ai bordi; non viene aggiunta alcuna riga vuota. Quando si controlla un record, la ricerca di una sottostringa viene eseguita senza distinzione tra maiuscole e minuscole. La voce corrispondente è nascosta localmente nel registro del client; il server non riceve il filtro.
UO.ClearJournalIgnore()cancella tutti i filtri di testo aggiunti. Le voci già visualizzate non vengono ripristinate una volta cancellate.
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.AddJournalIgnore");
UO.AddJournalIgnore("You see");Parametri e flusso di esecuzione:
- Nascondi i nuovi post contenenti questa frase.
UO.AddJournalIgnore("You see");2. Il filtro cerca una sottostringa che non fa distinzione tra maiuscole e minuscole. - funzione di script
Parametri e flusso di esecuzione:
- Il filtro cerca una sottostringa che non fa distinzione tra maiuscole e minuscole.
return RunScenario();
object? RunScenario()
{
var phrase = "vendor";
UO.AddJournalIgnore(phrase);
return null;
}Parametri e flusso di esecuzione:
- Più chiamate aggiungono filtri di testo indipendenti.
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.AddJournalIgnore("You see");
UO.AddJournalIgnore("vendor");
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: str (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AddJournalIgnore:bridge.AddJournalIgnore(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Codice interno di implementazione; non è uno script autonomo.
case "addjournalignore": bridge.AddJournalIgnore(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddToJournal(object? text);Mostra un messaggio locale sull'avanzamento dello script o sulla condizione di arresto. Lo vedi tu, non gli altri giocatori.
Una chiamata a un metodo con un tipo restituito void viene scritta come un'istruzione autonoma C#; il risultato non può essere assegnato o controllato. Il completamento della dichiarazione non costituisce conferma da parte del server di gioco.
- Il messaggio va nell'area in basso a sinistra della finestra di gioco e nel registro locale. Una copia è disponibile nell'output IDE. Nel registro generale del manager, attiva il filtro dei messaggi script: la voce è disponibile senza la finestra di gioco. Il filtro dei messaggi del sistema server non seleziona tali record. Il pacchetto vocale di rete non viene inviato. Per la scritta sopra la testa c'è UO.CharPrint.
-
UO.Printaggiunge una nuova voce al registro dei messaggi del gioco: prima leggi o salva la stringa/risultato di ricerca desiderato, quindi registra il messaggio diagnostico. In un ciclo veloce, registra i messaggi quando si verificano le modifiche anziché a ogni iterazione. - Viene utilizzato il colore dei messaggi di sistema di questo script runtime: inizialmente 0x0440, modificato UO.ConColor. Questa è una voce locale; il nome del comando non significa invio al server.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
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.AddToJournal");
UO.AddToJournal("Script started");Parametri e flusso di esecuzione:
- elaborato=12 — numero demo di elementi già elaborati. Convert.ToString lo trasforma in una stringa. Questo esempio riporta solo un numero; non trasferisce gli oggetti stessi.
var processed = 12;
UO.AddToJournal("Processed item entries: " + Convert.ToString(processed));Parametri e flusso di esecuzione:
- Vengono letti il peso e il massimo del personaggio. Un massimo pari a zero/sconosciuto non è considerato un sovraccarico. Se peso >= massimo, viene stampata una riga e Principale termina; gli oggetti non vengono buttati via.
return RunScenario();
object? RunScenario()
{
var weight = UO.Weight();
var maximum = UO.MaxWeight();
if (Truth(maximum > 0) && Truth(weight >= maximum))
{
UO.AddToJournal("Too heavy: " + Convert.ToString(weight) + "/" + Convert.ToString(maximum));
return null;
}
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:
- Main ricorda il peso, attende 1000 millisecondi e chiama il ReportWeight completamente dichiarato. L'assistente stampa solo se il peso è cambiato e restituisce il nuovo peso per il controllo successivo. Di per sé non crea un ciclo infinito.
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 previous = UO.Weight();
UO.Wait(1000);
previous = ReportWeight(previous, UO.Weight());
return null;
}
dynamic ReportWeight(dynamic previous, dynamic current)
{
if (Truth(previous != current))
{
UO.AddToJournal("Weight changed: " + Convert.ToString(current));
}
return current;
}
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: text (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Codice interno di implementazione; non è uno script autonomo.
case "addtojournal":
case "addtosystemjournal":
case "clientprint":
SystemMessage(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddToSystemJournal(object? text);Mostra un messaggio locale sull'avanzamento dello script o sulla condizione di arresto. Lo vedi tu, non gli altri giocatori.
Una chiamata a un metodo con un tipo restituito void viene scritta come un'istruzione autonoma C#; il risultato non può essere assegnato o controllato. Il completamento della dichiarazione non costituisce conferma da parte del server di gioco.
- Il messaggio va nell'area in basso a sinistra della finestra di gioco e nel registro locale. Una copia è disponibile nell'output IDE. Nel registro generale del manager, attiva il filtro dei messaggi script: la voce è disponibile senza la finestra di gioco. Il filtro dei messaggi del sistema server non seleziona tali record. Il pacchetto vocale di rete non viene inviato. Per la scritta sopra la testa c'è UO.CharPrint.
-
UO.Printaggiunge una nuova voce al registro dei messaggi del gioco: prima leggi o salva la stringa/risultato di ricerca desiderato, quindi registra il messaggio diagnostico. In un ciclo veloce, registra i messaggi quando si verificano le modifiche anziché a ogni iterazione. - Viene utilizzato il colore dei messaggi di sistema di questo script runtime: inizialmente 0x0440, modificato UO.ConColor. Questa è una voce locale; il nome del comando non significa invio al server.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
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.AddToSystemJournal");
UO.AddToSystemJournal("Script started");Parametri e flusso di esecuzione:
- elaborato=12 — numero demo di elementi già elaborati. Convert.ToString lo trasforma in una stringa. Questo esempio riporta solo un numero; non trasferisce gli oggetti stessi.
var processed = 12;
UO.AddToSystemJournal("Processed item entries: " + Convert.ToString(processed));Parametri e flusso di esecuzione:
- Vengono letti il peso e il massimo del personaggio. Un massimo pari a zero/sconosciuto non è considerato un sovraccarico. Se peso >= massimo, viene stampata una riga e Principale termina; gli oggetti non vengono buttati via.
return RunScenario();
object? RunScenario()
{
var weight = UO.Weight();
var maximum = UO.MaxWeight();
if (Truth(maximum > 0) && Truth(weight >= maximum))
{
UO.AddToSystemJournal("Too heavy: " + Convert.ToString(weight) + "/" + Convert.ToString(maximum));
return null;
}
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:
- Main ricorda il peso, attende 1000 millisecondi e chiama il ReportWeight completamente dichiarato. L'assistente stampa solo se il peso è cambiato e restituisce il nuovo peso per il controllo successivo. Di per sé non crea un ciclo infinito.
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 previous = UO.Weight();
UO.Wait(1000);
previous = ReportWeight(previous, UO.Weight());
return null;
}
dynamic ReportWeight(dynamic previous, dynamic current)
{
if (Truth(previous != current))
{
UO.AddToSystemJournal("Weight changed: " + Convert.ToString(current));
}
return current;
}
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: text (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Codice interno di implementazione; non è uno script autonomo.
case "addtojournal":
case "addtosystemjournal":
case "clientprint":
SystemMessage(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddToSystemJournalEx(object? text, object? textColor, object? bgColor, object? fontSize, object? fontName);Visualizza una linea locale nella finestra di gioco e registra una visualizzazione approssimativa del disegno specificato. Utile per messaggi diagnostici di script distinguibili.
-
textColor— Colore del testo nel formato 0xRRGGBB, non UO hue. Il canale alfa non viene utilizzato. Esempio 0xFF8800 - arancione; il motore seleziona il colore più vicino dalla tavolozza UO. -
bgColor- Numero negativo - sfondo predefinito; non negativo - RGB 0xRRGGBB. Lo sfondo richiesto viene scritto nell'output di IDE, ma nella finestra di gioco non viene disegnato un rettangolo colorato separato dietro la linea. -
fontSize— Dimensione richiesta in punti: il valore <= 0 è sostituito da 10, quindi viene applicato l'intervallo 4..72. Il numero del carattere del gioco viene calcolato come intero come (dimensione + 1) / 3; Non esiste una dimensione esatta del desktop nella finestra di gioco. -
fontName- Nome del carattere per scrivere le informazioni di progettazione sull'output IDE. Lo spazio bianco attorno ai bordi viene rimosso; il valore vuoto significa Consolas. Questo comando non carica un carattere Windows arbitrario nella finestra del gioco.
Una chiamata a un metodo con un tipo restituito void viene scritta come un'istruzione autonoma C#; il risultato non può essere assegnato o controllato. Il completamento della dichiarazione non costituisce conferma da parte del server di gioco.
- Sono richiesti tutti e cinque gli argomenti: Testo, TextColor, BGColor, FontSize, FontName. Il testo è visibile localmente; in IDE viene inoltre salvato il disegno richiesto. Il colore dello sfondo e il nome del carattere sono spunti di progettazione e non è garantito che vengano riprodotti esattamente. ConColor non modifica il RGB passato esplicitamente.
- Il messaggio va nell'area in basso a sinistra della finestra di gioco e nel registro locale. Una copia è disponibile nell'output IDE. Nel registro generale del manager, attiva il filtro dei messaggi script: la voce è disponibile senza la finestra di gioco. Il filtro dei messaggi del sistema server non seleziona tali record. Il pacchetto vocale di rete non viene inviato. Per la scritta sopra la testa c'è UO.CharPrint.
- UO.Print · UO.CharPrint · UO.ClientPrintEx · UO.AddToSystemJournalEx
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.AddToSystemJournalEx");
UO.AddToSystemJournalEx("Route started", 0xFF8800, -1, 12, "Consolas");Parametri e flusso di esecuzione:
- Messaggio arancione, sfondo predefinito - 1, dimensione 12: questo rende il carattere del gioco 4. Consolas è memorizzato nelle informazioni IDE. Il colore può variare dall'esatto RGB a causa della tavolozza del gioco.
UO.AddToSystemJournalEx("Route started", 0xFF8800, -1, 12, "Consolas");Parametri e flusso di esecuzione:
- Un valore BGColor positivo di 0x112233 memorizza la richiesta di background in IDE. Poiché viene utilizzato FontSize=0 10, FontName vuoto diventa Consolas. Nella finestra di gioco, lo sfondo non viene dipinto secondo questo parametro.
return RunScenario();
object? RunScenario()
{
UO.AddToSystemJournalEx("Formatting details", 0x33AAFF, 0x112233, 0, "");
return null;
}Parametri e flusso di esecuzione:
- ReportCount è una procedura completamente dichiarata. Segnala solo le variazioni di quantità, selezionando il verde RGB per aumentare e il rosso per diminuire. Restituisce una nuova quantità per il confronto successivo; il risultato appartiene a ReportCount, non a AddToSystemJournalEx.
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 previous = 10;
previous = ReportCount(previous, 12);
return null;
}
dynamic ReportCount(dynamic previous, dynamic current)
{
if (Truth(previous != current))
{
var textColor = 0xCC3333;
if (Truth(current > previous))
{
textColor = 0x33AA66;
}
UO.AddToSystemJournalEx("Count: " + Convert.ToString(current), textColor, -1, 10, "Consolas");
}
return current;
}
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.
UO.AddToSystemJournalEx(text, textColor, bgColor, fontSize, fontName) — UO.AddToSystemJournalEx(Any,Any,Any,Any,Any)
Parametri: text (Any), textColor (Any), bgColor (Any), fontSize (Any), fontName (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PrintFormattedJournal:bridge.PrintFormattedJournal(Text(0), Arg(1), Arg(2), Arg(3), Text(4)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1).
Codice interno di implementazione; non è uno script autonomo.
case "addtosystemjournalex":
bridge.PrintFormattedJournal(Text(0), Arg(1), Arg(2), Arg(3), Text(4)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ChangeJournalLength(object? newLength);Modifica il limite della cronologia del registro client che viene conservato.
-
newLength— Numero di record da convertire in int. Limiti di runtime inferiori a 1; JournalManager limiti dall'alto Costanti.MAX_JOURNAL_HISTORY_COUNT.
void: nessun valore restituito.
- Salva lo stato.JournalLength, quindi richiama SetJournalLength. JournalManager riduce la cronologia esistente rimuovendo le voci più vecchie fino a un nuovo limite. Le voci filtrate e la visualizzazione del registro sono meccanismi separati.
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.ChangeJournalLength");
UO.ChangeJournalLength(100);Parametri e flusso di esecuzione:
- Il nuovo limite limita il numero di record salvati.
UO.ChangeJournalLength(100);Parametri e flusso di esecuzione:
- Quando il limite viene ridotto, le vecchie voci vengono cancellate.
return RunScenario();
object? RunScenario()
{
UO.ChangeJournalLength(1);
return null;
}Parametri e flusso di esecuzione:
- Lo zero viene normalizzato su 1 anziché cancellare il registro.
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.ChangeJournalLength(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: newLength (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0, 100). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLength:bridge.SetJournalLength(state.JournalLength).
Codice interno di implementazione; non è uno script autonomo.
case "changejournallength": state.JournalLength = Math.Max(1, Arg(0, 100)); bridge.SetJournalLength(state.JournalLength); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearJournal();Rimuove le righe dal registro locale condiviso.
Non ci sono parametri.
void: nessun valore restituito. Non restituisce il numero di righe eliminate. Il contatore delle visite e la selezione dello script corrente vengono reimpostati.
- Il buffer condiviso è disponibile per tutti gli script: le righe cancellate non sono più presenti. Le istantanee precedentemente salvate da altri script potrebbero rimanere, ma il loro indice diventerà -1.
- Senza un filtro di testo, l'intero buffer Classic UO viene cancellato, incluso System. Il file di registro locale e i messaggi del server non vengono eliminati.
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.ClearJournal");
UO.ClearJournal();Parametri e flusso di esecuzione:
- Non ci sono argomenti. Tutte le righe del buffer condiviso vengono cancellate.
- L'ultimo contatore di ricerca diventa 0; Print può aggiungere una nuova riga dopo aver cancellato.
UO.ClearJournal();
var count = UO.LineCount();
UO.Print("Search matches after clear: " + Convert.ToString(count));Parametri e flusso di esecuzione:
- La cancellazione avviene prima che il timestamp venga salvato. 1000 - attesa limitata in millisecondi.
- Un timestamp è solitamente sufficiente per escludere i vecchi messaggi; La pulizia influisce anche su altri script.
return RunScenario();
object? RunScenario()
{
UO.ClearJournal();
var started = Now();
var found = UO.WaitJournalLine(started, "notice", 1000);
UO.Print(Convert.ToString(found));
return null;
}Parametri e flusso di esecuzione:
- Dopo la pulizia tramite lo script corrente indice=-1, anche se è stata eliminata solo una parte del buffer.
- La variabile text memorizza la copia letta in precedenza e GetFoundedText è già stata cancellata.
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 text = UO.Journal(0);
UO.ClearJournal();
var index = UO.LineIndex();
UO.Print(Convert.ToString(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: Nessun parametro.
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.DeleteJournal:DeleteJournal().
Codice interno di implementazione; non è uno script autonomo.
case "clearjournal": DeleteJournal(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearJournalIgnore();Rimuove tutti i filtri di testo JournalManager.
Non ci sono parametri.
void: nessun valore restituito.
- La rimozione dei filtri non elimina la cronologia né annulla i filtri dei nomi AddChatUserIgnore.
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.ClearJournalIgnore");
UO.ClearJournalIgnore();Parametri e flusso di esecuzione:
- Rimuove tutti i filtri di testo JournalManager.
UO.ClearJournalIgnore();Parametri e flusso di esecuzione:
- Consentire la visualizzazione del testo che vedi.
return RunScenario();
object? RunScenario()
{
UO.AddJournalIgnore("You see");
UO.ClearJournalIgnore();
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.ClearJournalIgnore();
UO.ClearJournalIgnore();
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.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearJournalIgnore:bridge.ClearJournalIgnore().
Codice interno di implementazione; non è uno script autonomo.
case "clearjournalignore": bridge.ClearJournalIgnore(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearSystemJournal();Rimuove le righe con il nome dell'autore System.
Non ci sono parametri.
void: nessun valore restituito. Non restituisce il numero di righe eliminate. Il contatore delle visite e la selezione dello script corrente vengono reimpostati.
- Il buffer condiviso è disponibile per tutti gli script: le righe cancellate non sono più presenti. Le istantanee precedentemente salvate da altri script potrebbero rimanere, ma il loro indice diventerà -1.
- Il sistema è riconosciuto dal nome dell'autore, senza distinzione tra maiuscole e minuscole; Questo è il filtro del giornale generale ClassicUO.
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.ClearSystemJournal");
UO.ClearSystemJournal();Parametri e flusso di esecuzione:
- Non ci sono argomenti. Vengono rimosse solo le righe di sistema.
- L'ultimo contatore di ricerca diventa 0; Print può aggiungere una nuova riga dopo aver cancellato.
UO.ClearSystemJournal();
var count = UO.LineCount();
UO.Print("Search matches after clear: " + Convert.ToString(count));Parametri e flusso di esecuzione:
- La cancellazione avviene prima che il timestamp venga salvato. 1000 - attesa limitata in millisecondi.
- Un timestamp è solitamente sufficiente per escludere i vecchi messaggi; La pulizia influisce anche su altri script.
return RunScenario();
object? RunScenario()
{
UO.ClearSystemJournal();
var started = Now();
var found = UO.WaitJournalLine(started, "notice", 1000);
UO.Print(Convert.ToString(found));
return null;
}Parametri e flusso di esecuzione:
- Dopo la pulizia tramite lo script corrente indice=-1, anche se è stata eliminata solo una parte del buffer.
- La variabile text memorizza la copia letta in precedenza e GetFoundedText è già stata cancellata.
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 text = UO.Journal(0);
UO.ClearSystemJournal();
var index = UO.LineIndex();
UO.Print(Convert.ToString(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: Nessun parametro.
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.DeleteSystemJournal:bridge.DeleteSystemJournal(). -
InjectionScript.Runtime.InjectionApiUO.SelectJournalEntry:SelectJournalEntry(null).
Codice interno di implementazione; non è uno script autonomo.
case "clearsystemjournal": bridge.DeleteSystemJournal(); SelectJournalEntry(null); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.DeleteJournal();
void UO.DeleteJournal(object? text);Rimuove le righe dal registro locale condiviso.
-
text— La sottostringa cercata o diverse alternative tramite |, ad esempio successo|non riuscita. Gli spazi ai bordi di ciascuna alternativa vengono rimossi, le alternative vuote vengono saltate. Questo è testo semplice, non un'espressione regolare. Utilizza un modello non vuoto. Opzionale solo per DeleteJournal: durante la trasmissione, le stringhe corrispondenti vengono rimosse senza distinzione tra maiuscole e minuscole; senza argomenti, l'intero buffer viene cancellato.
void: nessun valore restituito. Non restituisce il numero di righe eliminate. Il contatore delle visite e la selezione dello script corrente vengono reimpostati.
- Il buffer condiviso è disponibile per tutti gli script: le righe cancellate non sono più presenti. Le istantanee precedentemente salvate da altri script potrebbero rimanere, ma il loro indice diventerà -1.
- Senza un filtro di testo, l'intero buffer Classic UO viene cancellato, incluso System. Il file di registro locale e i messaggi del server non vengono eliminati.
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.DeleteJournal");
UO.DeleteJournal();Parametri e flusso di esecuzione:
- Non ci sono argomenti. Tutte le righe del buffer condiviso vengono cancellate.
- L'ultimo contatore di ricerca diventa 0; Print può aggiungere una nuova riga dopo aver cancellato.
UO.DeleteJournal();
var count = UO.LineCount();
UO.Print("Search matches after clear: " + Convert.ToString(count));Parametri e flusso di esecuzione:
- La cancellazione avviene prima che il timestamp venga salvato. 1000 - attesa limitata in millisecondi.
- Un timestamp è solitamente sufficiente per escludere i vecchi messaggi; La pulizia influisce anche su altri script.
return RunScenario();
object? RunScenario()
{
UO.DeleteJournal();
var started = Now();
var found = UO.WaitJournalLine(started, "notice", 1000);
UO.Print(Convert.ToString(found));
return null;
}Parametri e flusso di esecuzione:
- Dopo la pulizia tramite lo script corrente indice=-1, anche se è stata eliminata solo una parte del buffer.
- La variabile text memorizza la copia letta in precedenza e GetFoundedText è già stata cancellata.
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 text = UO.Journal(0);
UO.DeleteJournal();
var index = UO.LineIndex();
UO.Print(Convert.ToString(index));
return null;
}
}Parametri e flusso di esecuzione:
- il testo contiene due sottostringhe. Le righe di uno qualsiasi di essi vengono cancellate senza tenere conto del caso; i messaggi rimanenti rimangono.
- trovato=0 se non ci sono nuovi messaggi corrispondenti dopo l'eliminazione. Il modello vuoto in questa implementazione corrisponde a tutte le stringhe.
UO.DeleteJournal("notice|warning");
var found = UO.InJournal("notice|warning", -1);
UO.Print(Convert.ToString(found));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.DeleteJournal. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.DeleteJournal:bridge.DeleteJournal(). -
InjectionScript.Runtime.InjectionApiUO.SelectJournalEntry:SelectJournalEntry(null).
Codice interno di implementazione; non è uno script autonomo.
public void DeleteJournal()
{
bridge.DeleteJournal();
SelectJournalEntry(null);
}Parametri: text (Any)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.DeleteJournal. -
InjectionScript.Runtime.InjectionApiUO.DeleteJournal:DeleteJournal((string)text).
Codice interno di implementazione; non è uno script autonomo.
public void DeleteJournal(InjectionValue text) => DeleteJournal((string)text);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FoundedParamId();Restituisce il numero dell'alternativa del modello di ricerca corrispondente.
Non ci sono parametri.
int è l'indice da 0 nell'elenco delle alternative non vuote fino a |: successo|fallito dà 0 per successo e 1 per fallito. Se sono presenti più alternative adatte, viene presa la prima nel modello. Senza partita o dopo un diretto Journal anche 0. Questo non è il serial dell'autore, né il numero di riga, né il type del messaggio.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Per prima cosa controlla il risultato della ricerca > 0. Il valore di 0 di per sé non conferma il successo. Gli spazi marginali e le alternative vuote vengono rimossi prima della numerazione.
- https://forum.yoko.com.ua/viewtopic.php?p=27633 ; . In questo adattamento, ID sta per alternativa, i campi autore e tipo sono disponibili separatamente tramite LineID/LineMsgType.
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.FoundedParamId();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- il successo è un'alternativa a 0, il fallimento è un'alternativa a 1. Il successo della ricerca viene controllato separatamente.
- Questa è l'analisi del testo, non la conferma di un'operazione di gioco da parte del server.
if (Truth(UO.InJournal("success|failed") > 0))
{
var outcome = UO.FoundedParamId();
if (Truth(outcome == 0))
{
UO.Print("Success text");
}
else
{
UO.Print("Failure text");
}
}
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 disabilita il registro. I risultati 0, 1, 2 corrispondono all'ordine delle alternative.
- Se la stringa contiene più opzioni, viene restituito il primo modello corrispondente in ordine.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.InJournal("mining|ore|empty", -1) > 0))
{
var kind = UO.FoundedParamId();
UO.Print("Alternative: " + Convert.ToString(kind));
}
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:
- Journal(0) modifica la scelta e reimposta le alternative ID, quindi il risultato viene memorizzato in anticipo.
- La nuova chiamata getter dopo Journal non descrive più il modello 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()
{
if (Truth(UO.InJournal("success|failed") > 0))
{
var outcome = UO.FoundedParamId();
var latest = UO.Journal(0);
UO.Print("Saved outcome: " + Convert.ToString(outcome));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "foundedparamid":
return new InjectionValue(foundedTextId >= 0 ? foundedTextId : 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetFoundedText();Restituisce il testo della voce di registro selezionata.
Non ci sono parametri.
string — testo della voce selezionata; riga vuota senza selezione. Il testo vuoto è accettabile per una voce esistente.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
- Directory primaria: https://forum.yoko.com.ua/viewtopic.php?p=27633.
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.GetFoundedText();
UO.Print("GetFoundedText: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- string — testo della voce selezionata; riga vuota senza selezione. Il testo vuoto è accettabile per una voce esistente.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.GetFoundedText();
UO.Print("Text: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.GetFoundedText();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.GetFoundedText();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: string / String.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public string GetFoundedText() => selectedJournalEntry?.Text ?? string.Empty;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetFoundedTextColor();Restituisce il colore della voce di registro selezionata.
Non ci sono parametri.
string - UO hue nel formato 0x0044 (4 cifre esadecimali). Nessuna scelta - 0x0000; Per un messaggio è accettabile anche hue=0. Questo non è RGB.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
- Directory primaria: https://forum.yoko.com.ua/viewtopic.php?p=27633.
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.GetFoundedTextColor();
UO.Print("GetFoundedTextColor: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- string - UO hue nel formato 0x0044 (4 cifre esadecimali). Nessuna scelta - 0x0000; Per un messaggio è accettabile anche hue=0. Questo non è RGB.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.GetFoundedTextColor();
UO.Print("Hue: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.GetFoundedTextColor();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.GetFoundedTextColor();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: string / String.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public string GetFoundedTextColor() => selectedJournalEntry != null ? $"0x{selectedJournalEntry.Color:X4}" : "0x0000";Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetFoundedTextID();Restituisce il numero dell'alternativa del modello di ricerca corrispondente.
Non ci sono parametri.
int è l'indice da 0 nell'elenco delle alternative non vuote fino a |: successo|fallito dà 0 per successo e 1 per fallito. Se sono presenti più alternative adatte, viene presa la prima nel modello. Senza partita o dopo un diretto Journal anche 0. Questo non è il serial dell'autore, né il numero di riga, né il type del messaggio.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Per prima cosa controlla il risultato della ricerca > 0. Il valore di 0 di per sé non conferma il successo. Gli spazi marginali e le alternative vuote vengono rimossi prima della numerazione.
- https://forum.yoko.com.ua/viewtopic.php?p=27633 ; . In questo adattamento, ID sta per alternativa, i campi autore e tipo sono disponibili separatamente tramite LineID/LineMsgType.
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.GetFoundedTextID();
UO.Print("GetFoundedTextID: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- il successo è un'alternativa a 0, il fallimento è un'alternativa a 1. Il successo della ricerca viene controllato separatamente.
- Questa è l'analisi del testo, non la conferma di un'operazione di gioco da parte del server.
if (Truth(UO.InJournal("success|failed") > 0))
{
var outcome = UO.GetFoundedTextID();
if (Truth(outcome == 0))
{
UO.Print("Success text");
}
else
{
UO.Print("Failure text");
}
}
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 disabilita il registro. I risultati 0, 1, 2 corrispondono all'ordine delle alternative.
- Se la stringa contiene più opzioni, viene restituito il primo modello corrispondente in ordine.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.InJournal("mining|ore|empty", -1) > 0))
{
var kind = UO.GetFoundedTextID();
UO.Print("Alternative: " + Convert.ToString(kind));
}
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:
- Journal(0) modifica la scelta e reimposta le alternative ID, quindi il risultato viene memorizzato in anticipo.
- La nuova chiamata getter dopo Journal non descrive più il modello 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()
{
if (Truth(UO.InJournal("success|failed") > 0))
{
var outcome = UO.GetFoundedTextID();
var latest = UO.Journal(0);
UO.Print("Saved outcome: " + Convert.ToString(outcome));
}
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: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public int GetFoundedTextID() => foundedTextId >= 0 ? foundedTextId : 0;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetFoundedTextIndex();Restituisce l'indice corrente della voce selezionata, se è ancora memorizzato nel registro.
Non ci sono parametri.
int è l'indice corrente da 0 (riga più recente). -1 significa che non c'è scelta o che la voce selezionata è già stata cancellata/precedente. Questo non è il risultato di InJournal: non è necessario sottrarre 1 dall'indice.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- L'indice viene ricalcolato in base all'identità del record. Nuovi messaggi lo aumentano. Il vecchio indice memorizzato non è costante ID; per il testo, GetFoundedText è più sicuro.
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.GetFoundedTextIndex();
UO.Print("GetFoundedTextIndex: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Getter senza argomenti legge la selezione dello script corrente. 0 — nuova riga, -1 — nessuna riga nel buffer corrente.
- Il testo viene preso dalla voce salvata in modo che nuovi messaggi non lo sostituiscano.
if (Truth(UO.InJournal("notice") > 0))
{
var index = UO.GetFoundedTextIndex();
var text = UO.GetFoundedText();
UO.Print(Convert.ToString(index) + ": " + text);
}
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:
- Journal(0) seleziona l'ultima voce; il controllo esclude un log vuoto.
- Per una voce valida è consentito il testo vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
if (Truth(UO.GetFoundedTextIndex() >= 0))
{
UO.Print(text);
}
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:
- L'attesa 100 ms consente l'arrivo di nuovi messaggi. dopo trova di nuovo la stessa voce.
- dopo può aumentare o diventare -1 quando viene rimosso; GetFoundedText contiene ancora il testo salvato.
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.InJournal("needle") > 0))
{
var before = UO.GetFoundedTextIndex();
UO.Wait(100);
var after = UO.GetFoundedTextIndex();
UO.Print(Convert.ToString(before) + " -> " + Convert.ToString(after));
}
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: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public int GetFoundedTextIndex() => selectedJournalEntry != null && bridge is IApiJournalReader reader
? reader.FindJournalEntryIndex(selectedJournalEntry.Identity) : foundedTextIndex;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetFoundedTextSerial();Restituisce serial l'autore della registrazione a giornale selezionata.
Non ci sono parametri.
string - serial dell'autore in formato 0x00001234 (8 cifre esadecimali). Nessuna scelta - 0x00000000. Questo non è il type di un argomento o l'indice di una rivista.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
- Directory primaria: https://forum.yoko.com.ua/viewtopic.php?p=27633.
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.GetFoundedTextSerial();
UO.Print("GetFoundedTextSerial: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- string - serial dell'autore in formato 0x00001234 (8 cifre esadecimali). Nessuna scelta - 0x00000000. Questo non è il type di un argomento o l'indice di una rivista.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.GetFoundedTextSerial();
UO.Print("Speaker serial: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.GetFoundedTextSerial();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.GetFoundedTextSerial();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: string / String.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public string GetFoundedTextSerial() => selectedJournalEntry != null
? $"0x{unchecked((uint)selectedJournalEntry.Serial):X8}" : "0x00000000";Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetFoundedTextTimer();Restituisce il timestamp in millisecondi della voce di log selezionata.
Non ci sono parametri.
int — momento di registrazione in millisecondi dall'inizio del runtime, compatibile con Now(). Le voci prima dell'inizio danno 0. Anche senza scelta 0; un segno di calendario errato dà -1. Non è passato o decimi di secondo UO.Timer().
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
- Directory primaria: https://forum.yoko.com.ua/viewtopic.php?p=27633.
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.GetFoundedTextTimer();
UO.Print("GetFoundedTextTimer: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int — momento di registrazione in millisecondi dall'inizio del runtime, compatibile con Now(). Le voci prima dell'inizio danno 0. Anche senza scelta 0; un segno di calendario errato dà -1. Non è passato o decimi di secondo UO.Timer().
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.GetFoundedTextTimer();
UO.Print("Timestamp ms: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.GetFoundedTextTimer();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.GetFoundedTextTimer();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetFoundedTextTimer. -
InjectionScript.Runtime.InjectionApiUO.JournalEntryTime:JournalEntryTime(selectedJournalEntry.Timestamp).
Codice interno di implementazione; non è uno script autonomo.
public int GetFoundedTextTimer() => selectedJournalEntry != null ? JournalEntryTime(selectedJournalEntry.Timestamp) : 0;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetJournal(object? index);Legge il testo di una riga all'indice corrente e seleziona quella voce per GetFoundedText/Line*.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string — testo della riga o una riga vuota se l'indice non è corretto/il giornale è vuoto. Una riga esistente può anche avere testo vuoto: dopo la lettura, LineIndex >= 0 conferma che la voce è stata selezionata. Non è il numero di righe.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Reset a lettura diretta ID alternative; GetFoundedTextID/FoundedParamId è seguito da 0. Journal stesso non ricalcola LineCount.
- https://forum.yoko.com.ua/viewtopic.php?p=27633 ; .
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.GetJournal(0);
UO.Print("GetJournal: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è la linea più recente. Innanzitutto vengono letti il testo e l'autore, quindi viene visualizzato il risultato.
- Print può aggiungere un messaggio; il testo/autore salvato si riferisce alla voce precedentemente selezionata.
var text = UO.GetJournal(0);
var author = UO.LineName();
UO.Print(author + ": " + text);Parametri e flusso di esecuzione:
- 1 è la voce precedente, HighJournal è l'indice massimo disponibile.
- Il registro potrebbe cambiare tra una chiamata e l'altra. Per i dati di una riga già trovata, utilizzare GetFoundedText.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var text = UO.GetJournal(1);
UO.Print(text);
}
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:
- LineIndex=-1 significa che la voce selezionata è mancante/eliminata. Len(testo)=0 di per sé non significa questo.
- Memorizzare il risultato del test finché l'output diagnostico non viene aggiunto al registro.
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 text = UO.GetJournal(0);
var index = UO.LineIndex();
if (Truth(index < 0))
{
UO.Print("No record");
}
else
{
UO.Print("Text length: " + Convert.ToString(Len(text)));
}
return null;
}
int Len(object? value) => Convert.ToString(value)?.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: index (Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetJournalText. -
InjectionScript.Runtime.InjectionApiUO.SelectJournalEntry:SelectJournalEntry(ReadJournalSnapshot(index)). -
InjectionScript.Runtime.InjectionApiUO.ReadJournalSnapshot:ReadJournalSnapshot(index).
Codice interno di implementazione; non è uno script autonomo.
public string GetJournalText(int index)
{
SelectJournalEntry(ReadJournalSnapshot(index));
return selectedJournalEntry?.Text ?? string.Empty;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetJournalColor(object? index);Legge il campo hue della riga all'indice corrente senza modificare la voce selezionata.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string - UO hue come 0x0044; se l'indice 0x0000 non è corretto. Questo non è RGB.
- Ogni chiamata legge la posizione corrente. Per testo e campi coerenti dello stesso record, prima Journal(index), quindi GetFoundedText/Line*. I valori nulli possono essere dati reali.
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.GetJournalColor(0);
UO.Print("GetJournalColor: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della nuova riga. Viene verificata la presenza di un buffer.
- string - UO hue come 0x0044; se l'indice 0x0000 non è corretto. Questo non è RGB.
if (Truth(UO.HighJournal() >= 0))
{
var value = UO.GetJournalColor(0);
UO.Print(Convert.ToString(value));
}
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 è la riga precedente, non serial=1.
- La voce GetFoundedText/Line* selezionata dalla ricerca non viene modificata.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var value = UO.GetJournalColor(1);
UO.Print(Convert.ToString(value));
}
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:
- value copia il campo al momento della chiamata. L'attesa non aggiorna la variabile.
- Per leggere nuovamente la riga corrente 0, richiamare nuovamente il comando; questa potrebbe già essere un'altra voce.
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 value = UO.GetJournalColor(0);
UO.Wait(100);
UO.Print("Saved value: " + Convert.ToString(value));
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: index (Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.JournalColor. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalColor:bridge.JournalColor(index).
Codice interno di implementazione; non è uno script autonomo.
public string JournalColor(int index) => bridge.JournalColor(index);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.GetJournalSerial(object? index);Legge il campo serial della riga all'indice corrente senza modificare la voce selezionata.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string - serial dell'autore come 0x00001234; se l'indice 0x00000000 non è corretto.
- Ogni chiamata legge la posizione corrente. Per testo e campi coerenti dello stesso record, prima Journal(index), quindi GetFoundedText/Line*. I valori nulli possono essere dati reali.
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.GetJournalSerial(0);
UO.Print("GetJournalSerial: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della nuova riga. Viene verificata la presenza di un buffer.
- string - serial dell'autore come 0x00001234; se l'indice 0x00000000 non è corretto.
if (Truth(UO.HighJournal() >= 0))
{
var value = UO.GetJournalSerial(0);
UO.Print(Convert.ToString(value));
}
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 è la riga precedente, non serial=1.
- La voce GetFoundedText/Line* selezionata dalla ricerca non viene modificata.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var value = UO.GetJournalSerial(1);
UO.Print(Convert.ToString(value));
}
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:
- value copia il campo al momento della chiamata. L'attesa non aggiorna la variabile.
- Per leggere nuovamente la riga corrente 0, richiamare nuovamente il comando; questa potrebbe già essere un'altra voce.
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 value = UO.GetJournalSerial(0);
UO.Wait(100);
UO.Print("Saved value: " + Convert.ToString(value));
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: index (Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.JournalSerial. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalSerial:bridge.JournalSerial(index).
Codice interno di implementazione; non è uno script autonomo.
public string JournalSerial(int index) => bridge.JournalSerial(index);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.HighJournal();Restituisce l'indice di log massimo disponibile.
Non ci sono parametri.
int: -1 quando il caricatore è vuoto; altrimenti il numero di record memorizzati meno 1 è l'indice del record più vecchio disponibile. Journal/GetJournal utilizza indici zero dalla nuova voce alla vecchia voce; un risultato positivo InJournal utilizza un conteggio singolo diverso.
- Nuovi messaggi e pulizia cambiano i confini. L'ordine qui è Journal(0) dalla nuova voce alla vecchia voce.
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.HighJournal();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- Un limite negativo indica un buffer vuoto.
- Se il buffer non è vuoto, Journal(0) legge una nuova voce.
if (Truth(UO.HighJournal() >= 0))
{
var text = UO.Journal(0);
UO.Print(text);
}
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:
- HighJournal=-1 quando il log è vuoto, quindi totale=0. LowJournal descrive il limite inferiore, non il numero di righe.
- Questo è il numero totale di righe archiviate localmente; LineCount si riferisce all'ultima ricerca.
return RunScenario();
object? RunScenario()
{
var total = UO.HighJournal() + 1;
UO.Print("Rows: " + Convert.ToString(total));
return null;
}Parametri e flusso di esecuzione:
- l'indice viene passato direttamente al Journal, senza sottrarre uno.
- L'indice potrebbe spostarsi con i messaggi in arrivo; Il buffer non viene congelato tra le chiamate.
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 index = UO.HighJournal();
if (Truth(index >= 0))
{
var text = UO.Journal(index);
UO.Print(text);
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalEntryCount:bridge.JournalEntryCount().
Codice interno di implementazione; non è uno script autonomo.
case "highjournal": return new InjectionValue(bridge.JournalEntryCount() == 0 ? -1 : bridge.JournalEntryCount() - 1);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.InJournal(object? pattern);
int UO.InJournal(object? pattern, object? maxLinesOrIgnoreCase);
int UO.InJournal(object? pattern, object? serial, object? color);
int UO.InJournal(object? pattern, object? serial, object? color, object? startTime);
int UO.InJournal(object? pattern, object? serial, object? color, object? startTime, object? endTime);
int UO.InJournal(object? pattern, object? serial, object? color, object? startTime, object? endTime, object? newestOnly);
int UO.InJournal(object? pattern, object? serial, object? color, object? startTime, object? endTime, object? newestOnly, object? caseSensitive);Cerca un messaggio nel registro locale e salva il record trovato con i relativi campi.
-
pattern— La sottostringa cercata o diverse alternative tramite |, ad esempio successo|non riuscita. Gli spazi ai bordi di ciascuna alternativa vengono rimossi, le alternative vuote vengono saltate. Questo è testo semplice, non un'espressione regolare. Utilizza un modello non vuoto. -
maxLinesOrIgnoreCase— Solo la forma di due argomenti: -1 — l'intero registro disponibile, senza distinzione tra maiuscole e minuscole; 0 - non spuntare nessuna riga; numero positivo: seleziona non più di questo numero di ultime righe, con distinzione tra maiuscole e minuscole. Altri valori negativi sono limitati a 0. -
serial— Il terzo e i successivi argomenti includono la forma estesa. Il secondo argomento di questa forma è il numerico serial dell'autore del messaggio, non graphic/type. -1 disabilita il filtro; 0 seleziona serial=0. Anche una stringa esadecimale contenente un numero viene convertita in un numero; il nome alias dell'oggetto non è consentito qui. -
color— Il terzo argomento della forma estesa è numerico UO hue; -1 o 0xFFFF disabilita il filtro. 0 seleziona hue=0. Questo non è RGB. -
startTime- Etichetta iniziale opzionale Now(), int in millisecondi. Dato un endTime positivo, il valore startTime=0 indica l'inizio dell'esecuzione. Se entrambi i contrassegni sono mancanti/non positivi, non è presente alcun filtro temporale. -
endTime— Etichetta finale opzionale Now(), int in millisecondi. Assente o 0 - ora corrente. L'ordine dei confini positivi non è significativo. L'etichetta futura è limitata all'ora corrente. -
newestOnly- Opzionale bool, predefinito false. true interrompe la ricerca dopo la prima corrispondenza; LineCount poi 0 o 1. false conta tutte le righe corrispondenti, scegliendo comunque quella più recente. -
caseSensitive— Forma estesa bool opzionale, predefinita false. true fa distinzione tra maiuscole e minuscole. Un modulo solo modello, invece, fa sempre distinzione tra maiuscole e minuscole.
int: 0 – non esiste una linea adatta; un numero positivo è la posizione della voce corrispondente più recente, contando dalla fine dell'intero registro, iniziando con 1. Questo non è il numero di corrispondenze o il numero di alternative al modello. Per l'indice zero utilizzare LineIndex/GetFoundedTextIndex, per il numero di corrispondenze utilizzare LineCount, per il numero alternativo utilizzare GetFoundedTextID. Nuovi messaggi successivi potrebbero modificare l'indice, ma i campi salvati del record selezionato rimangono disponibili.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- La ricerca non prevede nuovo testo. Il modello vuoto nell'attuale InJournal corrisponde a qualsiasi stringa, ma non fornisce ID un'alternativa; per verificare la presenza di stringhe, utilizzare HighJournal/LowJournal.
- La forma a due argomenti specifica il limite/caso, non serial. Per serial è obbligatorio passare anche il colore. Un argomento SetJournalLine può limitare l'area di ricerca.
- https://forum.yoko.com.ua/viewtopic.php?p=27633 ; .
Now() fornisce l'host dell'esecuzione corrente: si tratta di un numero intero di millisecondi dello stesso orologio nativo utilizzato dal log. Non sostituirlo con Environment.TickCount, ora Unix o il tuo cronometro: l'origine sarà diversa. In un normale programma .cs/.csproj, chiama context.Now() sul CSharpScriptGlobals passato.
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.InJournal("You see");
UO.Print("InJournal: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- pattern=Vedi è una sottostringa, le maiuscole sono importanti. trovato=0 significa assente.
- Il testo viene copiato dalla voce trovata; l'arrivo di un nuovo messaggio non lo sostituisce.
var found = UO.InJournal("You see");
if (Truth(found > 0))
{
var text = UO.GetFoundedText();
UO.Print(text);
}
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 secondo argomento -1 rimuove il limite di riga e disabilita la distinzione tra maiuscole e minuscole.
- risultato=0 per successo, 1 per fallito; questo è il numero dell'alternativa, non quello dell'oratore ID.
return RunScenario();
object? RunScenario()
{
var found = UO.InJournal("success|failed", -1);
if (Truth(found > 0))
{
var outcome = UO.GetFoundedTextID();
UO.Print("Alternative: " + Convert.ToString(outcome));
}
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:
- 20 - linee massime da controllare, le maiuscole sono importanti. corrispondenze: il numero di righe corrispondenti nell'area selezionata.
- trovato contiene la posizione più 1, non corrispondenze. Anche la scrittura di testo diagnostico può essere aggiunto al registro.
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 found = UO.InJournal("bank", 20);
var matches = UO.LineCount();
UO.Print("Matches: " + Convert.ToString(matches));
return null;
}
}Parametri e flusso di esecuzione:
- serial=0x00001234 — esempio dell'autore, colore=0x0044 — hue. Sostituisci con valori reali. iniziato/endTime — contrassegni dei millisecondi.
- true interrompe la ricerca alla prima riga; false non fa distinzione tra maiuscole e minuscole. In attesa di 350 ms separatamente, InJournal non attende da solo.
var started = Now();
UO.Wait(350);
var found = UO.InJournal("hello", 0x00001234, 0x0044, started, Now(), true, false);
if (Truth(found > 0))
{
UO.Print(UO.GetFoundedText());
}
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:
- serial=-1 e color=-1 disabilitano entrambi i filtri. Due marcatori limitano il tempo.
- newestOnly e caseSensitive vengono omessi: false e false. Senza corrispondenza, viene restituito 0.
return RunScenario();
object? RunScenario()
{
var started = Now();
UO.Wait(100);
var found = UO.InJournal("notice", -1, -1, started, Now());
if (Truth(found == 0))
{
UO.Print("No matching message");
}
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: pattern (Any/String)
Risultato: int / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.InJournal:InJournal(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Codice interno di implementazione; non è uno script autonomo.
case "injournal": return new InjectionValue(InJournal(Text(0)));Parametri: pattern (Any/String)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.InJournal. -
InjectionScript.Runtime.InjectionApiUO.InJournalCore:InJournalCore(pattern, -1, ignoreCase: false).
Codice interno di implementazione; non è uno script autonomo.
public int InJournal(string pattern)
=> InJournalCore(pattern, -1, ignoreCase: false);Parametri: pattern (String), maxLinesOrIgnoreCase (Integer)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.InJournal. -
InjectionScript.Runtime.InjectionApiUO.InJournalCore:InJournalCore(pattern, maxLinesOrIgnoreCase == -1 ? -1 : Math.Max(0, maxLinesOrIgnoreCase), ignoreCase: maxLinesOrIgnoreCase == -1).
Codice interno di implementazione; non è uno script autonomo.
public int InJournal(string pattern, int maxLinesOrIgnoreCase)
=> InJournalCore(pattern,
maxLinesOrIgnoreCase == -1 ? -1 : Math.Max(0, maxLinesOrIgnoreCase),
ignoreCase: maxLinesOrIgnoreCase == -1);Parametri: pattern (Any), serial (Any), color (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [InJournal]. -
InjectionScript.Runtime.InjectionApiUO.CompactInJournal:CompactInJournal(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 => new InjectionValue(CompactInJournal(values))Parametri: pattern (Any), serial (Any), color (Any), startTime (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [InJournal]. -
InjectionScript.Runtime.InjectionApiUO.CompactInJournal:CompactInJournal(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 => new InjectionValue(CompactInJournal(values))Parametri: pattern (Any), serial (Any), color (Any), startTime (Any), endTime (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [InJournal]. -
InjectionScript.Runtime.InjectionApiUO.CompactInJournal:CompactInJournal(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 => new InjectionValue(CompactInJournal(values))
UO.InJournal(pattern, serial, color, startTime, endTime, newestOnly) — UO.InJournal(Any,Any,Any,Any,Any,Any)
Parametri: pattern (Any), serial (Any), color (Any), startTime (Any), endTime (Any), newestOnly (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [InJournal]. -
InjectionScript.Runtime.InjectionApiUO.CompactInJournal:CompactInJournal(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 => new InjectionValue(CompactInJournal(values))
UO.InJournal(pattern, serial, color, startTime, endTime, newestOnly, caseSensitive) — UO.InJournal(Any,Any,Any,Any,Any,Any,Any)
Parametri: pattern (Any), serial (Any), color (Any), startTime (Any), endTime (Any), newestOnly (Any), caseSensitive (Any)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.Register [InJournal]. -
InjectionScript.Runtime.InjectionApiUO.CompactInJournal:CompactInJournal(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 => new InjectionValue(CompactInJournal(values))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.InJournalBetweenTimes(object? pattern, object? startTime);
int UO.InJournalBetweenTimes(object? pattern, object? startTime, object? endTime);
int UO.InJournalBetweenTimes(object? pattern, object? startTime, object? endTime, object? limit);Cerca una stringa tra due timestamp di esecuzione e memorizza la voce corrispondente più recente.
-
pattern— La sottostringa cercata o diverse alternative tramite |, ad esempio successo|non riuscita. Gli spazi ai bordi di ciascuna alternativa vengono rimossi, le alternative vuote vengono saltate. Questo è testo semplice, non un'espressione regolare. Utilizza un modello non vuoto. -
startTime— Etichetta obbligatoria Now(): int millisecondi dall'inizio del runtime. 0 - inizio dell'esecuzione. Questa non è l'età del record o la data frazionaria LineTime. -
endTime- Etichetta finale opzionale Now(). Se omesso o non positivo, viene utilizzata l'ora corrente. I confini positivi possono essere trasmessi in ordine inverso; il confine futuro è limitato all'ora corrente. -
limit- Quarto argomento opzionale: -1 - nessun limite e senza distinzione tra maiuscole e minuscole; numero positivo: numero massimo di righe nell'intervallo, con distinzione tra maiuscole e minuscole; 0 e valori negativi tranne -1 - non controllano le stringhe.
int: 0 – non esiste una linea adatta; un numero positivo è la posizione della voce corrispondente più recente, contando dalla fine dell'intero registro, iniziando con 1. Questo non è il numero di corrispondenze o il numero di alternative al modello. Per l'indice zero utilizzare LineIndex/GetFoundedTextIndex, per il numero di corrispondenze utilizzare LineCount, per il numero alternativo utilizzare GetFoundedTextID. Nuovi messaggi successivi potrebbero modificare l'indice, ma i campi salvati del record selezionato rimangono disponibili.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Nei moduli con due o tre argomenti, viene fatta distinzione tra maiuscole e minuscole. I confini sono inclusi. Il calcolo dell'intervallo non mette in pausa lo script.
- Qui, passa intere etichette a Now(). LineTime restituisce un'altra unità. Directory primaria: .
Now() fornisce l'host dell'esecuzione corrente: si tratta di un numero intero di millisecondi dello stesso orologio nativo utilizzato dal log. Non sostituirlo con Environment.TickCount, ora Unix o il tuo cronometro: l'origine sarà diversa. In un normale programma .cs/.csproj, chiama context.Now() sul CSharpScriptGlobals passato.
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.InJournalBetweenTimes("You see", 0, Now());
UO.Print("InJournalBetweenTimes: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- avviato viene salvato fino al UseSkill. endTime omesso - fino all'ora corrente; hidden è un esempio di testo lato server.
- Si tiene conto del caso. Il messaggio non dimostra lo stato attuale; UO.Hidden() legge lo stato del personaggio.
var started = Now();
UO.UseSkill("Hiding");
UO.Wait(500);
if (Truth(UO.InJournalBetweenTimes("hidden", started) > 0))
{
UO.Print(UO.GetFoundedText());
}
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:
- startTime=0 — inizio dell'esecuzione; terminato: etichetta finale salvata in millisecondi.
- I nuovi messaggi dopo la fine non sono inclusi. Anche i vecchi record prima del runtime sono fuori dall'intervallo.
return RunScenario();
object? RunScenario()
{
var ended = Now();
var found = UO.InJournalBetweenTimes("notice", 0, ended);
UO.Print("Search result: " + Convert.ToString(found));
return null;
}Parametri e flusso di esecuzione:
- L'ultimo -1 rimuove il limite di linea e disabilita maiuscole e minuscole. Il terzo argomento è l'etichetta finale, non il ritardo.
- Risultato ID: 0 per successo, 1 per fallito. È richiesto il controllo trovato > 0.
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 started = Now();
UO.Wait(350);
var found = UO.InJournalBetweenTimes("success|failed", started, Now(), -1);
if (Truth(found > 0))
{
UO.Print(Convert.ToString(UO.GetFoundedTextID()));
}
return null;
}
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: pattern (Any/String), startTime (Any/Integer)
Risultato: int / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2)). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1)).
Codice interno di implementazione; non è uno script autonomo.
case "injournalbetweentimes":
if (arguments.Length > 3)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)));
if (arguments.Length > 2)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2)));
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1)));Parametri: pattern (Any/String), startTime (Any/Integer)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimesCore:InJournalBetweenTimesCore(pattern, startTime, CurrentJournalTime(), -1, ignoreCase: false). -
InjectionScript.Runtime.InjectionApiUO.CurrentJournalTime:CurrentJournalTime().
Codice interno di implementazione; non è uno script autonomo.
public int InJournalBetweenTimes(string pattern, int startTime)
=> InJournalBetweenTimesCore(pattern, startTime, CurrentJournalTime(), -1, ignoreCase: false);Parametri: pattern (Any/String), startTime (Any/Integer), endTime (Any/Integer)
Risultato: int / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2)). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1)).
Codice interno di implementazione; non è uno script autonomo.
case "injournalbetweentimes":
if (arguments.Length > 3)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)));
if (arguments.Length > 2)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2)));
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1)));
UO.InJournalBetweenTimes(pattern, startTime, endTime) — UO.InJournalBetweenTimes(String,Integer,Integer)
Parametri: pattern (Any/String), startTime (Any/Integer), endTime (Any/Integer)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimesCore:InJournalBetweenTimesCore(pattern, startTime, endTime, -1, ignoreCase: false).
Codice interno di implementazione; non è uno script autonomo.
public int InJournalBetweenTimes(string pattern, int startTime, int endTime)
=> InJournalBetweenTimesCore(pattern, startTime, endTime, -1, ignoreCase: false);
UO.InJournalBetweenTimes(pattern, startTime, endTime, limit) — UO.InJournalBetweenTimes(Any,Any,Any,Any)
Parametri: pattern (Any/String), startTime (Any/Integer), endTime (Any/Integer), limit (Any/Integer)
Risultato: int / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1), Arg(2)). -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes:InJournalBetweenTimes(Text(0), Arg(1)).
Codice interno di implementazione; non è uno script autonomo.
case "injournalbetweentimes":
if (arguments.Length > 3)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2), Arg(3)));
if (arguments.Length > 2)
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1), Arg(2)));
return new InjectionValue(InJournalBetweenTimes(Text(0), Arg(1)));
UO.InJournalBetweenTimes(pattern, startTime, endTime, limit) — UO.InJournalBetweenTimes(String,Integer,Integer,Integer)
Parametri: pattern (Any/String), startTime (Any/Integer), endTime (Any/Integer), limit (Any/Integer)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimes. -
InjectionScript.Runtime.InjectionApiUO.InJournalBetweenTimesCore:InJournalBetweenTimesCore(pattern, startTime, endTime, limit == -1 ? -1 : Math.Max(0, limit), ignoreCase: limit == -1).
Codice interno di implementazione; non è uno script autonomo.
public int InJournalBetweenTimes(string pattern, int startTime, int endTime, int limit)
=> InJournalBetweenTimesCore(pattern, startTime, endTime,
limit == -1 ? -1 : Math.Max(0, limit), ignoreCase: limit == -1);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.Journal(object? index);Legge il testo di una riga all'indice corrente e seleziona quella voce per GetFoundedText/Line*.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string — testo della riga o una riga vuota se l'indice non è corretto/il giornale è vuoto. Una riga esistente può anche avere testo vuoto: dopo la lettura, LineIndex >= 0 conferma che la voce è stata selezionata. Non è il numero di righe.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Reset a lettura diretta ID alternative; GetFoundedTextID/FoundedParamId è seguito da 0. Journal stesso non ricalcola LineCount.
- https://forum.yoko.com.ua/viewtopic.php?p=27633 ; .
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.Journal(0);
UO.Print("Journal: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è la linea più recente. Innanzitutto vengono letti il testo e l'autore, quindi viene visualizzato il risultato.
- Print può aggiungere un messaggio; il testo/autore salvato si riferisce alla voce precedentemente selezionata.
var text = UO.Journal(0);
var author = UO.LineName();
UO.Print(author + ": " + text);Parametri e flusso di esecuzione:
- 1 è la voce precedente, HighJournal è l'indice massimo disponibile.
- Il registro potrebbe cambiare tra una chiamata e l'altra. Per i dati di una riga già trovata, utilizzare GetFoundedText.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var text = UO.Journal(1);
UO.Print(text);
}
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:
- LineIndex=-1 significa che la voce selezionata è mancante/eliminata. Len(testo)=0 di per sé non significa questo.
- Memorizzare il risultato del test finché l'output diagnostico non viene aggiunto al registro.
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 text = UO.Journal(0);
var index = UO.LineIndex();
if (Truth(index < 0))
{
UO.Print("No record");
}
else
{
UO.Print("Text length: " + Convert.ToString(Len(text)));
}
return null;
}
int Len(object? value) => Convert.ToString(value)?.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: index (Any/Integer)
Risultato: string / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GetJournalText:GetJournalText(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "journal": return new InjectionValue(GetJournalText(Arg(0)));Parametri: index (Any/Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.GetJournalText. -
InjectionScript.Runtime.InjectionApiUO.SelectJournalEntry:SelectJournalEntry(ReadJournalSnapshot(index)). -
InjectionScript.Runtime.InjectionApiUO.ReadJournalSnapshot:ReadJournalSnapshot(index).
Codice interno di implementazione; non è uno script autonomo.
public string GetJournalText(int index)
{
SelectJournalEntry(ReadJournalSnapshot(index));
return selectedJournalEntry?.Text ?? string.Empty;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.JournalColor(object? index);Legge il campo hue della riga all'indice corrente senza modificare la voce selezionata.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string - UO hue come 0x0044; se l'indice 0x0000 non è corretto. Questo non è RGB.
- Ogni chiamata legge la posizione corrente. Per testo e campi coerenti dello stesso record, prima Journal(index), quindi GetFoundedText/Line*. I valori nulli possono essere dati reali.
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.JournalColor(0);
UO.Print("JournalColor: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della nuova riga. Viene verificata la presenza di un buffer.
- string - UO hue come 0x0044; se l'indice 0x0000 non è corretto. Questo non è RGB.
if (Truth(UO.HighJournal() >= 0))
{
var value = UO.JournalColor(0);
UO.Print(Convert.ToString(value));
}
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 è la riga precedente, non serial=1.
- La voce GetFoundedText/Line* selezionata dalla ricerca non viene modificata.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var value = UO.JournalColor(1);
UO.Print(Convert.ToString(value));
}
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:
- value copia il campo al momento della chiamata. L'attesa non aggiorna la variabile.
- Per leggere nuovamente la riga corrente 0, richiamare nuovamente il comando; questa potrebbe già essere un'altra voce.
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 value = UO.JournalColor(0);
UO.Wait(100);
UO.Print("Saved value: " + Convert.ToString(value));
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: index (Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.JournalColor. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalColor:bridge.JournalColor(index).
Codice interno di implementazione; non è uno script autonomo.
public string JournalColor(int index) => bridge.JournalColor(index);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.JournalSerial(object? index);Legge il campo serial della riga all'indice corrente senza modificare la voce selezionata.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
string - serial dell'autore come 0x00001234; se l'indice 0x00000000 non è corretto.
- Ogni chiamata legge la posizione corrente. Per testo e campi coerenti dello stesso record, prima Journal(index), quindi GetFoundedText/Line*. I valori nulli possono essere dati reali.
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.JournalSerial(0);
UO.Print("JournalSerial: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della nuova riga. Viene verificata la presenza di un buffer.
- string - serial dell'autore come 0x00001234; se l'indice 0x00000000 non è corretto.
if (Truth(UO.HighJournal() >= 0))
{
var value = UO.JournalSerial(0);
UO.Print(Convert.ToString(value));
}
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 è la riga precedente, non serial=1.
- La voce GetFoundedText/Line* selezionata dalla ricerca non viene modificata.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var value = UO.JournalSerial(1);
UO.Print(Convert.ToString(value));
}
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:
- value copia il campo al momento della chiamata. L'attesa non aggiorna la variabile.
- Per leggere nuovamente la riga corrente 0, richiamare nuovamente il comando; questa potrebbe già essere un'altra voce.
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 value = UO.JournalSerial(0);
UO.Wait(100);
UO.Print("Saved value: " + Convert.ToString(value));
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: index (Integer)
Risultato: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.JournalSerial. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalSerial:bridge.JournalSerial(index).
Codice interno di implementazione; non è uno script autonomo.
public string JournalSerial(int index) => bridge.JournalSerial(index);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.JournalTimer(object? index);Legge il campo timestamp di una riga all'indice corrente senza modificare la voce selezionata.
-
index- Obbligatorio int - indice corrente: 0 indica la riga più recente, 1 - quella precedente. Gli indici vengono spostati quando arrivano i messaggi. Questo non è un serial, non una variante ID del modello e non un risultato positivo di InJournal.
int — etichetta discografica in millisecondi dall'inizio del runtime, compatibile con Now(). 0 per la registrazione prima dell'esecuzione; -1 per indice/ora non validi. Questa non è l'età del record o i decimi di secondo UO.Timer().
- Ogni chiamata legge la posizione corrente. Per testo e campi coerenti dello stesso record, prima Journal(index), quindi GetFoundedText/Line*. I valori nulli possono essere dati reali.
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.JournalTimer(0);
UO.Print("JournalTimer: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- 0 è l'indice della nuova riga. Viene verificata la presenza di un buffer.
- int — etichetta discografica in millisecondi dall'inizio del runtime, compatibile con Now(). 0 per la registrazione prima dell'esecuzione; -1 per indice/ora non validi. Questa non è l'età del record o i decimi di secondo UO.Timer().
if (Truth(UO.HighJournal() >= 0))
{
var value = UO.JournalTimer(0);
UO.Print(Convert.ToString(value));
}
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 è la riga precedente, non serial=1.
- La voce GetFoundedText/Line* selezionata dalla ricerca non viene modificata.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.HighJournal() >= 1))
{
var value = UO.JournalTimer(1);
UO.Print(Convert.ToString(value));
}
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:
- value copia il campo al momento della chiamata. L'attesa non aggiorna la variabile.
- Per leggere nuovamente la riga corrente 0, richiamare nuovamente il comando; questa potrebbe già essere un'altra voce.
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 value = UO.JournalTimer(0);
UO.Wait(100);
UO.Print("Saved value: " + Convert.ToString(value));
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: index (Integer)
Risultato: int / Integer.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.JournalTimer. -
InjectionScript.Runtime.InjectionApiUO.JournalEntryTime:JournalEntryTime(index).
Codice interno di implementazione; non è uno script autonomo.
public int JournalTimer(int index) => JournalEntryTime(index);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LastJournalMessage();Legge il testo della voce di registro locale più recente.
Non ci sono parametri.
string — testo della nuova voce; stringa vuota se non è presente alcun registro o la voce stessa contiene testo vuoto.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Aggiorna la selezione e i campi della Linea* allo stesso modo di Journal(0).
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.LastJournalMessage();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- Non ci sono argomenti; text copia l'ultima riga corrente.
- La stampa dopo la lettura potrebbe diventare essa stessa l'ultimo messaggio.
var text = UO.LastJournalMessage();
UO.Print(text);Parametri e flusso di esecuzione:
- FindText restituisce la posizione da 1 o 0. Viene controllata solo l'ultima riga.
- Per cercare nell'intero registro, utilizzare InJournal.
return RunScenario();
object? RunScenario()
{
var text = UO.LastJournalMessage();
if (Truth(FindText(text, "bank") > 0))
{
UO.Print("Text contains bank");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
int FindText(object? text, object? value) => (Convert.ToString(text) ?? "").IndexOf(Convert.ToString(value) ?? "", StringComparison.Ordinal) + 1;
int FindText(int start, object? text, object? value)
{
string input = Convert.ToString(text) ?? "";
return input.IndexOf(Convert.ToString(value) ?? "", Math.Clamp(start - 1, 0, input.Length), StringComparison.Ordinal) + 1;
}Parametri e flusso di esecuzione:
- la corrispondenza viene salvata fino alla lettura dell'ultima, quindi non cambia con una nuova selezione.
- L'ultimo messaggio potrebbe essere diverso da quello trovato; trovato > 0 significa ricerca riuscita.
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 found = UO.InJournal("needle");
var matched = UO.GetFoundedText();
var latest = UO.LastJournalMessage();
UO.Print("Found: " + matched);
UO.Print("Latest: " + latest);
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: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GetJournalText:GetJournalText(0).
Codice interno di implementazione; non è uno script autonomo.
case "lastjournalmessage": return new InjectionValue(GetJournalText(0));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.LastMessage();Legge il testo della voce di registro locale più recente.
Non ci sono parametri.
string — testo della nuova voce; stringa vuota se non è presente alcun registro o la voce stessa contiene testo vuoto.
- Questo getter legge la nuova voce ma mantiene la vecchia selezione GetFoundedText/Line*. Per selezionare l'ultima voce, utilizzare LastJournalMessage o Journal(0).
- Directory primaria: https://forum.yoko.com.ua/viewtopic.php?p=27633.
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.LastMessage();
UO.Print("LastMessage: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Non ci sono argomenti; text copia l'ultima riga corrente.
- La stampa dopo la lettura potrebbe diventare essa stessa l'ultimo messaggio.
var text = UO.LastMessage();
UO.Print(text);Parametri e flusso di esecuzione:
- FindText restituisce la posizione da 1 o 0. Viene controllata solo l'ultima riga.
- Per cercare nell'intero registro, utilizzare InJournal.
return RunScenario();
object? RunScenario()
{
var text = UO.LastMessage();
if (Truth(FindText(text, "bank") > 0))
{
UO.Print("Text contains bank");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
int FindText(object? text, object? value) => (Convert.ToString(text) ?? "").IndexOf(Convert.ToString(value) ?? "", StringComparison.Ordinal) + 1;
int FindText(int start, object? text, object? value)
{
string input = Convert.ToString(text) ?? "";
return input.IndexOf(Convert.ToString(value) ?? "", Math.Clamp(start - 1, 0, input.Length), StringComparison.Ordinal) + 1;
}Parametri e flusso di esecuzione:
- la corrispondenza viene salvata fino alla lettura dell'ultima, quindi non cambia con una nuova selezione.
- L'ultimo messaggio potrebbe essere diverso da quello trovato; trovato > 0 significa ricerca riuscita.
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 found = UO.InJournal("needle");
var matched = UO.GetFoundedText();
var latest = UO.LastMessage();
UO.Print("Found: " + matched);
UO.Print("Latest: " + latest);
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: string / String.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.LastMessage. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.LastMessage:bridge.LastMessage().
Codice interno di implementazione; non è uno script autonomo.
public string LastMessage() => bridge.LastMessage();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineCount();Legge il numero di righe corrispondenti dall'ultima ricerca.
Non ci sono parametri.
int è il numero di record corrispondenti nell'ultima area controllata. 0 se non ci sono corrispondenze; per newestOnly=true non più di 1. Questo non è il numero di righe nell'intero log, né il numero di occorrenze di una sottostringa in un messaggio, né la posizione del testo trovato.
- La ricerca prende in considerazione limite, tempo, serial, hue e un argomento SetJournalLine. Diretto Journal/GetJournal non ricalcola il contatore. La pulizia lo ripristina. Il contatore appartiene al bridge dello script corrente.
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.LineCount();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- Cerca senza limiti e registrati. Vengono contate le linee, non il numero di minerali all'interno della linea.
- risultato — posizione più 1; fiammiferi: una quantità separata.
var result = UO.InJournal("ore", -1);
var matches = UO.LineCount();
UO.Print(Convert.ToString(matches));Parametri e flusso di esecuzione:
- 10 — linee massime da controllare; viene preso in considerazione il caso.
- Il conteggio può variare da 0 a 10, anche se ci sono molte più partite più vecchie.
return RunScenario();
object? RunScenario()
{
var result = UO.InJournal("ore", 10);
UO.Print(Convert.ToString(UO.LineCount()));
return null;
}Parametri e flusso di esecuzione:
- serial/color=-1, time=0/0 — i filtri sono disabilitati. true interrompe la ricerca alla prima riga corrispondente.
- checkedMatches è uguale a 0 o 1 e non indica il numero totale di corrispondenze nell'intero registro.
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.InJournal("ore", -1, -1, 0, 0, true, false);
var checkedMatches = UO.LineCount();
UO.Print(Convert.ToString(checkedMatches));
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: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalMatchCount:bridge.JournalMatchCount().
Codice interno di implementazione; non è uno script autonomo.
case "linecount": return new InjectionValue(bridge.JournalMatchCount());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineID();Restituisce il numero serial dell'autore della registrazione a giornale selezionata.
Non ci sono parametri.
int - 32-bit serial dell'autore. Nessuna scelta - 0. Il bit più significativo può risultare in un numero negativo a causa del segno int; GetFoundedTextSerial preserva la rappresentazione esadecimale completa. Questo non è graphic/type.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineID();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int - 32-bit serial dell'autore. Nessuna scelta - 0. Il bit più significativo può risultare in un numero negativo a causa del segno int; GetFoundedTextSerial preserva la rappresentazione esadecimale completa. Questo non è graphic/type.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineID();
UO.Print("Speaker serial: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineID();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineID();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "lineid": return new InjectionValue(selectedJournalEntry?.Serial ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineIndex();Restituisce l'indice corrente della voce selezionata, se è ancora memorizzato nel registro.
Non ci sono parametri.
int è l'indice corrente da 0 (riga più recente). -1 significa che non c'è scelta o che la voce selezionata è già stata cancellata/precedente. Questo non è il risultato di InJournal: non è necessario sottrarre 1 dall'indice.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- L'indice viene ricalcolato in base all'identità del record. Nuovi messaggi lo aumentano. Il vecchio indice memorizzato non è costante ID; per il testo, GetFoundedText è più sicuro.
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.LineIndex();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- Getter senza argomenti legge la selezione dello script corrente. 0 — nuova riga, -1 — nessuna riga nel buffer corrente.
- Il testo viene preso dalla voce salvata in modo che nuovi messaggi non lo sostituiscano.
if (Truth(UO.InJournal("notice") > 0))
{
var index = UO.LineIndex();
var text = UO.GetFoundedText();
UO.Print(Convert.ToString(index) + ": " + text);
}
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:
- Journal(0) seleziona l'ultima voce; il controllo esclude un log vuoto.
- Per una voce valida è consentito il testo vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
if (Truth(UO.LineIndex() >= 0))
{
UO.Print(text);
}
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:
- L'attesa 100 ms consente l'arrivo di nuovi messaggi. dopo trova di nuovo la stessa voce.
- dopo può aumentare o diventare -1 quando viene rimosso; GetFoundedText contiene ancora il testo salvato.
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.InJournal("needle") > 0))
{
var before = UO.LineIndex();
UO.Wait(100);
var after = UO.LineIndex();
UO.Print(Convert.ToString(before) + " -> " + Convert.ToString(after));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.GetFoundedTextIndex:GetFoundedTextIndex().
Codice interno di implementazione; non è uno script autonomo.
case "lineindex": return new InjectionValue(GetFoundedTextIndex());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineMsgType();Restituisce il tipo di messaggio di rete della voce di registro selezionata.
Non ci sono parametri.
int - codice MessageType: 0 Normale, 1 Sistema, 2 Emote, 3 Limit3Spell, 6 Etichetta, 7 Focus, 8 Sussurro, 9 Urlo, 10 Incantesimo, 13 Gilda, 14 Alleanza, 15 Comando, 16 GmChat, 192 Codificato, 255 Festa. Nessuna scelta 0. Questi sono i codici Classici UO; non sostituirli con numeri diversi da esempi di terze parti.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineMsgType();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int - codice MessageType: 0 Normale, 1 Sistema, 2 Emote, 3 Limit3Spell, 6 Etichetta, 7 Focus, 8 Sussurro, 9 Urlo, 10 Incantesimo, 13 Gilda, 14 Alleanza, 15 Comando, 16 GmChat, 192 Codificato, 255 Festa. Nessuna scelta 0. Questi sono i codici Classici UO; non sostituirli con numeri diversi da esempi di terze parti.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineMsgType();
UO.Print("Message type: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineMsgType();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineMsgType();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linemsgtype": return new InjectionValue(selectedJournalEntry?.MessageType ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineName();Restituisce il nome dell'autore della voce di diario selezionata.
Non ci sono parametri.
string — nome dell'autore della voce selezionata, ad esempio nome del sistema o del personaggio; stringa vuota senza selezione/senza nome. Un nome non garantisce l'unicità di un personaggio.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineName();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- string — nome dell'autore della voce selezionata, ad esempio nome del sistema o del personaggio; stringa vuota senza selezione/senza nome. Un nome non garantisce l'unicità di un personaggio.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineName();
UO.Print("Speaker: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineName();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineName();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linename": return new InjectionValue(selectedJournalEntry?.Name ?? string.Empty);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineTextColor();Restituisce il colore numerico della voce di registro selezionata.
Non ci sono parametri.
int - UO hue della voce selezionata (0…65535); nessuna scelta 0. Lo zero è accettabile come colore. Questo non è RGB o ID dell'autore.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineTextColor();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int - UO hue della voce selezionata (0…65535); nessuna scelta 0. Lo zero è accettabile come colore. Questo non è RGB o ID dell'autore.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineTextColor();
UO.Print("Hue: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineTextColor();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineTextColor();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linetextcolor":
return new InjectionValue(selectedJournalEntry?.Color ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineTextFont();Restituisce il carattere della voce di registro selezionata.
Non ci sono parametri.
int — UO font ID del record selezionato (0…255 nel client); nessuna scelta 0. Questo è il carattere del gioco ID, non la dimensione del carattere IDE.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineTextFont();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int — UO font ID del record selezionato (0…255 nel client); nessuna scelta 0. Questo è il carattere del gioco ID, non la dimensione del carattere IDE.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineTextFont();
UO.Print("Font ID: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineTextFont();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineTextFont();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linetextfont": return new InjectionValue(selectedJournalEntry?.Font ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineTime();Restituisce il timestamp del calendario della voce di registro selezionata.
Non ci sono parametri.
double — OLE Automazione Date, numero di giorni da 30.12.1899, la parte frazionaria specifica l'ora del giorno. Nessuna scelta 0. Non sono i millisecondi Now() o l'intero timestamp Unix. La differenza di due di questi segni viene moltiplicata per 86400000 per millisecondi.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineTime();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- double — OLE Automazione Date, numero di giorni da 30.12.1899, la parte frazionaria specifica l'ora del giorno. Nessuna scelta 0. Non sono i millisecondi Now() o l'intero timestamp Unix. La differenza di due di questi segni viene moltiplicata per 86400000 per millisecondi.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineTime();
UO.Print("OLE date: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineTime();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineTime();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linetime": return new InjectionValue(selectedJournalEntry?.Timestamp ?? 0d);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LineType();Restituisce la categoria di testo della voce di registro selezionata.
Non ci sono parametri.
int - categoria TextType del cliente: 0 CLIENT, 1 SYSTEM, 2 OBJECT, 3 GUILD_ALLY. Nessuna scelta 0. Questa è una categoria di visualizzazione, non serial, non graphic e non MessageType.
- Cerca e Journal/GetJournal/LastJournalMessage salva il testo e i campi di una singola voce nello script corrente. I nuovi messaggi non sostituiscono questi campi. Se un record viene eliminato da un giornale limitato, i campi conservati rimangono, ma LineIndex/GetFoundedTextIndex restituiscono -1. La successiva ricerca o lettura seleziona un'altra voce; una ricerca non riuscita, un indice non valido e la cancellazione tramite questo script reimpostano la selezione.
- Getter non esegue una ricerca e non seleziona la riga più recente. I valori nulli/vuoti possono essere dati validi; considerare il risultato della ricerca.
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.LineType();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- avviso: un esempio del testo cercato. Getter viene chiamato senza parametri solo dopo una ricerca riuscita.
- int - categoria TextType del cliente: 0 CLIENT, 1 SYSTEM, 2 OBJECT, 3 GUILD_ALLY. Nessuna scelta 0. Questa è una categoria di visualizzazione, non serial, non graphic e non MessageType.
if (Truth(UO.InJournal("notice") > 0))
{
var value = UO.LineType();
UO.Print("Text category: " + Convert.ToString(value));
}
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:
- Journal(0) seleziona una nuova voce. indice e valore vengono letti prima di Print.
- Il controllo dell'indice permette di distinguere tra l'assenza di un record e un campo valido nullo o vuoto.
return RunScenario();
object? RunScenario()
{
var text = UO.Journal(0);
var index = UO.LineIndex();
var value = UO.LineType();
if (Truth(index >= 0))
{
UO.Print(Convert.ToString(value));
}
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 prima ricerca seleziona il successo, la seconda sostituisce o reimposta la selezione. salvato contiene già una copia del campo obbligatorio.
- Il var salvato non cambia con una nuova ricerca, cancellazione o ricezione di messaggi.
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.InJournal("success") > 0))
{
var saved = UO.LineType();
var nextMatch = UO.InJournal("failed");
UO.Print("Saved: " + Convert.ToString(saved));
}
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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
case "linetype": return new InjectionValue(selectedJournalEntry?.TextType ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.LowJournal();Restituisce l'indice di log minimo disponibile.
Non ci sono parametri.
int: -1 when the magazine is empty; altrimenti 0 è l'indice del record disponibile più recente. Journal/GetJournal utilizza indici zero dal nuovo record al vecchio; un risultato positivo InJournal utilizza un conteggio singolo diverso.
- Nuovi messaggi e pulizia cambiano i confini. L'ordine qui è Journal(0) dalla nuova voce alla vecchia voce.
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.LowJournal();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- Un limite negativo indica un buffer vuoto.
- Se il buffer non è vuoto, Journal(0) legge una nuova voce.
if (Truth(UO.LowJournal() >= 0))
{
var text = UO.Journal(0);
UO.Print(text);
}
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:
- l'indice viene passato direttamente al Journal, senza sottrarre uno.
- L'indice potrebbe spostarsi con i messaggi in arrivo; Il buffer non viene congelato tra le chiamate.
return RunScenario();
object? RunScenario()
{
var index = UO.LowJournal();
if (Truth(index >= 0))
{
var text = UO.Journal(index);
UO.Print(text);
}
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:
- LowJournal e HighJournal formano i confini degli indici. Non è il numero di righe; il contenuto del registro può cambiare tra una chiamata e l'altra.
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 first = UO.LowJournal();
int last = UO.HighJournal();
if (first > last)
return null;
for (int index = first; index <= last; index++)
UO.Print($"{index}: {UO.Journal(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: Nessun parametro.
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.JournalEntryCount:bridge.JournalEntryCount().
Codice interno di implementazione; non è uno script autonomo.
case "lowjournal": return new InjectionValue(bridge.JournalEntryCount() == 0 ? -1 : 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SetJournalLine(object? index);
void UO.SetJournalLine(object? stringIndex, object? text);Modifica il testo di una riga; una forma separata con un argomento specifica il limite inferiore della ricerca.
-
index— Per modulo (indice,testo): indice corrente da 0, dove 0 è una nuova riga. Per modulo (indice): numero di vecchie righe saltate dall'inizio del buffer interno, non indice Journal; 0 rimuove la restrizione. Il limite negativo di un argomento è limitato a 0. -
stringIndex— Il nome dell'indice nella registrazione compatibile a due argomenti: l'indice corrente Journal da 0. -
text— Nuovo testo di una riga esistente, inclusa una riga vuota. Obbligatorio nel modulo di sostituzione del testo.
void: nessun valore restituito. Se l'indice non è valido, la forma a due argomenti non cambia nulla. La forma con un argomento non modifica il testo.
- La sostituzione è locale, non viene inviato nulla al server. I campi autore/ora vengono conservati. Un'istantanea del testo già selezionata rimane la stessa finché non viene ripetuta Journal o la ricerca.
- Il limite a un argomento è un'estensione deprecata: il numero di vecchie righe nel buffer corrente; quando i record vengono estromessi/eliminati, il loro significato cambia. Per un confine affidabile tra le azioni, usa InJournalBetweenTimes con Now().
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.SetJournalLine");
UO.SetJournalLine(0);Parametri e flusso di esecuzione:
- 0 — nuova riga; il secondo argomento è il suo nuovo testo completo.
- Ciò modifica il buffer locale. Tra la lettura e la scrittura possono arrivare nuovi messaggi; l'indice non è costante ID.
if (Truth(UO.HighJournal() >= 0))
{
var text = UO.Journal(0);
UO.SetJournalLine(0, "[read] " + text);
}
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:
- Una riga vuota sostituisce il testo, ma non rimuove la voce o il suo autore.
- L'indice non valido viene ignorato. esiste può essere true anche con text="".
return RunScenario();
object? RunScenario()
{
UO.SetJournalLine(0, "");
var text = UO.Journal(0);
var exists = UO.LineIndex() >= 0;
UO.Print(Convert.ToString(exists));
return null;
}Parametri e flusso di esecuzione:
- Un argomento 0 significa non saltare le vecchie righe; questa è un'altra forma di comando.
- Ricerca senza restrizioni e senza distinzione tra maiuscole e minuscole. Nessun testo viene sostituito da questo modulo.
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.SetJournalLine(0);
var found = UO.InJournal("notice", -1);
UO.Print(Convert.ToString(found));
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: index (Integer)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SetJournalLine. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLine:bridge.SetJournalLine(index).
Codice interno di implementazione; non è uno script autonomo.
public void SetJournalLine(int index) => bridge.SetJournalLine(index);Parametri: stringIndex (Any/Integer), text (Any/String)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLine:bridge.SetJournalLine(Arg(0), Text(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(1). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLine:bridge.SetJournalLine(Arg(0)).
Codice interno di implementazione; non è uno script autonomo.
case "setjournalline":
if (arguments.Length > 1) bridge.SetJournalLine(Arg(0), Text(1));
else bridge.SetJournalLine(Arg(0));
return InjectionValue.Unit;Parametri: stringIndex (Any/Integer), text (Any/String)
Risultato: void / Unit.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.SetJournalLine. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetJournalLine:bridge.SetJournalLine(index, text).
Codice interno di implementazione; non è uno script autonomo.
public void SetJournalLine(int index, string text) => bridge.SetJournalLine(index, text);ClassicUO — Bad Newbie & C# Scripts IDE