ZH TW UO Topic menus context menus - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
家 · C# · IDE · UO API · A–Z · 範例 · Languages
舊選單、上下文選單和文字輸入。這些是獨立的機制;從所需選單的答案中取得項目編號。
| 主題 | 命令與解釋 |
|---|---|
| AutoMenu | UO.AutoMenu |
| WaitMenu | UO.WaitMenu |
| Menu Hooks | UO.MenuHookPresent · UO.CancelAllMenuHooks |
| 選單項目 | UO.GetMenuItems · UO.GetMenuItemsEx · UO.GetLastMenuItems |
| CancelMenu | UO.CancelMenu |
| Context Menu | UO.GetContextMenu · UO.ClearContextMenu |
| RequestContextMenu | UO.RequestContextMenu |
| Context Menu Hooks | UO.SetContextMenuHook |
UO.AutoMenu · UO.WaitMenu · UO.GetMenuItems · UO.GetMenuItemsEx · UO.GetLastMenuItems · UO.MenuHookPresent · UO.MenuPresent · UO.CancelAllMenuHooks · UO.CancelMenu · UO.CloseMenu · UO.WaitingForMenu · UO.WaitingMenu
UO.GetContextMenu · UO.RequestContextMenu · UO.SetContextMenuHook · UO.ClearContextMenu
UO.WaitTextEntry · UO.ConsoleEntryReply · UO.ConsoleEntryUnicodeReply
每個命令卡都有幾個獨立的場景:直接程式碼、函數和類別。以下是精選的簡短場景;限制和全面分析是有可能的。
var id = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(id)))
{
UO.RequestContextMenu(id);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;UO.WaitMenu("Craft", "Tools");Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AutoMenu(object? prompt, object? choice);註冊持久性選單掛鉤:當出現具有適當標題的伺服器選單時,用戶端選擇適當的項目。呼叫不開啟選單,也不同步等待。
-
prompt— 伺服器選單標題的子字串。 -
choice— 選單項目簽署的子字串。
void。該呼叫僅註冊一個鉤子,不會報告是否找到選單或是否成功選擇該項目。
- 每次更新客戶端時,該鉤子都會尋找尚未關閉且標題包含
prompt的伺服器選單。如果找到簽名包含choice的項目,則客戶端選擇它。該鉤子在選擇後仍保持註冊狀態,因此它將在後續匹配的選單中起作用。您可以使用UO.CancelMenu()刪除鉤子。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.AutoMenu");
UO.AutoMenu("Choose material", "Copper");參數與執行流程:
- 等待標題為“選擇材料”的選單,然後選擇帶有文字“銅”的項目。
UO.AutoMenu("Choose material", "Copper");參數與執行流程:
- 子字串的比較不區分大小寫; hook 也會影響後續符合的選單。
return RunScenario();
object? RunScenario()
{
var menuCaption = "choose color";
var itemCaption = "blue";
UO.AutoMenu(menuCaption, itemCaption);
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.AutoMenu("Choose material", "Iron");
UO.CancelMenu();
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: prompt (Any), choice (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AddMenuHook:bridge.AddMenuHook(arguments[0].ToString(), arguments[1].ToString(), true). -
InjectionScript.Runtime.InjectionValue.ToString:arguments[0].ToString().
內部實作程式碼,不能作為獨立腳本執行。
case "automenu":
if (arguments.Length >= 2) bridge.AddMenuHook(arguments[0].ToString(), arguments[1].ToString(), true);
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.CancelAllMenuHooks();從舊客戶端伺服器選單中刪除所有已註冊的自動掛鉤。
沒有參數。
void - 無回傳值。
- 呼叫ClearMenuHooks經理。刪除了單一和持久選擇規則,包括AutoMenu和WaitMenu。此指令不會關閉已開啟的選單; CloseMenu 用於此目的。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.CancelAllMenuHooks");
UO.CancelAllMenuHooks();參數與執行流程:
- 刪除適用於整套客戶端選單掛鉤。
UO.CancelAllMenuHooks();參數與執行流程:
- 立即將鉤子取下;不再自動選擇未來匹配的選單。
return RunScenario();
object? RunScenario()
{
UO.AutoMenu("Choose material", "Iron");
UO.CancelAllMenuHooks();
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.CancelAllMenuHooks();
UO.CloseMenu();
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearMenuHooks:bridge.ClearMenuHooks().
內部實作程式碼,不能作為獨立腳本執行。
case "cancelallmenuhooks": bridge.ClearMenuHooks(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.CancelMenu();從舊客戶端伺服器選單中刪除所有已註冊的自動掛鉤。
沒有參數。
void - 無回傳值。
- 呼叫ClearMenuHooks經理。刪除了單一和持久選擇規則,包括AutoMenu和WaitMenu。此指令不會關閉已開啟的選單; CloseMenu 用於此目的。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.CancelMenu");
UO.CancelMenu();參數與執行流程:
- 刪除適用於整套客戶端選單掛鉤。
UO.CancelMenu();參數與執行流程:
- 立即將鉤子取下;不再自動選擇未來匹配的選單。
return RunScenario();
object? RunScenario()
{
UO.AutoMenu("Choose material", "Iron");
UO.CancelMenu();
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.CancelMenu();
UO.CloseMenu();
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearMenuHooks:bridge.ClearMenuHooks().
內部實作程式碼,不能作為獨立腳本執行。
case "cancelmenu": bridge.ClearMenuHooks(); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearContextMenu();刪除目前的本機上下文選單模型。
沒有參數。
void - 無回傳值。
- 如果存在模型,則呼叫 ServerMenus.Context 上的 Dispose;下一個請求後可能會出現新的伺服器選單。這不是CloseMenu。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.ClearContextMenu");
UO.ClearContextMenu();參數與執行流程:
- 刪除目前的本機上下文選單模型。
UO.ClearContextMenu();參數與執行流程:
- 讀取快照後刪除本機上下文選單。
return RunScenario();
object? RunScenario()
{
var entries = UO.GetContextMenu();
UO.ClearContextMenu();
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.ClearContextMenu();
UO.ClearContextMenu();
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearContextMenu:bridge.ClearContextMenu().
內部實作程式碼,不能作為獨立腳本執行。
case "clearcontextmenu": bridge.ClearContextMenu(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.CloseMenu();透過CancelForYoko取消所有活動的舊伺服器選單。
沒有參數。
void - 無回傳值。
- 迭代快照ServerMenus並丟棄每個模型。不刪除自動選單掛鉤,也不關閉任意指令/介面視窗。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.CloseMenu");
UO.CloseMenu();參數與執行流程:
- 取消適用於舊的MenuGump/伺服器選單。
UO.CloseMenu();參數與執行流程:
- 自動選擇和開啟選單由單獨的命令處理。
return RunScenario();
object? RunScenario()
{
UO.CancelAllMenuHooks();
UO.CloseMenu();
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()
{
var items = UO.GetLastMenuItems();
UO.Print(Convert.ToString(ArrayLength(items)));
UO.CloseMenu();
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseMenu:bridge.CloseMenu().
內部實作程式碼,不能作為獨立腳本執行。
case "closemenu": bridge.CloseMenu(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ConsoleEntryReply(object? text);透過 MessageManager.SendServerPromptResponse 以文字回覆活動伺服器提示。
-
text— 要轉換為字串的值。空字串作為空響應發送。
void - 無回傳值。
- 兩隊前往ReplyServerPrompt。根據已儲存的伺服器提示狀態選擇套件類型ASCII/Unicode;命令名稱不強制進行單獨的編碼。如果沒有活動提示,經理不會發送回應。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.ConsoleEntryReply");
UO.ConsoleEntryReply("reply");參數與執行流程:
- 發送是指當前伺服器輸入的請求。
UO.ConsoleEntryReply("reply");參數與執行流程:
- 空文本將作為空響應發送給經理。
return RunScenario();
object? RunScenario()
{
UO.ConsoleEntryReply("");
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()
{
var reply = "New item name";
UO.ConsoleEntryReply(reply);
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: text (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ReplyServerPrompt:bridge.ReplyServerPrompt(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
內部實作程式碼,不能作為獨立腳本執行。
case "consoleentryreply":
case "consoleentryunicodereply": bridge.ReplyServerPrompt(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ConsoleEntryUnicodeReply(object? text);透過 MessageManager.SendServerPromptResponse 以文字回覆活動伺服器提示。
-
text— 要轉換為字串的值。空字串作為空響應發送。
void - 無回傳值。
- 兩隊前往ReplyServerPrompt。根據已儲存的伺服器提示狀態選擇套件類型ASCII/Unicode;命令名稱不強制進行單獨的編碼。如果沒有活動提示,經理不會發送回應。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.ConsoleEntryUnicodeReply");
UO.ConsoleEntryUnicodeReply("reply");參數與執行流程:
- 發送是指當前伺服器輸入的請求。
UO.ConsoleEntryUnicodeReply("reply");參數與執行流程:
- 空文本將作為空響應發送給經理。
return RunScenario();
object? RunScenario()
{
UO.ConsoleEntryUnicodeReply("");
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()
{
var reply = "New item name";
UO.ConsoleEntryUnicodeReply(reply);
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: text (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ReplyServerPrompt:bridge.ReplyServerPrompt(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
內部實作程式碼,不能作為獨立腳本執行。
case "consoleentryreply":
case "consoleentryunicodereply": bridge.ReplyServerPrompt(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetContextMenu();讀取目前上下文選單模型的項目字串。
沒有參數。
來自 ServerMenus.Context.GetYokoItems() 的字串陣列;如果沒有模型,則為空數組。
- 不發送RequestContextMenu,也不等待伺服器回應。要獲得新選單,請先單獨請求並等待模型出現。 ClearContextMenu 讀取後刪除模型。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.GetContextMenu();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- 讀取現有模型。
var entries = UO.GetContextMenu();
for (int i = (int)(0); i <= ArrayLength(entries)-1; i += (int)(1))
{
UO.Print(entries[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;參數與執行流程:
- 500 ms - 範例暫停,不保證伺服器回應;空數組是可以接受的。
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
UO.RequestContextMenu(UO.Self());
await Delay(500);
var entries = UO.GetContextMenu();
UO.Print(Convert.ToString(ArrayLength(entries)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));參數與執行流程:
- 清除選單模型後儲存的陣列不會消失。
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 entries = UO.GetContextMenu();
UO.ClearContextMenu();
UO.Print(Convert.ToString(ArrayLength(entries)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetContextMenu()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetContextMenu:bridge.GetContextMenu().
內部實作程式碼,不能作為獨立腳本執行。
case "getcontextmenu": return StringArray(bridge.GetContextMenu());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetLastMenuItems();讀取已開啟的舊伺服器選單的項目。
沒有參數。
字串數組。項目名稱/描述行GetYokoItems。缺少合适的菜单会导致空数组。
- 選擇最後一張照片選單ServerMenus。該命令不會打開選單,不會放置掛鉤,也不會選擇項目。這不是上下文選單或常規伺服器命令。
- 此順序對應於模型的點。此清單是一個快照;後續選單變更不會更新已儲存的陣列。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.GetLastMenuItems();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- 空數組是循環安全的。
var items = UO.GetLastMenuItems();
for (int i = (int)(0); i <= ArrayLength(items)-1; i += (int)(1))
{
UO.Print(items[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;參數與執行流程:
- 索引0在檢查大小後只讀。
return RunScenario();
object? RunScenario()
{
var items = UO.GetLastMenuItems();
if (Truth(ArrayLength(items) > 0))
{
UO.Print(items[0]);
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 items = UO.GetLastMenuItems();
UO.CloseMenu();
UO.Print(Convert.ToString(ArrayLength(items)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetLastMenuItems()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLastMenuItems:bridge.GetLastMenuItems().
內部實作程式碼,不能作為獨立腳本執行。
case "getlastmenuitems": return StringArray(bridge.GetLastMenuItems());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetMenuItems(object? caption);讀取已開啟的舊伺服器選單的項目。
-
caption— 舊伺服器選單標題的子字串;搜尋OrdinalIgnoreCase。空白行匹配任何標題。
字串數組。項目名稱/描述行GetYokoItems。缺少合适的菜单会导致空数组。
- 選擇具有匹配標題子字串的最後一個非已配置選單。該命令不會打開選單,不會放置掛鉤,也不會選擇項目。這不是上下文選單或常規伺服器命令。
- 此順序對應於模型的點。此清單是一個快照;後續選單變更不會更新已儲存的陣列。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.GetMenuItems("");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- 空數組是循環安全的。
var items = UO.GetMenuItems("");
for (int i = (int)(0); i <= ArrayLength(items)-1; i += (int)(1))
{
UO.Print(items[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;參數與執行流程:
- 索引0在檢查大小後只讀。
return RunScenario();
object? RunScenario()
{
var items = UO.GetMenuItems("");
if (Truth(ArrayLength(items) > 0))
{
UO.Print(items[0]);
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 items = UO.GetMenuItems("");
UO.CloseMenu();
UO.Print(Convert.ToString(ArrayLength(items)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: caption (Any)
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetMenuItems(Text(0), false)). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMenuItems:bridge.GetMenuItems(Text(0), false). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
內部實作程式碼,不能作為獨立腳本執行。
case "getmenuitems": return StringArray(bridge.GetMenuItems(Text(0), false));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetMenuItemsEx(object? caption);讀取已開啟的舊伺服器選單的項目。
-
caption— 舊伺服器選單標題的子字串;搜尋OrdinalIgnoreCase。空白行匹配任何標題。
字串數組。字串graphicHex|hueHex|索引|名稱,例如0x0001|0x0000|1|選擇。缺少合適的選單會導致空數組。
- 選擇具有匹配標題子字串的最後一個非已配置選單。該命令不會打開選單,不會放置掛鉤,也不會選擇項目。這不是上下文選單或常規伺服器命令。
- 此順序對應於模型的點。此清單是一個快照;後續選單變更不會更新已儲存的陣列。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.GetMenuItemsEx("");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- 空數組是循環安全的。
var items = UO.GetMenuItemsEx("");
for (int i = (int)(0); i <= ArrayLength(items)-1; i += (int)(1))
{
UO.Print(items[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;參數與執行流程:
- 索引0在檢查大小後只讀。
return RunScenario();
object? RunScenario()
{
var items = UO.GetMenuItemsEx("");
if (Truth(ArrayLength(items) > 0))
{
UO.Print(items[0]);
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 items = UO.GetMenuItemsEx("");
UO.CloseMenu();
UO.Print(Convert.ToString(ArrayLength(items)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: caption (Any)
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetMenuItems(Text(0), true)). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetMenuItems:bridge.GetMenuItems(Text(0), true). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
內部實作程式碼,不能作為獨立腳本執行。
case "getmenuitemsex": return StringArray(bridge.GetMenuItems(Text(0), true));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.MenuHookPresent();讀取已註冊的選單掛鉤的存在。
沒有參數。
數字標誌 int:1 - _manager。 HasMenuHooks、0 - 無鉤子。菜單本身可能仍然丟失。
- 讀取已註冊的選單掛鉤的存在。不等待選單,不檢查伺服器口令,也不消耗鉤子。
- 讀取目前本地狀態。沒有軟體包、目標或自動更新;個別讀取可能會看到不同的狀態。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.MenuHookPresent();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- 讀取已註冊的選單掛鉤的存在。
UO.Print(UO.MenuHookPresent());參數與執行流程:
- 讀取已註冊的選單掛鉤的存在。不等待選單,不檢查伺服器口令,也不消耗鉤子。
return RunScenario();
object? RunScenario()
{
UO.WaitMenu("Craft", "Tools");
UO.Print(UO.MenuHookPresent());
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()
{
var before = UO.MenuHookPresent();
UO.Wait(500);
var after = UO.MenuHookPresent();
UO.Print(before);
UO.Print(after);
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MenuHookPresent:bridge.MenuHookPresent().
內部實作程式碼,不能作為獨立腳本執行。
case "menuhookpresent": return new InjectionValue(bridge.MenuHookPresent());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.MenuPresent();MenuPresent直接呼叫WaitingMenu。
沒有參數。
數字標誌int:1 - 有伺服器選單,0 - 沒有。
- MenuPresent直接呼叫WaitingMenu。不檢查 GetGumpsCount、上下文選單或註冊的掛鉤。
- 讀取目前本地狀態。沒有軟體包、目標或自動更新;個別讀取可能會看到不同的狀態。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.MenuPresent();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- MenuPresent直接呼叫WaitingMenu。
UO.Print(UO.MenuPresent());參數與執行流程:
- MenuPresent直接呼叫WaitingMenu。不檢查 GetGumpsCount、上下文選單或註冊的掛鉤。
return RunScenario();
object? RunScenario()
{
if (Truth(UO.MenuPresent()))
{
UO.Print(UO.GetLastMenuItems());
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 before = UO.MenuPresent();
UO.Wait(500);
var after = UO.MenuPresent();
UO.Print(before);
UO.Print(after);
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.MenuPresent:bridge.MenuPresent().
內部實作程式碼,不能作為獨立腳本執行。
case "menupresent": return new InjectionValue(bridge.MenuPresent());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.RequestContextMenu(object? objID);請求物件的上下文選單。
-
objID— 序列/ID 物件:int,數字/十六進位字串或已建立的別名,例如「lasttarget」。這不是graphic/type。在採取行動之前檢查裝載的物體。
void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。
- 網橋呼叫GameActions.OpenPopupMenu。答案單獨保存,閱讀GetContextMenu;此指令不選擇選單列。
- Bridge 在遊戲串流上發送請求。伺服器規則適用;沒有內建的等待確認。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.RequestContextMenu");
UO.RequestContextMenu(UO.GetSerial("lasttarget"));參數與執行流程:
- 請求物件的上下文選單。
var id = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(id)))
{
UO.RequestContextMenu(id);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;參數與執行流程:
- 網橋呼叫GameActions.OpenPopupMenu。答案單獨保存,閱讀GetContextMenu;此指令不選擇選單列。
return RunScenario();
object? RunScenario()
{
var id = UO.GetSerial("self");
if (Truth(UO.Exists(id)))
{
UO.RequestContextMenu(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;參數與執行流程:
- 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()
{
ApplyToLoaded(UO.GetSerial("lasttarget"));
return null;
}
void ApplyToLoaded(dynamic id)
{
if (Truth(UO.Exists(id)))
{
UO.RequestContextMenu(id);
}
}
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。
參數: objID (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.RequestContextMenu:bridge.RequestContextMenu(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
內部實作程式碼,不能作為獨立腳本執行。
case "requestcontextmenu": bridge.RequestContextMenu(Arg(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SetContextMenuHook(object? menuID, object? entryNumber);註冊上下文選單項目的一次性選擇。
-
menuID— 選單物件的序列,簡化為uint; 0 適合任何 serial。這不是伺服器阿甘ID。 -
entryNumber-零點索引;負值將停用掛起的上下文掛鉤。 0..GetArrayLength(UO.GetContextMenu())-1。
void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。
- Bridge將資料傳遞到_manager.SetContextMenuHook,其中儲存_contextMenuSerial/_contextMenuEntry。 ProcessMenuHooks 處理程序等待現有的符合上下文選單。
- 如果SelectYokoItem成功,則字段被清除為0/-1。此設定器不需要選單:單獨使用RequestContextMenu。呼叫本身不會阻止或確認伺服器操作。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.SetContextMenuHook");
UO.SetContextMenuHook(0, 0);參數與執行流程:
- 註冊上下文選單項目的一次性選擇。
UO.SetContextMenuHook(0, 0);參數與執行流程:
- Bridge將資料傳遞到_manager.SetContextMenuHook,其中儲存_contextMenuSerial/_contextMenuEntry。 ProcessMenuHooks 處理程序等待現有的符合上下文選單。
return RunScenario();
object? RunScenario()
{
var id = UO.GetSerial("lasttarget");
UO.SetContextMenuHook(UO.Hex2Int(id), 0);
UO.RequestContextMenu(id);
return null;
}參數與執行流程:
- 如果SelectYokoItem成功,則字段被清除為0/-1。此設定器不需要選單:單獨使用RequestContextMenu。呼叫本身不會阻止或確認伺服器操作。
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.SetContextMenuHook(0, -1);
UO.Print(UO.GetContextMenu());
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: menuID (Any), entryNumber (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetContextMenuHook:bridge.SetContextMenuHook(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
內部實作程式碼,不能作為獨立腳本執行。
case "setcontextmenuhook": bridge.SetContextMenuHook(Arg(0), Arg(1)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.WaitMenu(object? menuCaption, object? elementCaption);
void UO.WaitMenu(object? prompt1, object? choice1, object? prompt2, object? choice2);
void UO.WaitMenu(object? prompt1, object? choice1, object? prompt2, object? choice2, object? prompt3, object? choice3);最多註冊三個一次性菜單掛鉤。
-
menuCaption / prompt1 / prompt2 / prompt3— 伺服器選單標題範本字串。對在訂單頭、元素中傳遞。 -
menuCaption— 伺服器選單標題範本字串。對在訂單頭、元素中傳遞。 -
prompt1— 伺服器選單標題範本字串。對在訂單頭、元素中傳遞。 -
prompt2— 伺服器選單標題範本字串。對在訂單頭、元素中傳遞。 -
prompt3— 伺服器選單標題範本字串。對在訂單頭、元素中傳遞。 -
elementCaption / choice1 / choice2 / choice3— 用於為對應標題選擇元素的行。不是 ID 常規阿甘按鈕。 -
elementCaption— 用於為對應標題選擇元素的行。不是 ID 常規阿甘按鈕。 -
choice1— 用於為對應標題選擇元素的行。不是 ID 常規阿甘按鈕。 -
choice2— 用於為對應標題選擇元素的行。不是 ID 常規阿甘按鈕。 -
choice3— 用於為對應標題選擇元素的行。不是 ID 常規阿甘按鈕。
void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。
- 每對都傳遞給 _manager.AddMenuHook(提示,選擇,false)。註冊形式為2/4/6參數。 false表示一次性掛鉤;AutoMenu/雙參數VendorMenu 使用常數鉤子。
- 在選單出現之前不會阻止腳本。當選單合適時,Hook被管理者消費;伺服器執行的結果不回傳。對於選單使用 WaitingMenu,對於掛鉤 - MenuHookPresent。
- 對於選單/選擇形式,管理者選擇第一個標題包含提示的選單,不區分大小寫; SessionMenu 選擇名稱中包含 choice 的第一個項目,也不區分大小寫。空白文字適合任何人;數位文字是名稱的片段,而不是索引。成功選擇會發送回應並關閉本地選單。一次性鉤子選擇成功後才會刪除;留下永久的鉤子。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.WaitMenu");
UO.WaitMenu("Craft", "Tools");參數與執行流程:
- 最多註冊三個一次性菜單掛鉤。
UO.WaitMenu("Craft", "Tools");參數與執行流程:
- 每對都傳遞給 _manager.AddMenuHook(提示,選擇,false)。註冊形式為2/4/6參數。 false表示一次性掛鉤;AutoMenu/雙參數VendorMenu 使用常數鉤子。
return RunScenario();
object? RunScenario()
{
UO.WaitMenu("Craft", "Tools", "Tools", "Shovel");
return null;
}參數與執行流程:
- 在選單出現之前不會阻止腳本。當選單合適時,Hook被管理者消費;伺服器執行的結果不回傳。對於選單使用 WaitingMenu,對於掛鉤 - MenuHookPresent。
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.WaitMenu("Craft", "Tools", "Tools", "Shovel", "Amount", "One");
UO.Print(UO.MenuHookPresent());
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: menuCaption (Any/String), elementCaption (Any/String)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.WaitMenu:bridge.WaitMenu(arguments.Select(value => value.ToString()).ToArray()). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
內部實作程式碼,不能作為獨立腳本執行。
case "waitmenu": bridge.WaitMenu(arguments.Select(value => value.ToString()).ToArray()); return InjectionValue.Unit;參數: menuCaption (Any/String), elementCaption (Any/String)
結果: void / Unit.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
public void WaitMenu(string prompt, string choice)
=> bridge.WaitMenu(prompt, choice);參數: prompt1 (String), choice1 (String), prompt2 (String), choice2 (String)
結果: void / Unit.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
public void WaitMenu(string prompt1, string choice1, string prompt2, string choice2)
=> bridge.WaitMenu(prompt1, choice1, prompt2, choice2);
UO.WaitMenu(prompt1, choice1, prompt2, choice2, prompt3, choice3) — UO.WaitMenu(String,String,String,String,String,String)
參數: prompt1 (String), choice1 (String), prompt2 (String), choice2 (String), prompt3 (String), choice3 (String)
結果: void / Unit.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
public void WaitMenu(string prompt1, string choice1, string prompt2, string choice2, string prompt3, string choice3)
=> bridge.WaitMenu(prompt1, choice1, prompt2, choice2, prompt3, choice3);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.WaitTextEntry(object? value);嘗試將文字寫入目前命令的文字條目。
-
value— 透過 ToString 發送文字;儲存為已傳送。
void - 沒有值。使用單獨的線路撥打電話;完成並不確認伺服器的操作。
- ExecuteClientApiCompatibility 呼叫 SetGumpValue(-1, "textentry", -1, Text(0))。 key=-1 不是普通的空索引:只有在現有欄位對應到 Gump 實作中的這類 ID 時才可以寫入。
- 不等待未來的 Gump,不打開提示,也不註冊鉤子。如果沒有符合字段,SetGumpValue 將顯示一則訊息。對於已知字段,將 SetGump 與顯式 ID/索引結合使用。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
指令是獨立的陳述式。前面的訊息表示呼叫開始,並非伺服器已完成動作的確認。
UO.Print("Calling UO.WaitTextEntry");
UO.WaitTextEntry("Example");參數與執行流程:
- 嘗試將文字寫入目前命令的文字條目。
UO.WaitTextEntry("Example");參數與執行流程:
- ExecuteClientApiCompatibility 呼叫 SetGumpValue(-1, "textentry", -1, Text(0))。 key=-1 不是普通的空索引:只有在現有欄位對應到 Gump 實作中的這類 ID 時才可以寫入。
return RunScenario();
object? RunScenario()
{
if (Truth(UO.GetGumpsCount() > 0))
{
UO.WaitTextEntry("Example");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;參數與執行流程:
- 不等待未來的 Gump,不打開提示,也不註冊鉤子。如果沒有符合字段,SetGumpValue 將顯示一則訊息。對於已知字段,將 SetGump 與顯式 ID/索引結合使用。
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.WaitTextEntry("Example");
UO.Print("Check the target field in the current gump");
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: value (Any)
結果: void / Unit.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetGumpValue:bridge.SetGumpValue(-1, "textentry", -1, Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
內部實作程式碼,不能作為獨立腳本執行。
case "waittextentry": bridge.SetGumpValue(-1, "textentry", -1, Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.WaitingForMenu(object? delay);
int UO.WaitingForMenu(object? delay, object? menuCount);
int UO.WaitingForMenu(object? delay, object? menuCount, object? blockMenu);
int UO.WaitingForMenu(object? delay, object? menuCount, object? blockMenu, object? menuName);
int UO.WaitingForMenu(object? delayValue, object? menuCountValue, object? blockMenuValue, object? menuNameValue, object? skillOrSerial);所需的伺服器選單出現次數是有限的。
-
delay— int 超時(以毫秒為單位),負數變為 0。即使使用0,也會執行一項檢查。 -
delayValue— int 超時(以毫秒為單位),負數變為 0。即使使用0,也會執行一項檢查。 -
menuCount— 可選出現次數,最少1;預設為1。這不是菜單項目的數量。 -
menuCountValue— 可選出現次數,最少1;預設為1。這不是菜單項目的數量。 -
blockMenu— 可選的非零數字,當滿足條件時關閉選單; 0離開了他。 -
blockMenuValue— 可選的非零數字,當滿足條件時關閉選單; 0離開了他。 -
menuName- 可選的精確標題,區分大小寫;空允許任何人。 -
menuNameValue- 可選的精確標題,區分大小寫;空允許任何人。 -
skillOrSerial- 可選的最後一個參數:TriggerWaitAction可以先使用名為serial的技能或物件。預設情況下,0 不執行任何操作。
數字標誌int:1 - 至少注意到menuCount不同的出現,並且最後一個具有所需的標題; 0 - 超時。現有的菜單可以立即統計。
- TriggerWaitAction讀取GetLastMenuIdentity後;新身分增加了計數器。空標識會重置前一個選單的內存,因此在關閉/重新開啟後可以再次計數相同的選單。
- 僅使用新身分檢查計數邊界。如果 和 匹配,blockMenu 關閉選單。檢查之間 UO.Wait 到 25 ms;標頭由序數而不是子字串檢查。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
var result = UO.WaitingForMenu(3000);
UO.Print("WaitingForMenu: " + Convert.ToString(result));參數與執行流程:
- 所需的伺服器選單出現次數是有限的。
UO.Print(UO.WaitingForMenu(3000));參數與執行流程:
- TriggerWaitAction讀取GetLastMenuIdentity後;新身分增加了計數器。空標識會重置前一個選單的內存,因此在關閉/重新開啟後可以再次計數相同的選單。
return RunScenario();
object? RunScenario()
{
UO.Print(UO.WaitingForMenu(3000, 1, 1, "Craft"));
return null;
}參數與執行流程:
- 僅使用新身分檢查計數邊界。如果 和 匹配,blockMenu 關閉選單。檢查之間 UO.Wait 到 25 ms;標頭由序數而不是子字串檢查。
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 found = UO.WaitingForMenu(3000, 1, 0, "Craft", "lasttarget");
if (Truth(found))
{
UO.Print(UO.GetLastMenuItems());
}
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。
參數: delay (Any)
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu. -
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu:WaitingForMenu(delay, InjectionValue.Zero, InjectionValue.Zero, new InjectionValue(string.Empty), InjectionValue.Zero).
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingForMenu(InjectionValue delay) => WaitingForMenu(delay, InjectionValue.Zero, InjectionValue.Zero, new InjectionValue(string.Empty), InjectionValue.Zero);參數: delay (Any), menuCount (Any)
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu. -
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu:WaitingForMenu(delay, menuCount, InjectionValue.Zero, new InjectionValue(string.Empty), InjectionValue.Zero).
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingForMenu(InjectionValue delay, InjectionValue menuCount) => WaitingForMenu(delay, menuCount, InjectionValue.Zero, new InjectionValue(string.Empty), InjectionValue.Zero);參數: delay (Any), menuCount (Any), blockMenu (Any)
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu. -
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu:WaitingForMenu(delay, menuCount, blockMenu, new InjectionValue(string.Empty), InjectionValue.Zero).
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingForMenu(InjectionValue delay, InjectionValue menuCount, InjectionValue blockMenu) => WaitingForMenu(delay, menuCount, blockMenu, new InjectionValue(string.Empty), InjectionValue.Zero);參數: delay (Any), menuCount (Any), blockMenu (Any), menuName (Any)
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu. -
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu:WaitingForMenu(delay, menuCount, blockMenu, menuName, InjectionValue.Zero).
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingForMenu(InjectionValue delay, InjectionValue menuCount, InjectionValue blockMenu, InjectionValue menuName) => WaitingForMenu(delay, menuCount, blockMenu, menuName, InjectionValue.Zero);
UO.WaitingForMenu(delayValue, menuCountValue, blockMenuValue, menuNameValue, skillOrSerial) — UO.WaitingForMenu(Any,Any,Any,Any,Any)
參數: delayValue (Any), menuCountValue (Any), blockMenuValue (Any), menuNameValue (Any), skillOrSerial (Any)
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingForMenu. -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(delayValue). -
InjectionScript.Runtime.InjectionValue.ToString:menuNameValue.ToString(). -
InjectionScript.Runtime.InjectionApiUO.TriggerWaitAction:TriggerWaitAction(skillOrSerial). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLastMenuIdentity:bridge.GetLastMenuIdentity(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetLastMenuCaption:bridge.GetLastMenuCaption(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.CloseMenu:bridge.CloseMenu(). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Wait:bridge.Wait(Math.Min(25, Math.Max(1, delay))).
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingForMenu(InjectionValue delayValue, InjectionValue menuCountValue, InjectionValue blockMenuValue, InjectionValue menuNameValue, InjectionValue skillOrSerial)
{
int delay = Math.Max(0, NumberConversions.ToInt(delayValue));
int requiredMenuCount = Math.Max(1, NumberConversions.ToInt(menuCountValue));
bool blockMenu = NumberConversions.ToInt(blockMenuValue) != 0;
string expectedName = menuNameValue.ToString() ?? string.Empty;
DateTime deadline = timeSource.Now.AddMilliseconds(delay);
string previousIdentity = string.Empty;
int observedMenuCount = 0;
TriggerWaitAction(skillOrSerial);
do
{
string identity = bridge.GetLastMenuIdentity() ?? string.Empty;
if (identity.Length == 0)
{
// Reset between server menus so an identical menu opened again
// still counts as a new appearance.
previousIdentity = string.Empty;
}
else if (!identity.Equals(previousIdentity, StringComparison.Ordinal))
{
previousIdentity = identity;
observedMenuCount++;
string caption = bridge.GetLastMenuCaption() ?? string.Empty;
bool nameMatches = expectedName.Length == 0
|| caption.Equals(expectedName, StringComparison.Ordinal);
if (observedMenuCount >= requiredMenuCount && nameMatches)
{
if (blockMenu)
bridge.CloseMenu();
return 1;
}
}
if (timeSource.Now >= deadline)
break;
bridge.Wait(Math.Min(25, Math.Max(1, delay)));
}
while (true);
return 0;
}Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.WaitingMenu();讀取 _world.ServerMenus.Snapshot().Length != 0。
沒有參數。
數字標誌int:1 - ServerMenus 至少有一個選單,0 - 沒有。這是有一個選單,而不是等待腳本。
- 讀取 _world.ServerMenus.Snapshot().Length != 0。舊版伺服器選單與常規伺服器命令和上下文選單是分開的。
- 讀取目前本地狀態。沒有軟體包、目標或自動更新;個別讀取可能會看到不同的狀態。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
var result = UO.WaitingMenu();
UO.Print("WaitingMenu: " + Convert.ToString(result));參數與執行流程:
- 讀取 _world.ServerMenus.Snapshot().Length != 0。
UO.Print(UO.WaitingMenu());參數與執行流程:
- 讀取 _world.ServerMenus.Snapshot().Length != 0。舊版伺服器選單與常規伺服器命令和上下文選單是分開的。
return RunScenario();
object? RunScenario()
{
if (Truth(UO.WaitingMenu()))
{
UO.Print(UO.GetLastMenuItems());
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 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 before = UO.WaitingMenu();
UO.Wait(500);
var after = UO.WaitingMenu();
UO.Print(before);
UO.Print(after);
return null;
}
}C# 區分大小寫。請使用正確的 UO 名稱。數值旗標應與 0 比較;只有回傳型別為 bool 時才使用 bool。
參數: 沒有參數。
結果: int / Integer.
呼叫時:
-
InjectionScript.Runtime.InjectionApiUO.WaitingMenu. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.WaitingMenu:bridge.WaitingMenu().
內部實作程式碼,不能作為獨立腳本執行。
public int WaitingMenu() => bridge.WaitingMenu();