ZH TW UO Topic speech chat - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

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

演講與聊天

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

角色言語、情緒、聊天頻道和過濾器。客戶端本機訊息列印位於ClientUI。

部分

主題 命令與解釋
Say UO.Say
SayU UO.SayU
UOSay UO.UOSay
Emote UO.EmoteAction · UO.Bow · UO.Salute
Speech Filters UO.FilterSpeech
Global Chat UO.GlobalChatSendMsg · UO.GlobalChatActiveChannel
Channels UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel
Ignore Users UO.AddChatUserIgnore · UO.ClearChatUserIgnore

所有主題命令

演講

UO.Say · UO.SayU · UO.UOSay · UO.UOSayColor · UO.Msg · UO.UOAMessage · UO.FixTalk

表情

UO.Bow · UO.Salute · UO.EmoteAction

過濾器/通道

UO.FilterSpeech · UO.AddChatUserIgnore · UO.ClearChatUserIgnore · UO.GlobalChatActiveChannel · UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel · UO.GlobalChatSendMsg

關於該主題的範例

每個命令卡都有幾個獨立的場景:直接程式碼、函數和類別。以下是精選的簡短場景;限制和全面分析是有可能的。

UO.Say

參數、結果及所有場景

if (Truth(UO.Connected()))
{
    UO.Say("bank");
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

UO.GlobalChatSendMsg

參數、結果及所有場景

UO.GlobalChatSendMsg("Hello");

完整指令說明


UO.AddChatUserIgnore

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

C# 簽章

void UO.AddChatUserIgnore(object? userName);

將寄件者姓名新增至本機日誌訊息過濾清單。過濾器在此客戶端上運行,不會向伺服器發送請求。

參數

  • userName 是日誌發送者的名稱。空值或包含空格的值將被忽略;邊緣空間被移除。

傳回值

void。該命令不會傳回新增成功的訊息。

行為

  • 寄件者姓名比較不區分大小寫。來自符合名稱的訊息被本機日誌過濾器隱藏;這不會阻止伺服器上的玩家。 UO.ClearChatUserIgnore() 清除整個本地名稱清單。清除過濾器不會恢復已從顯示中排除的記錄。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.AddChatUserIgnore");
UO.AddChatUserIgnore("ExampleVendor");

1。在目前租用戶中隱藏此名稱下的新日誌條目。 - 直接腳本

參數與執行流程:

  • 在目前租用戶中隱藏此名稱下的新日誌條目。
UO.AddChatUserIgnore("ExampleVendor");

2。透過字串變數傳遞名稱。 - 腳本功能

參數與執行流程:

  • 透過字串變數傳遞名稱。
return  RunScenario();
 object? RunScenario()
{
    var sender = "ExampleVendor";
    UO.AddChatUserIgnore(sender);
    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.AddChatUserIgnore("ExampleVendor");
        UO.AddChatUserIgnore("ExamplePlayer");
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.AddChatUserIgnore(userName) — UO.AddChatUserIgnore(Any)

參數: userName (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "addchatuserignore": bridge.AddChatUserIgnore(Text(0)); return InjectionValue.Unit;

UO.Bow

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

C# 簽章

void UO.Bow();

透過發送弓角色的動作 GameActions.EmoteAction.

參數

沒有參數。

傳回值

void - 無回傳值。

行為

  • 這是角色的動畫/動作。該命令不會返回伺服器確認,也不會等待動畫完成。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。弓 - 直接腳本

參數與執行流程:

  • 送一弓。
UO.Bow();

2。連接時鞠躬 - 腳本功能

參數與執行流程:

  • 在發送操作之前檢查連接。
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.Connected()))
    {
        UO.Bow();
    }

    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()
    {
        Greet();
        return null;
    }

    void Greet()
    {
        UO.Bow();
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.Bow() — UO.Bow()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "bow": bridge.Bow(); return InjectionValue.Unit;

UO.ClearChatUserIgnore

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

C# 簽章

void UO.ClearChatUserIgnore();

刪除所有不區分大小寫的寄件者姓名過濾器JournalManager。

參數

沒有參數。

傳回值

void - 無回傳值。

行為

  • 刪除過濾器不會刪除歷史條目或取消 AddJournalIgnore 文字過濾​​器。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。清除狀態-直接腳本

參數與執行流程:

  • 刪除所有不區分大小寫的寄件者姓名過濾器JournalManager。
UO.ClearChatUserIgnore();

2。設定後清除-腳本功能

參數與執行流程:

  • 代表供應商重新啟用訊息顯示。
return  RunScenario();
 object? RunScenario()
{
    UO.AddChatUserIgnore("Vendor");
    UO.ClearChatUserIgnore();
    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.ClearChatUserIgnore();
        UO.ClearChatUserIgnore();
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.ClearChatUserIgnore() — UO.ClearChatUserIgnore()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "clearchatuserignore": bridge.ClearChatUserIgnore(); return InjectionValue.Unit;

UO.EmoteAction

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

C# 簽章

void UO.EmoteAction(object? action);

將角色動作/動畫字串名稱傳送到GameActions.EmoteAction。

參數

  • action-動作名稱,如鞠躬或敬禮;轉換為string。動作辨識由GameActions執行。

傳回值

void - 無回傳值。

行為

  • 這是一個角色動作,而不是把一句話印在雜誌上。該命令不返回伺服器確認,也不等待動畫。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.EmoteAction");
UO.EmoteAction("bow");

1。弓 - 直接腳本

參數與執行流程:

  • 動作名稱為弓。
UO.EmoteAction("bow");

2。歡迎 — 腳本函數

參數與執行流程:

  • 動作名稱 salute 已傳遞。
return  RunScenario();
 object? RunScenario()
{
    UO.EmoteAction("salute");
    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()
    {
        var action = "bow";
        UO.EmoteAction(action);
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.EmoteAction(action) — UO.EmoteAction(Any)

參數: action (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "emoteaction": bridge.EmoteAction(Text(0)); break;

UO.FilterSpeech

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

C# 簽章

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

啟用或停用客戶端語音過濾器。

參數

  • enabled — 選用值:不含參數,過濾器開啟; 0 關閉,非零 int 開啟。

傳回值

void - 無回傳值。

行為

  • 將規範化標誌寫入運行時狀態並將其傳遞給管理器。過濾器影響客戶端的處理;伺服器事件和其他日誌設定保持獨立。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。不含參數啟用 - 直接腳本

參數與執行流程:

  • 零個參數意味著包含,而不是讀取。
UO.FilterSpeech();

2。關閉-腳本功能

參數與執行流程:

  • 顯式的 0 會關閉客戶端過濾器。
return  RunScenario();
 object? RunScenario()
{
    UO.FilterSpeech(0);
    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.FilterSpeech(1);
        UO.FilterSpeech(0);
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.FilterSpeech() — UO.FilterSpeech()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;

UO.FilterSpeech(enabled) — UO.FilterSpeech(Any)

參數: enabled (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;

UO.FixTalk

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

C# 簽章

void UO.FixTalk();

列印通知,表示 ClassicUO 不需要舊版機用戶端補丁 FixTalk。

參數

沒有參數。

傳回值

void - 無回傳值。

行為

  • ExecuteLegacyManualAlias分支僅呼叫SystemMessage。它不糾正運動、語音、容器或網路協定。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。相容性聲明 - 直接腳本

參數與執行流程:

  • 該訊息描述了不需要舊補丁。
UO.FixTalk();

2。呼叫過程-腳本函數

參數與執行流程:

  • 相容性程式不會改變遊戲世界。
return  RunScenario();
 object? RunScenario()
{
    CompatibilityNotice();
    return null;
}

void CompatibilityNotice()
{
    UO.FixTalk();
}

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.FixTalk();
        UO.Print("continued");
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.FixTalk() — UO.FixTalk()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "boxhack":

                case "fixtalk":

                case "fixwalk":

                    SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.");

                    break;

UO.GlobalChatActiveChannel

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

C# 簽章

dynamic UO.GlobalChatActiveChannel();

讀取ChatManager.CurrentChannelName。

參數

沒有參數。

傳回值

string - CurrentChannelName 或空白行(如果未選擇頻道)。

行為

  • 讀取ChatManager.CurrentChannelName。空行——没有名称,没有错误代码;通道本身未进入。
  • 讀取目前本地狀態。沒有軟體包、目標或自動更新;個別讀取可能會看到不同的狀態。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。

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

1。直接呼叫-直接腳本

參數與執行流程:

  • 讀取ChatManager.CurrentChannelName。
UO.Print(UO.GlobalChatActiveChannel());

2。明確選項 - 腳本函數

參數與執行流程:

  • 讀取ChatManager.CurrentChannelName。空行——没有名称,没有错误代码;通道本身未进入。
return  RunScenario();
 object? RunScenario()
{
    var channel = UO.GlobalChatActiveChannel();
    if (Truth(Len(channel) > 0))
    {
        UO.Print(channel);
    }

    return null;
}

int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
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.GlobalChatActiveChannel();
        UO.Wait(500);
        var after = UO.GlobalChatActiveChannel();
        UO.Print(before);
        UO.Print(after);
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.GlobalChatActiveChannel() — UO.GlobalChatActiveChannel()

參數: 沒有參數。

結果: dynamic / Any.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "globalchatactivechannel": return new InjectionValue(bridge.GlobalChatActiveChannel());

UO.GlobalChatChannelsList

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

C# 簽章

dynamic UO.GlobalChatChannelsList();

Bridge 回傳ChatManager.Channels.Keys.OrderBy(name => name)。

參數

沒有參數。

傳回值

通道名稱字串數組,按名稱排序。空的本機表會產生空數組。

行為

  • Bridge 回傳ChatManager.Channels.Keys.OrderBy(name => name)。該列表對於客戶端來說是已知的,並且在伺服器更新之前可能不完整。
  • 讀取目前本地狀態。沒有軟體包、目標或自動更新;個別讀取可能會看到不同的狀態。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。

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

1。直接呼叫-直接腳本

參數與執行流程:

  • Bridge 回傳ChatManager.Channels.Keys.OrderBy(name => name)。
var channels = UO.GlobalChatChannelsList();
UO.Print(UO.GetArrayLength(channels));

2。明確選項 - 腳本函數

參數與執行流程:

  • Bridge 回傳ChatManager.Channels.Keys.OrderBy(name => name)。該列表對於客戶端來說是已知的,並且在伺服器更新之前可能不完整。
return  RunScenario();
 object? RunScenario()
{
    var channels = UO.GlobalChatChannelsList();
    if (Truth(UO.GetArrayLength(channels) > 0))
    {
        UO.Print(channels[0]);
    }

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

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.GlobalChatChannelsList() — UO.GlobalChatChannelsList()

參數: 沒有參數。

結果: dynamic / Any.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "globalchatchannelslist": return StringArray(bridge.GlobalChatChannels());

UO.GlobalChatJoinChannel

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

C# 簽章

void UO.GlobalChatJoinChannel(object? chName);

請求進入全球聊天頻道。

參數

  • chName — 透過 ToString 發送文字;儲存為已傳送。

傳回值

void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。

行為

  • 傳送具有給定頻道名稱的 Send_ChatJoinCommand。頻道的存在和進入權限由伺服器決定。單獨讀取本機活動通道的名稱。
  • Bridge 在遊戲串流上發送請求。伺服器規則適用;沒有內建的等待確認。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.GlobalChatJoinChannel");
UO.GlobalChatJoinChannel("General");

1。直接呼叫-直接腳本

參數與執行流程:

  • 請求進入全球聊天頻道。
UO.GlobalChatJoinChannel("General");

2。明確選項 - 腳本函數

參數與執行流程:

  • 傳送具有給定頻道名稱的 Send_ChatJoinCommand。頻道的存在和進入權限由伺服器決定。單獨讀取本機活動通道的名稱。
return  RunScenario();
 object? RunScenario()
{
    var message = "General";
    if (Truth(UO.IsOnline()))
    {
        UO.GlobalChatJoinChannel(message);
    }

    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。完整的輔助函數 - 腳本類

參數與執行流程:

  • Bridge 在遊戲串流上發送請求。伺服器規則適用;沒有內建的等待確認。
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()
    {
        SendText("General");
        return null;
    }

    void SendText(dynamic message)
    {
        if (Truth(Len(message) > 0))
        {
            UO.GlobalChatJoinChannel(message);
        }
    }

    int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
    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.GlobalChatJoinChannel(chName) — UO.GlobalChatJoinChannel(Any)

參數: chName (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "globalchatjoinchannel": bridge.GlobalChatJoin(Text(0)); return InjectionValue.Unit;

UO.GlobalChatLeaveChannel

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

C# 簽章

void UO.GlobalChatLeaveChannel();

請求離開全球聊天頻道。

參數

沒有參數。

傳回值

void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。

行為

  • GlobalChatLeave 發送Send_ChatLeaveChannelCommand。聊天資料處理完畢後,本地頻道名稱會改變。
  • 在範例中,UO.Wait僅指定腳本暫停;暫停的結束並不能證明伺服器已經完成了請求。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。直接呼叫-直接腳本

參數與執行流程:

  • 請求離開全球聊天頻道。
UO.GlobalChatLeaveChannel();

2。明確選項 - 腳本函數

參數與執行流程:

  • GlobalChatLeave 發送Send_ChatLeaveChannelCommand。聊天資料處理完畢後,本地頻道名稱會改變。
return  RunScenario();
 object? RunScenario()
{
    UO.Print(UO.GlobalChatActiveChannel());
    UO.GlobalChatLeaveChannel();
    return null;
}

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.GlobalChatLeaveChannel();
        UO.Wait(500);
        UO.Print(UO.GlobalChatActiveChannel());
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.GlobalChatLeaveChannel() — UO.GlobalChatLeaveChannel()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "globalchatleavechannel": bridge.GlobalChatLeave(); return InjectionValue.Unit;

UO.GlobalChatSendMsg

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

C# 簽章

void UO.GlobalChatSendMsg(object? msgText);

向全域聊天發送訊息。

參數

  • msgText — 透過 ToString 發送文字;儲存為已傳送。

傳回值

void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。

行為

  • 發送帶有傳輸文字的 Send_ChatMessageCommand。通道使用客戶端/伺服器聊天狀態;團隊本身不選擇頻道。
  • Bridge 在遊戲串流上發送請求。伺服器規則適用;沒有內建的等待確認。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.GlobalChatSendMsg");
UO.GlobalChatSendMsg("Hello");

1。直接呼叫-直接腳本

參數與執行流程:

  • 向全域聊天發送訊息。
UO.GlobalChatSendMsg("Hello");

2。明確選項 - 腳本函數

參數與執行流程:

  • 發送帶有傳輸文字的 Send_ChatMessageCommand。通道使用客戶端/伺服器聊天狀態;團隊本身不選擇頻道。
return  RunScenario();
 object? RunScenario()
{
    var message = "Hello";
    if (Truth(UO.IsOnline()))
    {
        UO.GlobalChatSendMsg(message);
    }

    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。完整的輔助函數 - 腳本類

參數與執行流程:

  • Bridge 在遊戲串流上發送請求。伺服器規則適用;沒有內建的等待確認。
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()
    {
        SendText("Hello");
        return null;
    }

    void SendText(dynamic message)
    {
        if (Truth(Len(message) > 0))
        {
            UO.GlobalChatSendMsg(message);
        }
    }

    int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
    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.GlobalChatSendMsg(msgText) — UO.GlobalChatSendMsg(Any)

參數: msgText (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "globalchatsendmsg": bridge.GlobalChatSend(Text(0)); return InjectionValue.Unit;

UO.Msg

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

C# 簽章

void UO.Msg(object? message);

顯示有​​關腳本進度或停止條件的本機訊息。你可以看到它,而不是其他玩家。

參數

傳回值

對返回類型為void的方法的呼叫被編寫為獨立語句C#;無法分配或檢查結果。完成聲明並不構成遊戲伺服器的確認。

行為

  • 該訊息將發送到遊戲視窗的左下區域和本地日誌。輸出 IDE 中提供了副本。在管理員的常規日誌中,啟用腳本訊息過濾器:該條目在沒有遊戲視窗的情況下可用。伺服器系統訊息過濾器不會選擇此類記錄。網路語音包不傳送。頭部上方的銘文是UO.CharPrint。
  • UO.Print 在遊戲訊息日誌中新增一個條目:先讀取或儲存所需的搜尋字串/結果,然後記錄診斷訊息。在快速循環中,在發生變更時而不是每次迭代時記錄訊息。
  • 如果沒有顏色,則使用hue0x03B2。 UO.Print(text, color) 先接受文字; UO.ColorPrint(color, text) – 顏色第一。
  • 儘管伺服器的名稱或與網路訊息相似,但該命令僅列印本機文字。若要與世界對話,請使用UO.Say。
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式,沒有傳回值(void)。訊息文字直接出現在呼叫中。

UO.Msg("Hello from C#");

1。簡短報告-直接腳本

參數與執行流程:

  • processed=12 — 已處理項目的演示數量。 Convert.ToString 將其轉換為字串。這個例子只報告了一個數字;它不傳送物件本身。
var processed = 12;
UO.Msg("Processed item entries: " + Convert.ToString(processed));

2。過載警告 - 腳本函數

參數與執行流程:

  • 讀取角色的體重和最大值。零/未知的最大值不被視為過載。如果重量 >= 最大值,則列印一行並 Main 結束;物品不會被丟棄。
return  RunScenario();
 object? RunScenario()
{
    var weight = UO.Weight();
    var maximum = UO.MaxWeight();
    if (Truth(maximum > 0) && Truth(weight >= maximum))
    {
        UO.Msg("Too heavy: " + Convert.ToString(weight) + "/" + Convert.ToString(maximum));
        return null;
    }

    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。僅報告體重變化 - 腳本類

參數與執行流程:

  • Main 記住重量,等待 1000 毫秒,並呼叫完全宣告的 ReportWeight。助手僅在重量變化時進行列印,並返回新的重量以供下一次檢查。它本身不會創建無限循環。
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 previous = UO.Weight();
        UO.Wait(1000);
        previous = ReportWeight(previous, UO.Weight());
        return null;
    }

    dynamic ReportWeight(dynamic previous, dynamic current)
    {
        if (Truth(previous != current))
        {
            UO.Msg("Weight changed: " + Convert.ToString(current));
        }

        return current;
    }

    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.Msg(message) — UO.Msg(String)

參數: message (String)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

public void Msg(string message) => bridge.ServerPrint(message);

UO.Salute

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

C# 簽章

void UO.Salute();

請求問候動畫。

參數

沒有參數。

傳回值

void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。

行為

  • Salute 透過 Invoke 呼叫 GameActions.EmoteAction("salute")。這是一個角色動作,而不是UO.Say文本。
  • 在範例中,UO.Wait僅指定腳本暫停;暫停的結束並不能證明伺服器已經完成了請求。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

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

1。直接呼叫-直接腳本

參數與執行流程:

  • 請求問候動畫。
UO.Salute();

2。明確選項 - 腳本函數

參數與執行流程:

  • Salute 透過 Invoke 呼叫 GameActions.EmoteAction("salute")。這是一個角色動作,而不是UO.Say文本。
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.IsOnline()))
    {
        UO.Salute();
    }

    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.Salute();
        UO.Wait(1000);
        UO.Print("Salute requested");
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.Salute() — UO.Salute()

參數: 沒有參數。

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "salute": bridge.Salute(); return InjectionValue.Unit;

UO.Say

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

C# 簽章

void UO.Say(object? message);

將角色的正常語音傳送到伺服器:例如,向銀行家發送地址或向寵物發送命令。

參數

傳回值

對返回類型為void的方法的呼叫被編寫為獨立語句C#;無法分配或檢查結果。完成聲明並不構成遊戲伺服器的確認。

行為

  • 對於協議版本2.0.0及更高版本,客戶端發送Unicode語音;對於較老的 - ASCII 演講。 SayU 這個名字並沒有強制舊協定採用 Unicode。如果沒有明確的顏色,則採用輪廓的SpeechHue; UO.UOSayColor中的0xFFFF也選擇此顏色。文字被傳送到伺服器,但腳本不會將其作為程式碼執行。
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.Say");
UO.Say("bank");

1。聯絡銀行家 - 直接腳本

參數與執行流程:

  • 發貨前檢查Connected。 Bank 是一行語音,不是名稱API。要開設銀行,您通常需要附近有合適的NPC;如果伺服器使用不同的短語,請替換它。
if (Truth(UO.Connected()))
{
    UO.Say("bank");
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2。對按名稱選擇的寵物發出命令 - 腳本功能

參數與執行流程:

  • petName是你的寵物的名字,這裡是Shadow。它組成了一行《Shadow follow me》。這是讓你的寵物跟隨你的命令,而不是讓你的角色移動的UO.Follow。
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.Say(petName + " follow me");
    }

    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。僅在超載時詢問銀行 - 腳本類

參數與執行流程:

  • RequestBankIfHeavy 檢查連接和可靠的正最大重量。只有當過載時,它才會發送bank並返回1作為已發送請求的標誌。 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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.Say("bank");
        return 1;
    }

    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.Say(message) — UO.Say(String)

參數: message (String)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

public void Say(string message) => bridge.Say(message);

UO.SayU

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

C# 簽章

void UO.SayU(object? text);

將角色的正常語音傳送到伺服器:例如,向銀行家發送地址或向寵物發送命令。

參數

傳回值

對返回類型為void的方法的呼叫被編寫為獨立語句C#;無法分配或檢查結果。完成聲明並不構成遊戲伺服器的確認。

行為

  • 對於協議版本2.0.0及更高版本,客戶端發送Unicode語音;對於較老的 - ASCII 演講。 SayU 這個名字並沒有強制舊協定採用 Unicode。如果沒有明確的顏色,則採用輪廓的SpeechHue; UO.UOSayColor中的0xFFFF也選擇此顏色。文字被傳送到伺服器,但腳本不會將其作為程式碼執行。
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.SayU");
UO.SayU("bank");

1。聯絡銀行家 - 直接腳本

參數與執行流程:

  • 發貨前檢查Connected。 Bank 是一行語音,不是名稱API。要開設銀行,您通常需要附近有合適的NPC;如果伺服器使用不同的短語,請替換它。
if (Truth(UO.Connected()))
{
    UO.SayU("bank");
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2。對按名稱選擇的寵物發出命令 - 腳本功能

參數與執行流程:

  • petName是你的寵物的名字,這裡是Shadow。它組成了一行《Shadow follow me》。這是讓你的寵物跟隨你的命令,而不是讓你的角色移動的UO.Follow。
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.SayU(petName + " follow me");
    }

    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。僅在超載時詢問銀行 - 腳本類

參數與執行流程:

  • RequestBankIfHeavy 檢查連接和可靠的正最大重量。只有當過載時,它才會發送bank並返回1作為已發送請求的標誌。 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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.SayU("bank");
        return 1;
    }

    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.SayU(text) — UO.SayU(Any)

參數: text (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "sayu": Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty); break;

UO.UOAMessage

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

C# 簽章

void UO.UOAMessage(object? text);

在 ClassicUO 處列印本地訊息,並將 hue 設定為 UO.FontColor。適用於庫存、路線狀態或階段完成情況的腳本通知。

參數

傳回值

void:不回傳文字、日誌索引或true/false。呼叫執行本地輸出;沒有返回顯示確認。

行為

  • 使用目前運行時的狀態.FontColor,原來是0x03B2。記錄經過下部訊息區域和客戶端日誌,以及IDE輸出。
  • 不向伺服器發送語音,不彈出窗口,不向其他玩家發送訊息。常規的UO.Print有自己的顏色。
  • 對於不改變狀態的一則訊息的顏色。 FontColor您可以使用UO.Print(text,color)。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式,沒有傳回值(void)。訊息文字直接出現在呼叫中。

UO.UOAMessage("Hello from C#");

1。突出顯示庫存警報 - 直接腳本

參數與執行流程:

  • 0x0021 — 索引hue;最終的色調取決於客戶的色調檔案。訊息本地可見;它不是由角色說出來的。
UO.FontColor(0x0021);
var first = UO.FindList("0x0EED", "backpack");
if (Truth(first == ""))
{
    UO.UOAMessage("No gold in the loaded backpack");
}
else
{
    UO.UOAMessage("Gold units: " + Convert.ToString(UO.FindFullQuantity()));
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2。通用顏色通知程式 - 腳本函數

參數與執行流程:

  • 完整通知接受文本和hue。最後安裝的 hue 保留用於該運行時的下一個 UOAMessage。這裡沒有內建的 FontColor() 可供閱讀。
return  RunScenario();
 object? RunScenario()
{
    Notice("Supplies checked", 0x0044);
    Notice("Restock needed", 0x0021);
    return null;
}

void Notice(dynamic text, dynamic hue)
{
    UO.FontColor(hue);
    UO.UOAMessage(text);
}

3。恢復為已知基色 - 腳本類

參數與執行流程:

  • 0x03B2 — 新運行時的初始值FontColor。最後根據正常完成/錯誤處理準確地返回選定的基礎;它不會恢復未知的先前值。
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 baseHue = 0x03B2;
        try
        {
            UO.FontColor(0x0021);
            UO.UOAMessage("Check the route before moving");
        }
        finally
        {
            UO.FontColor(baseHue);
        }

        UO.UOAMessage("Ready");
        UO.Print("Regular Print keeps its own color");
        return null;
    }
}

命令實作

C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。

UO.UOAMessage(text) — UO.UOAMessage(Any)

參數: text (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "uoamessage": bridge.Print(state.FontColor, Text(0)); break;

UO.UOSay

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

C# 簽章

void UO.UOSay(object? text);

將角色的正常語音傳送到伺服器:例如,向銀行家發送地址或向寵物發送命令。

參數

傳回值

對返回類型為void的方法的呼叫被編寫為獨立語句C#;無法分配或檢查結果。完成聲明並不構成遊戲伺服器的確認。

行為

  • 對於協議版本2.0.0及更高版本,客戶端發送Unicode語音;對於較老的 - ASCII 演講。 SayU 這個名字並沒有強制舊協定採用 Unicode。如果沒有明確的顏色,則採用輪廓的SpeechHue; UO.UOSayColor中的0xFFFF也選擇此顏色。文字被傳送到伺服器,但腳本不會將其作為程式碼執行。
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.UOSay");
UO.UOSay("bank");

1。聯絡銀行家 - 直接腳本

參數與執行流程:

  • 發貨前檢查Connected。 Bank 是一行語音,不是名稱API。要開設銀行,您通常需要附近有合適的NPC;如果伺服器使用不同的短語,請替換它。
if (Truth(UO.Connected()))
{
    UO.UOSay("bank");
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2。對按名稱選擇的寵物發出命令 - 腳本功能

參數與執行流程:

  • petName是你的寵物的名字,這裡是Shadow。它組成了一行《Shadow follow me》。這是讓你的寵物跟隨你的命令,而不是讓你的角色移動的UO.Follow。
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.UOSay(petName + " follow me");
    }

    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。僅在超載時詢問銀行 - 腳本類

參數與執行流程:

  • RequestBankIfHeavy 檢查連接和可靠的正最大重量。只有當過載時,它才會發送bank並返回1作為已發送請求的標誌。 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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.UOSay("bank");
        return 1;
    }

    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.UOSay(text) — UO.UOSay(Any)

參數: text (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "uosay": Say(Text(0)); return InjectionValue.Unit;

UO.UOSayColor

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

C# 簽章

void UO.UOSayColor(object? text, object? color);

將角色的正常語音傳送到伺服器:例如,向銀行家發送地址或向寵物發送命令。

參數

  • color - UO hue,而非 RGB。數字或十六進位字串;橋接器使用低 16 位元。不要與graphic/type混淆。範例中的0x0044 就是所選的hue。對於協議版本2.0.0及更高版本,客戶端發送Unicode語音;對於較年長的人 - ASCII 演講。名稱 SayU 不會強制舊協定採用 Unicode。無明顯顏色時,取輪廓的SpeechHue;UO.UOSayColor中的0xFFFF也選這個顏色。文字被傳送到伺服器,但腳本不會將其作為程式碼執行。

傳回值

對返回類型為void的方法的呼叫被編寫為獨立語句C#;無法分配或檢查結果。完成聲明並不構成遊戲伺服器的確認。

行為

  • 對於協議版本2.0.0及更高版本,客戶端發送Unicode語音;對於較老的 - ASCII 演講。 SayU 這個名字並沒有強制舊協定採用 Unicode。如果沒有明確的顏色,則採用輪廓的SpeechHue; UO.UOSayColor中的0xFFFF也選擇此顏色。文字被傳送到伺服器,但腳本不會將其作為程式碼執行。
  • UO.Print · UO.CharPrint · UO.Say · UO.ConColor

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。

簡單範例

將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。

指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。

UO.Print("Calling UO.UOSayColor");
UO.UOSayColor("bank", 0x0044);

1。聯絡銀行家 - 直接腳本

參數與執行流程:

  • 發貨前檢查Connected。 Bank 是一行語音,不是名稱API。要開設銀行,您通常需要附近有合適的NPC;如果伺服器使用不同的短語,請替換它。
if (Truth(UO.Connected()))
{
    UO.UOSayColor("bank", 0x0044);
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2。對按名稱選擇的寵物發出命令 - 腳本功能

參數與執行流程:

  • petName是你的寵物的名字,這裡是Shadow。它組成了一行《Shadow follow me》。這是讓你的寵物跟隨你的命令,而不是讓你的角色移動的UO.Follow。
return  RunScenario();
 object? RunScenario()
{
    var petName = "Shadow";
    if (Truth(UO.Connected()))
    {
        UO.UOSayColor(petName + " follow me", 0x0044);
    }

    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。僅在超載時詢問銀行 - 腳本類

參數與執行流程:

  • RequestBankIfHeavy 檢查連接和可靠的正最大重量。只有當過載時,它才會發送bank並返回1作為已發送請求的標誌。 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()
    {
        return RequestBankIfHeavy();
        return null;
    }

    dynamic RequestBankIfHeavy()
    {
        if (!(Truth(UO.Connected())))
        {
            return 0;
        }

        var maximum = UO.MaxWeight();
        if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
        {
            return 0;
        }

        UO.UOSayColor("bank", 0x0044);
        return 1;
    }

    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.UOSayColor(text, color) — UO.UOSayColor(Any,Any)

參數: text (Any), color (Any)

結果: void / Unit.

呼叫時:

內部實作程式碼,不能作為獨立腳本執行。

case "uosaycolor": bridge.Say(Text(0), Arg(1)); return InjectionValue.Unit;
⚠️ **GitHub.com Fallback** ⚠️