Repository navigation
JA UO Topic localization
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
家 · C# · IDE · UO API · A–Z · 例 · Languages
ローカライズされた cliloc テキストとエンコード情報を取得します。コマンド名 API は、言語を変更するときに翻訳されません。
| トピック | コマンドと説明 |
|---|---|
| Cliloc | UO.GetCliloc |
| Cliloc by ID | UO.GetClilocByID |
| Codepage | UO.GetUserCodepage |
UO.GetCliloc · UO.GetClilocByID · UO.GetUserCodepage
各コマンド カードには、直接コード、関数、クラスなどのいくつかの独立したシナリオがあります。以下は厳選された短いシナリオです。制限と完全な分析がカードに含まれています。
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;var text = UO.GetClilocByID(1042971, "");
UO.Print(text);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetCliloc(object? objID);完成したオブジェクトのプロパティ テキストを OPL から読み取ります。 GetTooltip と GetCliloc は同義語です。
-
objID— type や cliloc ではなく、serial/ID オブジェクトが必須です。 int、10 進数/16 進数の文字列、self、backpack、lasttarget、finditem、または名前 AddObject を受け入れます。 0 はオブジェクトがないことを意味します。
string — 改行で区切られたプロパティの名前とテキスト、または空ではない部分のみ。 ObjID=0 の場合、またはプロパティが受信されない場合は空の文字列。これは既製のテキストです。数値 ID cliloc とパラメータは GetTooltipRec によって返されます。
- エントリがすでに OPL に存在する場合、そのテキストがすぐに返されます。エントリがない場合は、プロパティ要求が送信され、最大 200 ミリ秒以内に応答が返され、10 ミリ秒ごとにチェックされます。一時停止しても応答は保証されません。
- アクセス可能なオブジェクトと、サーバーによるプロパティのサポートが必要です。空の結果は、オブジェクトが存在しないことを証明するものではありません。Exists を個別に使用してください。
- テキストにはサーバー マークアップが含まれる場合があります。行位置によって数値プロパティを解析しないでください。これには GetTooltipRec を使用します。
各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。
このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。
1 回の呼び出し結果をジャーナルに表示します。数値は bool に変換されません。配列の場合は要素数を表示します。
object? result = UO.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));引数と実行の流れ:
- FindType: ゴールド 0x0EED、任意の hue=-1、直接コンテンツ backpack。 ObjID=item - serial が見つかりました。
- ゲッターの結果はテキストであり、ゴールドの量ではありません。数量には FindCount(品目) を使用します。
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;引数と実行の流れ:
- ObjID=lasttarget は目的のオブジェクトを指している必要があります。
- 空の文字列は個別に処理されます。リクエストを無限ループで自動的に繰り返す必要はありません。
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;引数と実行の流れ:
- id と Saved は別個の変数です。オブジェクトの一意の 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 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# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。
引数: objID (Any)
結果: dynamic / Any.
呼び出し時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetTooltip:bridge.GetTooltip(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
内部実装のコードです。単独のスクリプトとして実行できません。
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);ゲーム ファイルから cliloc テンプレートを変換し、渡されたパラメータを置き換えます。
-
clilocID- 必須 int - オブジェクトの serial や graphic ではなく、ローカライズされたメッセージの ID。たとえば、結果 GetTooltipRec の行 [0] の番号です。 -
params—1_...、2_...の順序の置換の必須配列。 1 つのスカラー値が許可されます。これは 1 つの文字列の配列になります。パラメーターのないテンプレートの場合は、空の文字列を渡すことができます。 #number 要素は別の cliloc を参照します。要素は文字列に変換されます。文字列を明示的に渡すことをお勧めします。
string — Params からの置換を含む翻訳されたテンプレート。 cliloc ローダーがない場合は、空の文字列が返されます。 ID が不明な場合、ロードされた ClilocLoader は、診断テキスト MegaCliloc: この数値と置換されたパラメーターが欠落していますを返します。 cliloc ID または成功サインを返しません。
- オブジェクトのプロパティについては、まず GetTooltipRec(ObjID): メッセージ番号とオブジェクトが異なります ID。すべてのプロパティの既製のテキストについては、GetTooltip(ObjID) を使用します。
各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。
このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。
1 回の呼び出し結果をジャーナルに表示します。数値は bool に変換されません。配列の場合は要素数を表示します。
object? result = UO.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));引数と実行の流れ:
- ClilocID=1042971 — 例の番号。必要なものと交換してください。 Params は、単一の空の値として渡される空の文字列です。
- ワイルドカード マーカーのないパターンの場合、パラメーターを空にしてもテキストは変更されません。テンプレートがデータを必要とする場合は、次の例のように配列を渡します。
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);引数と実行の流れ:
- ClilocID=1042971 はテンプレートの例です。 args[0] と args[1] は、最初と 2 番目のパラメーターの位置を占めます。
- インデックス変数宣言[1]は、0から1の2つの要素を作成します。適切なパラメーターが必要な ID テンプレートを使用します。
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;
}引数と実行の流れ:
- 最初の引数は clilocID プロパティです。 2 つ目は、既製の Params 配列です。
- 少なくとも 1 つのレコードの存在がチェックされます。すべてのパラメータはサーバーから受信され、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# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。
引数: clilocID (Any), params (Any)
結果: dynamic / Any.
呼び出し時:
-
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).
内部実装のコードです。単独のスクリプトとして実行できません。
case "getclilocbyid":
return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.GetUserCodepage();プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。
パラメータはありません。
int — 現在のプロセスの Encoding.Default.CodePage。これは .NET エンコーディングであり、選択した音声エンコーディング UO ではありません。
- プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。値は環境によって異なります。NET; Windows ANSI が保証されているとは見なされません。
- 現在のローカル状態を読み取ります。パッケージ、ターゲット、自動アップデートはありません。個々の読み取りでは異なる状態が表示される場合があります。
各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。
このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。
1 回の呼び出し結果をジャーナルに表示します。数値は bool に変換されません。配列の場合は要素数を表示します。
var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));引数と実行の流れ:
- プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。
UO.Print(UO.GetUserCodepage());引数と実行の流れ:
- プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。値は環境によって異なります。NET; 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;引数と実行の流れ:
- 現在のローカル状態を読み取ります。パッケージ、ターゲット、自動アップデートはありません。個々の読み取りでは異なる状態が表示される場合があります。
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# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。
引数: 引数はありません。
結果: int / Integer.
呼び出し時:
内部実装のコードです。単独のスクリプトとして実行できません。
public int GetUserCodepage() => Encoding.Default.CodePage;ClassicUO — Bad Newbie & C# Scripts IDE