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(0, 1);UO.StopBoat();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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))を呼び出します。現在のボートおよび制御権はクライアント/サーバーによって決定されます。
- パスファインダーを介してキャラクターを移動したり、ステップを待機したり、ボートの座標を返したりしません。サーバーがリクエストを拒否する可能性があります。
各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。
このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。
コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。
UO.Print("Calling UO.MoveBoat");
UO.MoveBoat(0, 1);引数と実行の流れ:
- ボートの方向と速度を要求します。
UO.MoveBoat(0, 1);引数と実行の流れ:
- Bridge.MoveBoat は BoatMovingManager.MoveRequest((Direction)(方向&7)、クランプ(速度,0,255))を呼び出します。現在のボートおよび制御権はクライアント/サーバーによって決定されます。
return RunScenario();
object? RunScenario()
{
UO.MoveBoat(2, 1);
UO.Wait(500);
UO.StopBoat();
return null;
}引数と実行の流れ:
- パスファインダーを介してキャラクターを移動したり、ステップを待機したり、ボートの座標を返したりしません。サーバーがリクエストを拒否する可能性があります。
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 を使います。
引数: direction (Any), speed (Any)
結果: void / Unit.
呼び出し時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MoveBoat:bridge.MoveBoat(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
内部実装のコードです。単独のスクリプトとして実行できません。
case "moveboat": bridge.MoveBoat(Arg(0), Arg(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.StopBoat();ボートに動きを止めるよう要求します。
パラメータはありません。
void - 値がありません。別の回線で電話してください。完了してもサーバーのアクションは確認されません。
- StopBoat は、Player.Direction (または Player なしの北)、speed=0 を指定して BoatMovingManager.MoveRequest を呼び出します。このリクエストはボートのサーバー位置を返しません。
- 例では、UO.Wait はスクリプトの一時停止のみを指定します。一時停止が終了しても、サーバーがリクエストを完了したことは証明されません。
各サンプルは個別のファイル .csx として保存し、IDE で実行できます。 UO オブジェクトと待機関数は、現在のゲーム セッションのホストを提供します。デモの serial の名前、座標、アドレスを自分のものに置き換えます。
このコードを独立した .csx ファイルとして実行します。引数は呼び出しに直接記載されています。例の名前、serial、アドレスを自分の値に置き換えてください。
コマンドは独立した文です。直前のメッセージは呼び出しの開始を示し、サーバーの動作完了を確認するものではありません。
UO.Print("Calling UO.StopBoat");
UO.StopBoat();引数と実行の流れ:
- ボートに動きを止めるよう要求します。
UO.StopBoat();引数と実行の流れ:
- 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;引数と実行の流れ:
- 例では、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 を使います。
引数: 引数はありません。
結果: void / Unit.
呼び出し時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.StopBoat:bridge.StopBoat().
内部実装のコードです。単独のスクリプトとして実行できません。
case "stopboat": bridge.StopBoat(); return InjectionValue.Unit;