JA UO Topic mouse keyboard - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

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

マウスとキーボード

家 · C# · IDE · UO API · A–Z · 例 · Languages

マウスとキーボードの入力。画面座標、ワールドセル、ガンプ内の座標は意味が異なります。

セクション

トピック コマンドと説明
Click UO.Click
LClick UO.LClick
RClick UO.RClick
DoubleClick UO.LDblClick · UO.RDblClick
KeyPress UO.KeyPress
Press UO.Press

すべてのテーマコマンド

入力

UO.Click · UO.LClick · UO.RClick · UO.LDblClick · UO.RDblClick · UO.KeyPress · UO.Press

このトピックに関する例

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

UO.LClick

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

UO.LClick(100, 100);

UO.KeyPress

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

UO.KeyPress(0x70);

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


UO.Click

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

C# のシグネチャ

void UO.Click(object? name);

GameActions.SingleClick 経由でオブジェクトのシングルクリックを送信します。

引数

  • name — オブジェクトのシリアル番号、または self/backpack/lasttarget/saved オブジェクトのサポートされている名前。数値文字列と 0x 文字列は実行時に解決されます。

戻り値

void - 戻り値はありません。

動作

  • Click は、ObjectChecked を介してリンクを解決します。 ClickOnObject はまず serial に Arg を使用し、Click(int) を呼び出します。これはアイテムの署名/情報のリクエストであり、DoubleClick またはアイテムの使用ではありません。サーバーの応答は非同期で届きます。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.Click");
UO.Click("self");

1。キャラクターをクリック - 直接スクリプト

引数と実行の流れ:

  • シングルクリックがselfに送信されます。
UO.Click("self");

2。最後のターゲットをクリック - スクリプト関数

引数と実行の流れ:

  • 送信する前に、ターゲットがローカルに存在するかどうかがチェックされます。
return  RunScenario();
 object? RunScenario()
{
    var target = UO.LastTarget();
    if (Truth(UO.Exists(target)))
    {
        UO.Click(target);
    }

    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 bag = UO.Backpack();
        if (Truth(bag != 0))
        {
            UO.Click(bag);
        }

        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# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.Click(name) — UO.Click(Any)

引数: name (Any)

結果: void / Unit.

呼び出し時:

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

public void Click(InjectionValue name) => ObjectChecked(name, id => Click(id));

UO.KeyPress

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

C# のシグネチャ

void UO.KeyPress(object? key);
void UO.KeyPress(object? key, object? count);
void UO.KeyPress(object? key, object? count, object? delay);

1 つ以上の仮想キーの押下を合成します。

引数

  • key - int 仮想キー Windows、byte に縮小されます。これは文字列ではなく、ID ターゲットでもありません。
  • count — オプションの繰り返し回数、デフォルトは 1。 0/ネガティブ - 押すことも待つこともありません。
  • delay - 最後のボタンを含め、各ボタンを押すたびにミリ秒単位のオプションの一時停止。デフォルトは 105 です。この機能によるさらなる制限なしに、ブリッジWait によって送信されます。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Press はすべてのフォームを KeyPress に転送します。 KeyPress はループ count>0 を実行します: ブリッジ。KeyPress(キー)、ブリッジ。Wait(遅延)、カウント--。ブリッジは user32 keybd_event をダウン/アップに送信します。
  • 入力フォーカスを使用して Graphics ClassicUO を開く必要があります。それ以外の場合、RequireGameInput はエラーをスローします。クリックすると現在のインターフェイス/マクロが処理されますが、サーバー コマンドの結果は返されません。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.KeyPress");
UO.KeyPress(0x70);

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

引数と実行の流れ:

  • 1 つ以上の仮想キーの押下を合成します。
UO.KeyPress(0x70);

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

引数と実行の流れ:

  • Press はすべてのフォームを KeyPress に転送します。 KeyPress はループ count>0 を実行します: ブリッジ。KeyPress(キー)、ブリッジ。Wait(遅延)、カウント--。ブリッジは user32 keybd_event をダウン/アップに送信します。
return  RunScenario();
 object? RunScenario()
{
    UO.KeyPress(0x70, 2, 250);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスを使用して Graphics ClassicUO を開く必要があります。それ以外の場合、RequireGameInput はエラーをスローします。クリックすると現在のインターフェイス/マクロが処理されますが、サーバー コマンドの結果は返されません。
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.KeyPress(0x70, 0);
        UO.Print("Zero count sends no key");
        return null;
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.KeyPress(key) — UO.KeyPress(Integer)

引数: key (Integer)

結果: void / Unit.

呼び出し時:

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

public void KeyPress(int key) => KeyPress(key, 1);

UO.KeyPress(key, count) — UO.KeyPress(Integer,Integer)

引数: key (Integer), count (Integer)

結果: void / Unit.

呼び出し時:

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

public void KeyPress(int key, int count) => KeyPress(key, count, 105);

UO.KeyPress(key, count, delay) — UO.KeyPress(Integer,Integer,Integer)

引数: key (Integer), count (Integer), delay (Integer)

結果: void / Unit.

呼び出し時:

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

public void KeyPress(int key, int count, int delay)

        {

            while (count > 0)

            {

                bridge.KeyPress(key);

                bridge.Wait(delay);

                count--;

            }

        }

UO.LClick

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

C# のシグネチャ

void UO.LClick(object? x, object? y);

マウスの 1 回のクリック (左ボタン) を合成します。

引数

  • x — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int X。
  • y — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int Y。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新してから、MouseButton を 1 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.LClick");
UO.LClick(100, 100);

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

引数と実行の流れ:

  • マウスの 1 回のクリック (左ボタン) を合成します。
UO.LClick(100, 100);

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

引数と実行の流れ:

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新してから、MouseButton を 1 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.LClick(x, y);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.LClick(x, y);
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.LClick(x, y) — UO.LClick(Integer,Integer)

引数: x (Integer), y (Integer)

結果: void / Unit.

呼び出し時:

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

public void LClick(int x, int y) => bridge.LClick(x, y);

UO.LDblClick

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

C# のシグネチャ

void UO.LDblClick(object? x, object? y);

マウスのダブルクリック: 左ボタンを合成します。

引数

  • x — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int X。
  • y — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int Y。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新し、次に MouseButton を 2 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.LDblClick");
UO.LDblClick(100, 100);

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

引数と実行の流れ:

  • マウスのダブルクリック: 左ボタンを合成します。
UO.LDblClick(100, 100);

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

引数と実行の流れ:

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新し、次に MouseButton を 2 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.LDblClick(x, y);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.LDblClick(x, y);
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.LDblClick(x, y) — UO.LDblClick(Integer,Integer)

引数: x (Integer), y (Integer)

結果: void / Unit.

呼び出し時:

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

public void LDblClick(int x, int y) => bridge.LDblClick(x, y);

UO.Press

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

C# のシグネチャ

void UO.Press(object? key);
void UO.Press(object? key, object? count);
void UO.Press(object? key, object? count, object? delay);

1 つ以上の仮想キーの押下を合成します。

引数

  • key - int 仮想キー Windows、byte に縮小されます。これは文字列ではなく、ID ターゲットでもありません。
  • count — オプションの繰り返し回数、デフォルトは 1。 0/ネガティブ - 押すことも待つこともありません。
  • delay - 最後のボタンを含め、各ボタンを押すたびにミリ秒単位のオプションの一時停止。デフォルトは 105 です。この機能によるさらなる制限なしに、ブリッジWait によって送信されます。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Press はすべてのフォームを KeyPress に転送します。 KeyPress はループ count>0 を実行します: ブリッジ。KeyPress(キー)、ブリッジ。Wait(遅延)、カウント--。ブリッジは user32 keybd_event をダウン/アップに送信します。
  • 入力フォーカスを使用して Graphics ClassicUO を開く必要があります。それ以外の場合、RequireGameInput はエラーをスローします。クリックすると現在のインターフェイス/マクロが処理されますが、サーバー コマンドの結果は返されません。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.Press");
UO.Press(0x70);

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

引数と実行の流れ:

  • 1 つ以上の仮想キーの押下を合成します。
UO.Press(0x70);

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

引数と実行の流れ:

  • Press はすべてのフォームを KeyPress に転送します。 KeyPress はループ count>0 を実行します: ブリッジ。KeyPress(キー)、ブリッジ。Wait(遅延)、カウント--。ブリッジは user32 keybd_event をダウン/アップに送信します。
return  RunScenario();
 object? RunScenario()
{
    UO.Press(0x70, 2, 250);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスを使用して Graphics ClassicUO を開く必要があります。それ以外の場合、RequireGameInput はエラーをスローします。クリックすると現在のインターフェイス/マクロが処理されますが、サーバー コマンドの結果は返されません。
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.Press(0x70, 0);
        UO.Print("Zero count sends no key");
        return null;
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.Press(key) — UO.Press(Integer)

引数: key (Integer)

結果: void / Unit.

呼び出し時:

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

public void Press(int key) => KeyPress(key);

UO.Press(key, count) — UO.Press(Integer,Integer)

引数: key (Integer), count (Integer)

結果: void / Unit.

呼び出し時:

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

public void Press(int key, int count) => KeyPress(key, count);

UO.Press(key, count, delay) — UO.Press(Integer,Integer,Integer)

引数: key (Integer), count (Integer), delay (Integer)

結果: void / Unit.

呼び出し時:

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

public void Press(int key, int count, int delay) => KeyPress(key, count, delay);

UO.RClick

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

C# のシグネチャ

void UO.RClick(object? x, object? y);

マウスの 1 回のクリック、つまり右ボタンを合成します。

引数

  • x — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int X。
  • y — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int Y。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新してから、MouseButton を 1 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.RClick");
UO.RClick(100, 100);

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

引数と実行の流れ:

  • マウスの 1 回のクリック、つまり右ボタンを合成します。
UO.RClick(100, 100);

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

引数と実行の流れ:

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新してから、MouseButton を 1 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.RClick(x, y);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.RClick(x, y);
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.RClick(x, y) — UO.RClick(Integer,Integer)

引数: x (Integer), y (Integer)

結果: void / Unit.

呼び出し時:

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

public void RClick(int x, int y) => bridge.RClick(x, y);

UO.RDblClick

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

C# のシグネチャ

void UO.RDblClick(object? x, object? y);

マウスのダブルクリック、つまり右ボタンを合成します。

引数

  • x — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int X。
  • y — 世界座標ではなく、ClassicUO ウィンドウ ピクセルの int Y。

戻り値

void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。

動作

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新し、次に MouseButton を 2 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。

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

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

簡単な例

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

コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。

UO.Print("Calling UO.RDblClick");
UO.RDblClick(100, 100);

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

引数と実行の流れ:

  • マウスのダブルクリック、つまり右ボタンを合成します。
UO.RDblClick(100, 100);

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

引数と実行の流れ:

  • Bridge は WarpMouse(x,y) を呼び出し、Mouse.Position と SDL_WarpMouseInWindow を更新し、次に MouseButton を 2 回ダウン/アップします。ダブルクリックの間に一時停止はありません。
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.RDblClick(x, y);
    return null;
}

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

引数と実行の流れ:

  • 入力フォーカスのある開いた ClassicUO グラフィックス ウィンドウが必要です。それ以外の場合、RequireGameInput は InvalidOperationException をスローします。 user32 Mouse_even は Windows で使用できます。ドットの下のボタン/オブジェクトは、現在のインターフェイスによって異なります。
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.RDblClick(x, y);
    }
}

コマンドの実装

C# は大文字と小文字を区別します。正確な UO 名を使用してください。数値フラグは 0 と比較し、戻り値が bool の場合だけ bool を使います。

UO.RDblClick(x, y) — UO.RDblClick(Integer,Integer)

引数: x (Integer), y (Integer)

結果: void / Unit.

呼び出し時:

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

public void RDblClick(int x, int y) => bridge.RDblClick(x, y);
⚠️ **GitHub.com Fallback** ⚠️