Skip to content

JA UO Topic localization

Codex edited this page Oct 12, 2026 · 4 revisions

Українська · Русский · 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

このトピックに関する例

各コマンド カードには、直接コード、関数、クラスなどのいくつかの独立したシナリオがあります。以下は厳選された短いシナリオです。制限と完全な分析がカードに含まれています。

UO.GetCliloc

パラメータ、結果、およびすべてのシナリオ

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;

UO.GetClilocByID

パラメータ、結果、およびすべてのシナリオ

var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

コマンドの完全なリファレンス


UO.GetCliloc

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C# のシグネチャ

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 を使用します。

単独で実行できる C# スクリプト

各サンプルは個別のファイル .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));

1。バックパック内のアイテムのプロパティ - 直接スクリプト

引数と実行の流れ:

  • 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;

2。応答なしの処理 - スクリプト関数

引数と実行の流れ:

  • 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;

3。次のアクションまでテキストを保存 - スクリプト クラス

引数と実行の流れ:

  • 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 を使います。

UO.GetCliloc(objID) — UO.GetCliloc(Any)

引数: objID (Any)

結果: dynamic / Any.

呼び出し時:

内部実装のコードです。単独のスクリプトとして実行できません。

case "getcliloc":

                case "gettooltip":

                    return new InjectionValue(bridge.GetTooltip(Arg(0)));

UO.GetClilocByID

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C# のシグネチャ

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) を使用します。

単独で実行できる C# スクリプト

各サンプルは個別のファイル .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));

1。ワイルドカードなしのテンプレート - 直接スクリプト

引数と実行の流れ:

  • ClilocID=1042971 — 例の番号。必要なものと交換してください。 Params は、単一の空の値として渡される空の文字列です。
  • ワイルドカード マーカーのないパターンの場合、パラメーターを空にしてもテキストは変更されません。テンプレートがデータを必要とする場合は、次の例のように配列を渡します。
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

2。 2つの値を渡す - スクリプト関数

引数と実行の流れ:

  • 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;
}

3。最初の不動産の変換 - スクリプト クラス

引数と実行の流れ:

  • 最初の引数は 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 を使います。

UO.GetClilocByID(clilocID, params) — UO.GetClilocByID(Any,Any)

引数: clilocID (Any), params (Any)

結果: dynamic / Any.

呼び出し時:

内部実装のコードです。単独のスクリプトとして実行できません。

case "getclilocbyid":

                    return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));

UO.GetUserCodepage

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C# のシグネチャ

int UO.GetUserCodepage();

プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。

引数

パラメータはありません。

戻り値

int — 現在のプロセスの Encoding.Default.CodePage。これは .NET エンコーディングであり、選択した音声エンコーディング UO ではありません。

動作

  • プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。値は環境によって異なります。NET; Windows ANSI が保証されているとは見なされません。
  • 現在のローカル状態を読み取ります。パッケージ、ターゲット、自動アップデートはありません。個々の読み取りでは異なる状態が表示される場合があります。

単独で実行できる C# スクリプト

各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。

簡単な例

このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。

1 回の呼び出し結果をジャーナルに表示します。数値は bool に変換されません。配列の場合は要素数を表示します。

var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));

1。直接呼び出し - 直接スクリプト

引数と実行の流れ:

  • プロファイル設定を読み取らずに、Encoding.Default.CodePage を返します。
UO.Print(UO.GetUserCodepage());

2。明示的なオプション - スクリプト関数

引数と実行の流れ:

  • プロファイル設定を読み取らずに、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;

3。完全なヘルパー関数 - スクリプト クラス

引数と実行の流れ:

  • 現在のローカル状態を読み取ります。パッケージ、ターゲット、自動アップデートはありません。個々の読み取りでは異なる状態が表示される場合があります。
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 を使います。

UO.GetUserCodepage() — UO.GetUserCodepage()

引数: 引数はありません。

結果: int / Integer.

呼び出し時:

内部実装のコードです。単独のスクリプトとして実行できません。

public int GetUserCodepage() => Encoding.Default.CodePage;

Clone this wiki locally