Repository navigation
IT UO Topic localization
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Home · C# · IDE · UO API · A–Z · Esempi · Lingue
Recupero del testo cliloc localizzato e informazioni sulla codifica. I nomi dei comandi API non vengono tradotti quando si cambia la lingua.
| Argomento | Comandi e spiegazioni |
|---|---|
| Cliloc | UO.GetCliloc |
| Cliloc by ID | UO.GetClilocByID |
| Codepage | UO.GetUserCodepage |
UO.GetCliloc · UO.GetClilocByID · UO.GetUserCodepage
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 item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
UO.Print(UO.GetCliloc(item));
}
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 text = UO.GetClilocByID(1042971, "");
UO.Print(text);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetCliloc(object? objID);Legge il testo delle proprietà dell'oggetto finito da OPL. GetTooltip e GetCliloc sono sinonimi.
-
objID— Richiesto l'oggetto serial/ID, non type e non cliloc. Accetta int, stringa decimale/esadecimale, self, backpack, lasttarget, trovaelemento o nome AddObject. 0 significa nessun oggetto.
string — nome e testo delle proprietà, separati da avanzamento riga, o solo la parte non vuota. Stringa vuota se ObjID=0 o se le proprietà non vengono ricevute. Questo è un testo già pronto; numerico ID cliloc e i parametri vengono restituiti da GetTooltipRec.
- Se la voce esiste già in OPL, il suo testo viene restituito immediatamente. Se non è presente alcuna voce, viene inviata una richiesta di proprietà e è prevista una risposta fino a 200 ms con un controllo ogni 10 ms. Una pausa non garantisce una risposta.
- Abbiamo bisogno di un oggetto accessibile e del supporto per le proprietà da parte del server. Un risultato vuoto non è una prova che l'oggetto non esiste: utilizzare Exists separatamente.
- Il testo può contenere markup del server. Non analizzare le proprietà numeriche in base alla posizione della riga; usa GetTooltipRec per questo.
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.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- FindType: oro 0x0EED, qualsiasi hue=-1, contenuto diretto backpack. ObjID=oggetto - trovato serial.
- Il risultato getter è il testo, non la quantità di oro. Per la quantità utilizzare FindCount(articolo).
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
UO.Print(UO.GetCliloc(item));
}
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:
- ObjID=lasttarget deve puntare all'oggetto desiderato.
- Una stringa vuota viene elaborata separatamente; Non è necessario ripetere automaticamente la richiesta in un ciclo infinito.
return RunScenario();
object? RunScenario()
{
var text = UO.GetCliloc("lasttarget");
if (Truth(text == ""))
{
UO.Print("No properties received");
}
else
{
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:
- id e salvato sono variabili separate: l'univoco ID dell'oggetto e un'istantanea del suo testo.
- salvato non cambierà automaticamente se le proprietà sul server cambiano successivamente.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var id = UO.GetSerial("lasttarget");
var saved = UO.GetCliloc(id);
UO.Print("Object: 0x" + Hex(id));
UO.Print(saved);
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
}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: objID (Any)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltip:bridge.GetTooltip(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Codice interno di implementazione; non è uno script autonomo.
case "getcliloc":
case "gettooltip":
return new InjectionValue(bridge.GetTooltip(Arg(0)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetClilocByID(object? clilocID, object? @params);Traduce il modello clicoc dai file di gioco e sostituisce i parametri passati.
-
clilocID- Obbligatorio int - ID di un messaggio localizzato, non serial di un oggetto e non graphic. Ad esempio, il numero dalla riga[0] del risultato GetTooltipRec. -
params— Array obbligatorio di sostituzioni nell'ordine1_...,2_.... È consentito un valore scalare: diventa un array di una stringa. Per un modello senza parametri, puoi passare una stringa vuota. L'elemento #number si riferisce ad un altro clicoc. Gli elementi vengono convertiti in stringhe; È preferibile passare le stringhe in modo esplicito.
string: modello tradotto con sostituzioni da Params. Se non è presente alcun caricatore cliloc, viene restituita una stringa vuota. Se ID è sconosciuto, caricato ClilocLoader restituisce il testo diagnostico MegaCliloc: mancante con questo numero e parametri sostituiti. Non restituisce clicoc ID o un segno di successo.
- Per le proprietà dell'oggetto, prima GetTooltipRec(ObjID): il numero del messaggio e l'oggetto sono diversi ID. Per il testo già pronto di tutte le proprietà, utilizzare GetTooltip(ObjID).
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.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parametri e flusso di esecuzione:
- ClilocID=1042971 — numero di esempio; sostituisci con quello che ti serve. Params è una stringa vuota passata come un singolo valore vuoto.
- Per un modello senza contrassegni jolly, un parametro vuoto non modifica il testo. Se il modello prevede dati, passare un array come nell'esempio seguente.
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);Parametri e flusso di esecuzione:
- ClilocID=1042971 è un esempio di modello. args[0] e args[1] occupano le posizioni del primo e del secondo parametro.
- La dichiarazione della variabile indice[1] crea due elementi: da 0 a 1. Utilizza il modello ID, che prevede parametri corrispondenti.
return RunScenario();
object? RunScenario()
{
dynamic[] args = new dynamic[checked((int)(1) + 1)];
args[0] = "iron";
args[1] = "ingot";
UO.Print(UO.GetClilocByID(1042971, args));
return null;
}Parametri e flusso di esecuzione:
- Il primo argomento sono le proprietà clilocID; il secondo è la sua serie di parametri già pronti.
- Viene verificata la presenza di almeno un record. Tutti i parametri vengono ricevuti dal server e trasmessi insieme al loro ID.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var rows = UO.GetTooltipRec("lasttarget");
if (Truth(ArrayLength(rows) > 0))
{
var row = rows[0];
UO.Print(UO.GetClilocByID(row[0], row[1]));
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}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: clilocID (Any), params (Any)
Risultato: dynamic / Any.
Durante la chiamata:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetClilocById:bridge.GetClilocById(Arg(0), StringArrayArg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::StringArrayArg:StringArrayArg(1).
Codice interno di implementazione; non è uno script autonomo.
case "getclilocbyid":
return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetUserCodepage();Restituisce Encoding.Default.CodePage senza leggere le impostazioni del profilo.
Non ci sono parametri.
int — Encoding.Default.CodePage del processo corrente. Questa è la codifica .NET, non la codifica vocale selezionata UO.
- Restituisce Encoding.Default.CodePage senza leggere le impostazioni del profilo. Il valore dipende dall'ambiente .NET; non può essere considerato garantito Windows ANSI.
- Legge lo stato locale attuale. Non esiste alcun pacchetto, destinazione o aggiornamento automatico; le singole letture possono vedere stati diversi.
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.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));Parametri e flusso di esecuzione:
- Restituisce Encoding.Default.CodePage senza leggere le impostazioni del profilo.
UO.Print(UO.GetUserCodepage());Parametri e flusso di esecuzione:
- Restituisce Encoding.Default.CodePage senza leggere le impostazioni del profilo. Il valore dipende dall'ambiente .NET; non può essere considerato garantito Windows ANSI.
return RunScenario();
object? RunScenario()
{
var codepage = UO.GetUserCodepage();
if (Truth(codepage == 65001))
{
UO.Print("UTF-8");
}
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:
- Legge lo stato locale attuale. Non esiste alcun pacchetto, destinazione o aggiornamento automatico; le singole letture possono vedere stati diversi.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var before = UO.GetUserCodepage();
UO.Wait(500);
var after = UO.GetUserCodepage();
UO.Print(before);
UO.Print(after);
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: int / Integer.
Durante la chiamata:
Codice interno di implementazione; non è uno script autonomo.
public int GetUserCodepage() => Encoding.Default.CodePage;ClassicUO — Bad Newbie & C# Scripts IDE