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

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

ボート

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

ボートの移動と停止を制御します。チームの空き状況は、現在のボートとサーバーによって決まります。

セクション

トピック コマンドと説明
MoveBoat UO.MoveBoat
StopBoat UO.StopBoat

すべてのテーマコマンド

ボートコントロール

UO.MoveBoat · UO.StopBoat

このトピックに関する例

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

UO.MoveBoat

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

UO.MoveBoat(0, 1);

UO.StopBoat

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

UO.StopBoat();

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


UO.MoveBoat

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

C# のシグネチャ

void UO.MoveBoat(object? direction, object? speed);

ボートの方向と速度を要求します。

引数

  • direction - int、下位 3 ビットは方向 0..7: N、NE、E、SE、S、SW、W、NW を指定します。
  • speed - int、0..255 に制限され、byte に削減されます。 0—停止リクエスト。セル/秒単位の速度ではなく、プロトコル コード。

戻り値

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

動作

  • Bridge.MoveBoat は BoatMovingManager.MoveRequest((Direction)(方向&7)、クランプ(速度,0,255))を呼び出します。現在のボートおよび制御権はクライアント/サーバーによって決定されます。
  • パスファインダーを介してキャラクターを移動したり、ステップを待機したり、ボートの座標を返したりしません。サーバーがリクエストを拒否する可能性があります。

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

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

簡単な例

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

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

UO.Print("Calling UO.MoveBoat");
UO.MoveBoat(0, 1);

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

引数と実行の流れ:

  • ボートの方向と速度を要求します。
UO.MoveBoat(0, 1);

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

引数と実行の流れ:

  • Bridge.MoveBoat は BoatMovingManager.MoveRequest((Direction)(方向&7)、クランプ(速度,0,255))を呼び出します。現在のボートおよび制御権はクライアント/サーバーによって決定されます。
return  RunScenario();
 object? RunScenario()
{
    UO.MoveBoat(2, 1);
    UO.Wait(500);
    UO.StopBoat();
    return null;
}

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()
    {
        UO.MoveBoat(0, 0);
        return null;
    }
}

コマンドの実装

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

UO.MoveBoat(direction, speed) — UO.MoveBoat(Any,Any)

引数: direction (Any), speed (Any)

結果: void / Unit.

呼び出し時:

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

case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;

UO.StopBoat

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

C# のシグネチャ

void UO.StopBoat();

ボートに動きを止めるよう要求します。

引数

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

戻り値

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

動作

  • StopBoat は、Player.Direction (または Player なしの北)、speed=0 を指定して BoatMovingManager.MoveRequest を呼び出します。このリクエストはボートのサーバー位置を返しません。
  • 例では、UO.Wait はスクリプトの一時停止のみを指定します。一時停止が終了しても、サーバーがリクエストを完了したことは証明されません。

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

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

簡単な例

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

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

UO.Print("Calling UO.StopBoat");
UO.StopBoat();

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

引数と実行の流れ:

  • ボートに動きを止めるよう要求します。
UO.StopBoat();

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

引数と実行の流れ:

  • StopBoat は、Player.Direction (または Player なしの北)、speed=0 を指定して BoatMovingManager.MoveRequest を呼び出します。このリクエストはボートのサーバー位置を返しません。
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.IsOnline()))
    {
        UO.StopBoat();
    }

    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。完全なヘルパー関数 - スクリプト クラス

引数と実行の流れ:

  • 例では、UO.Wait はスクリプトの一時停止のみを指定します。一時停止が終了しても、サーバーがリクエストを完了したことは証明されません。
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.StopBoat();
        UO.Wait(250);
        UO.Print(UO.GetX());
        return null;
    }
}

コマンドの実装

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

UO.StopBoat() — UO.StopBoat()

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

結果: void / Unit.

呼び出し時:

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

case "stopboat": bridge.StopBoat(); return InjectionValue.Unit;
⚠️ **GitHub.com Fallback** ⚠️