JA UO Topic sound visual environment - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

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

Sound と視覚環境

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

音、照明、季節、クライアントの天候の影響。

セクション

トピック コマンドと説明
Sound UO.Sound
PlayWav UO.PlayWav
Light UO.Light
Season UO.SetSeason
Weather Filter UO.FilterWeather

すべてのテーマコマンド

環境

UO.Sound · UO.PlayWav · UO.Alarm · UO.Light · UO.SetSeason · UO.FilterWeather · UO.TicksAnim

このトピックに関する例

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

UO.PlayWav

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

UO.Print(UO.PlayWav("alert.wav"));

UO.Light

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

UO.Light();

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


UO.Alarm

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

C# のシグネチャ

void UO.Alarm();

「Alarm」という単語をローカルの ClassicUO syslog に出力します。スクリプト内の条件の発生に関するメモとして使用します。

引数

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

戻り値

void - 値なし。別行で実行してください。これは、bool ではなく、ユーザーがメッセージを見たという確認でもありません。

動作

  • パラメータのないフォームUO.Alarm()のみが登録されます。独自のテキストについては、UO.Print(text) を使用してください。
  • このコマンドは、サウンドの再生、アイコンの点滅、またはウィンドウのアクティブ化を行いません。メッセージはローカルに残ります。ゲーム チャットには送信されません。

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

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

簡単な例

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

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

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

1。ジャーナルにマークを付ける - 直接スクリプト

引数と実行の流れ:

  • パラメータはありません。 Alarm という単語がシステム ログに表示されます。
UO.Alarm();

2。体力が低下したときに警告する - スクリプト関数

引数と実行の流れ:

  • Alarm にはテキスト オプションがありません。 Life は数値 HP を返します。 Print に理由の明確な説明を追加します。
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.Life() < 30))
    {
        UO.Alarm();
        UO.Print("Health is below 30");
    }

    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。マーク検索結果 - スクリプトクラス

引数と実行の流れ:

  • 0x0EED - ゴールドタイプ、-1 - 任意の色、backpack - バックパック。 Alarm は、serial が見つかった場合にのみ呼び出されます。このような呼び出しをすぐにループに入れないでください。
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 item = UO.FindType(0x0EED, -1, "backpack");
        if (Truth(item != ""))
        {
            UO.Alarm();
            UO.Print("Gold stack found: " + Convert.ToString(item));
        }
        else
        {
            UO.Print("No gold stack in the loaded backpack");
        }

        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.Alarm() — UO.Alarm()

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

結果: void / Unit.

呼び出し時:

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

case "alarm":

                    SystemMessage(arguments.Length > 0 ? Text(0) : "Alarm"); return InjectionValue.Unit;

UO.FilterWeather

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

C# のシグネチャ

void UO.FilterWeather();
void UO.FilterWeather(object? enabled);

クライアント天気フィルターを有効または無効にします。

引数

  • enabled — オプションの値: 引数を指定しないと、フィルターがオンになります。 0 がオフになり、ゼロ以外の int がオンになります。

戻り値

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

動作

  • 正規化されたフラグをランタイム状態に書き込み、マネージャーに渡します。フィルターはクライアントの処理に影響します。サーバー イベントとその他のログ設定は分離されたままになります。

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

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

簡単な例

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

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

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

1。引数なしで有効にする - 直接スクリプト

引数と実行の流れ:

  • 引数の数がゼロの場合は、読み取りではなく含めることを意味します。
UO.FilterWeather();

2。オフにする - スクリプト機能

引数と実行の流れ:

  • 明示的な 0 はクライアント フィルターをオフにします。
return  RunScenario();
 object? RunScenario()
{
    UO.FilterWeather(0);
    return null;
}

3。 Turn On and Then Turn Off - Script Class

引数と実行の流れ:

  • フィルターがオンになり、明らかにオフ状態に戻ります。
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.FilterWeather(1);
        UO.FilterWeather(0);
        return null;
    }
}

コマンドの実装

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

UO.FilterWeather() — UO.FilterWeather()

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

結果: void / Unit.

呼び出し時:

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

case "filterweather": state.WeatherFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetWeatherFilter(state.WeatherFilter); break;

UO.FilterWeather(enabled) — UO.FilterWeather(Any)

引数: enabled (Any)

結果: void / Unit.

呼び出し時:

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

case "filterweather": state.WeatherFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetWeatherFilter(state.WeatherFilter); break;

UO.Light

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

C# のシグネチャ

void UO.Light();
void UO.Light(object? value);

クライアントの全体的な照明をローカルに設定します。

引数

  • value — オプションの整数: 0..30、この範囲に限定されます。引数のない形式では 0 を使用します。これは読み取りではなく書き込みです。

戻り値

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

動作

  • ExecuteLegacyManualAlias は Arg(0) を渡しますが、不足している引数は 0 です。 SetLight は、Light.Overall および Light.RealOverall に byte の制限値を割り当てます。
  • 他のプレイヤーの照明を変更せず、サーバーに要求しません。次のライティング サーバー パッケージで値を置き換えることができます。

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

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

簡単な例

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

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

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

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

引数と実行の流れ:

  • クライアントの全体的な照明をローカルに設定します。
UO.Light();

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

引数と実行の流れ:

  • ExecuteLegacyManualAlias は Arg(0) を渡しますが、不足している引数は 0 です。 SetLight は、Light.Overall および Light.RealOverall に byte の制限値を割り当てます。
return  RunScenario();
 object? RunScenario()
{
    UO.Light(15);
    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.Light(99);
        UO.Print("Light clamped to 30");
        return null;
    }
}

コマンドの実装

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

UO.Light() — UO.Light()

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

結果: void / Unit.

呼び出し時:

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

case "light": bridge.SetLight(Arg(0)); break;

UO.Light(value) — UO.Light(Any)

引数: value (Any)

結果: void / Unit.

呼び出し時:

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

case "light": bridge.SetLight(Arg(0)); break;

UO.PlayWav

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

C# のシグネチャ

int UO.PlayWav(object? file);

ローカルオーディオファイルを再生します。

引数

  • file — オーディオ ファイルへのパス。絶対パスは保持され、相対パスは CUOEnviroment.ExecutablePath から解決されます。拡張子自体はチェックされません。ファイルは SoundEffect.FromStream となります。

戻り値

数値フラグ int: 1 - sound.Play() が受け入れられ、0 - ファイルがないか、再生が失敗したか、エラーが捕捉されました。これで再生は終了ではありません。

動作

  • Bridge はファイルを読み取り用に開き、SoundEffect.FromStream をデコードし、受信したサウンドを制限された _sounds リストに保存し、制限に達すると古いサウンドを削除/破棄します。
  • ファイル/エラーが存在しない場合は、メッセージが表示され、結果は 0 となります。このコマンドはサウンドの終了を待たず、ファイルをサーバーに転送しません。

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

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

簡単な例

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

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

var result = UO.PlayWav("alert.wav");
UO.Print("PlayWav: " + Convert.ToString(result));

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

引数と実行の流れ:

  • ローカルオーディオファイルを再生します。
UO.Print(UO.PlayWav("alert.wav"));

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

引数と実行の流れ:

  • Bridge はファイルを読み取り用に開き、SoundEffect.FromStream をデコードし、受信したサウンドを制限された _sounds リストに保存し、制限に達すると古いサウンドを削除/破棄します。
return  RunScenario();
 object? RunScenario()
{
    UO.Print(UO.PlayWav("C:\\UO Sounds\\alert.wav"));
    return null;
}

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

引数と実行の流れ:

  • ファイル/エラーが存在しない場合は、メッセージが表示され、結果は 0 となります。このコマンドはサウンドの終了を待たず、ファイルをサーバーに転送しません。
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 accepted = UO.PlayWav("alert.wav");
        if (Truth(accepted == 0))
        {
            UO.Print("Audio file could not be played");
        }

        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.PlayWav(file) — UO.PlayWav(Any)

引数: file (Any/String)

結果: int / Any.

呼び出し時:

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

case "playwav": return new InjectionValue(bridge.PlayWav(Text(0)));

UO.PlayWav(file) — UO.PlayWav(String)

引数: file (Any/String)

結果: int / Integer.

呼び出し時:

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

public int PlayWav(string file) => bridge.PlayWav(file);

UO.SetSeason

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

C# のシグネチャ

void UO.SetSeason(object? season);

表示される季節をローカルに変更します。

引数

  • season — int: 0..4; 0 より下の値/4 より上の値は、最も近い境界に制限されます。この番号は、クライアントの列挙型 Season に対応します。

戻り値

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

動作

  • Bridge.SetSeason は _world.ChangeSeason((シーズン)クランプ(シーズン,0,4), -1) を呼び出します。これはクライアントの世界の表示であり、サーバーの季節を変更する要求ではありません。
  • サーバーのデータにより、後で季節が再び変更される可能性があります。このコマンドは、地図、サーバーの天気、カレンダーの日付を変更しません。

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

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

簡単な例

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

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

UO.Print("Calling UO.SetSeason");
UO.SetSeason(0);

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

引数と実行の流れ:

  • 表示される季節をローカルに変更します。
UO.SetSeason(0);

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

引数と実行の流れ:

  • Bridge.SetSeason は _world.ChangeSeason((シーズン)クランプ(シーズン,0,4), -1) を呼び出します。これはクライアントの世界の表示であり、サーバーの季節を変更する要求ではありません。
return  RunScenario();
 object? RunScenario()
{
    UO.SetSeason(4);
    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.SetSeason(99);
        UO.Print("Season clamped to 4");
        return null;
    }
}

コマンドの実装

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

UO.SetSeason(season) — UO.SetSeason(Any)

引数: season (Any)

結果: void / Unit.

呼び出し時:

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

case "setseason": bridge.SetSeason(Arg(0)); break;

UO.Sound

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

C# のシグネチャ

void UO.Sound(object? soundId);

サウンドを再生するのは、 ID クライアントのリソースから。

引数

  • soundId - int ID リソースサウンド UO; WAV へのパスや期間ではありません。

戻り値

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

動作

  • ExecuteLegacyManualAlias は Bridge.PlaySound を呼び出します。ここで、RequireGameView("PlaySound").Audio.PlaySound(sound) はゲーム スレッドで実行されます。
  • オーディオ付きのグラフィックス ウィンドウが開いている必要があります。エラー GUI が見つからないと通話が終了する場合があります。この void コマンドは再生結果を返しません。ローカル ファイルの場合は、PlayWav を使用します。

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

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

簡単な例

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

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

UO.Print("Calling UO.Sound");
UO.Sound(0x0040);

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

引数と実行の流れ:

  • サウンドを再生するのは、 ID クライアントのリソースから。
UO.Sound(0x0040);

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

引数と実行の流れ:

  • ExecuteLegacyManualAlias は Bridge.PlaySound を呼び出します。ここで、RequireGameView("PlaySound").Audio.PlaySound(sound) はゲーム スレッドで実行されます。
return  RunScenario();
 object? RunScenario()
{
    var soundId = 0x0040;
    UO.Sound(soundId);
    return null;
}

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

引数と実行の流れ:

  • オーディオ付きのグラフィックス ウィンドウが開いている必要があります。エラー GUI が見つからないと通話が終了する場合があります。この Unit コマンドは再生結果を返しません。ローカル ファイルの場合は、PlayWav を使用します。
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.Sound(0x0040);
        UO.Wait(250);
        UO.Print("Sound request made");
        return null;
    }
}

コマンドの実装

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

UO.Sound(soundId) — UO.Sound(Any)

引数: soundId (Any)

結果: void / Unit.

呼び出し時:

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

case "sound": bridge.PlaySound(Arg(0)); break;

UO.TicksAnim

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

C# のシグネチャ

int UO.TicksAnim();

保存されたマークTicksAnimを読み取ります。

引数

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

戻り値

int — ランタイムの開始から 10 分の 1 秒で UO.Timer をマークします。 0 - マークがまだ設定されていない、またはイベントが最初の 10 分の 1 秒以内に発生しました。ミリ秒やカレンダー時間ではありません。

動作

  • フィールド ticksAnim を返します。これは、Morph またはゼロ以外の Move 結果によって更新されます。すべての手動/サーバーアクティビティを自動的に監視するわけではありません。コマンド自体はマークを変更しません。
  • UO.Timer() - マークは年齢を 10 分の 1 秒単位で計算します。異なるランタイム間ではマークは比較されません。

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

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

簡単な例

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

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

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

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

引数と実行の流れ:

  • 保存されたマークTicksAnimを読み取ります。
var stamp = UO.TicksAnim();
UO.Print(stamp);

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

引数と実行の流れ:

  • フィールド ticksAnim を返します。これは、Morph またはゼロ以外の Move 結果によって更新されます。すべての手動/サーバーアクティビティを自動的に監視するわけではありません。コマンド自体はマークを変更しません。
return  RunScenario();
 object? RunScenario()
{
    var stamp = UO.TicksAnim();
    var ageTenths = UO.Timer() - stamp;
    UO.Print(ageTenths);
    return null;
}

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

引数と実行の流れ:

  • UO.Timer() - マークは年齢を 10 分の 1 秒単位で計算します。異なるランタイム間ではマークは比較されません。
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.TicksAnim();
        UO.Wait(250);
        var after = UO.TicksAnim();
        UO.Print(before = after);
        return null;
    }
}

コマンドの実装

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

UO.TicksAnim() — UO.TicksAnim()

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

結果: int / Integer.

呼び出し時:

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

public int TicksAnim() => ticksAnim;
⚠️ **GitHub.com Fallback** ⚠️