Skip to content

JA API UO LastAttack

Codex edited this page Nov 6, 2026 · 3 revisions

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

UO.LastAttack

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

C# のシグネチャ

dynamic UO.LastAttack();

最後の攻撃ターゲットのserialを読み取ります。

引数

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

戻り値

int — 保存済み serial; 0 は、serial がインストールされていないことを意味します。 bool ではなく、graphic/type でもありません。ゼロ以外の ID はもう世界に存在しない可能性があります。

動作

  • フィールドソース: Bridge.LastAttack。このコマンドはオブジェクトを選択、使用、または攻撃しません。
  • 現在のローカル状態を読み取ります。パッケージ、ターゲット、自動アップデートはありません。個々の読み取りでは異なる状態が表示される場合があります。

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

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

簡単な例

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

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

object? result = UO.LastAttack();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

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

引数と実行の流れ:

  • 最後の攻撃ターゲットのserialを読み取ります。
var id = UO.LastAttack();
UO.Print(Hex(id));

string Hex(object? value) => Convert.ToInt64(value).ToString("X");

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

引数と実行の流れ:

  • フィールドソース: Bridge.LastAttack。このコマンドはオブジェクトを選択、使用、または攻撃しません。
return  RunScenario();
 object? RunScenario()
{
    var id = UO.LastAttack();
    if (Truth(id != 0) && Truth(UO.Exists(id)))
    {
        UO.Print(UO.GetName(id));
    }

    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.LastAttack();
        UO.Wait(500);
        var after = UO.LastAttack();
        UO.Print(before == after);
        return null;
    }
}

コマンドの実装

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

UO.LastAttack() — UO.LastAttack()

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

結果: dynamic / Any.

呼び出し時:

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

case "lastattack":

                case "wartargetid": return new InjectionValue(bridge.LastAttack);

Clone this wiki locally