ZH TW API UO GetGlobal - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.GetGlobal
C# 簽章
string UO.GetGlobal(object? name);
dynamic UO.GetGlobal(object? globalRegion, object? varName);
行為與結果
SetGlobal 與 GetGlobal 在所有腳本、設定檔及 Full Client/Client 處理程序之間共用。值為字串;不存在的鍵回傳 "N/A",鍵區分大小寫;region 形式使用 region/name。Manager/Game Manager/CSharp/globals.json 持久保存,並在跨程序鎖定下重新讀取。Shared 形式使用同一儲存區。
參數
globalRegion— 與鍵名組合的命名空間。name— 區分大小寫的共用鍵名。varName— 區分大小寫的共用鍵名。
每個程式碼區塊都是完整的獨立 .csx。請替換範例 serial、type 與座標;參數順序及 C# 具名參數依照簽章。
聊天指令
#getglobal team.target
#get global team.message
完整 C# 範例
每個程式碼區塊都是完整的獨立 .csx。請替換範例 serial、type 與座標;參數順序及 C# 具名參數依照簽章。
1
string value = UO.GetGlobal("team.target");
UO.Print(value);
2
string value = UO.GetGlobal("team.delay");
if (int.TryParse(value, out int milliseconds))
UO.Print(milliseconds.ToString());
3
UO.Print(Convert.ToString(UO.GetGlobal("team", "delay")));
4
new CommandSample().Execute(UO);
sealed class CommandSample
{
public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
{
string value = api.GetGlobal("team.target");
api.Print(value);
}
}
內部呼叫
CSharpGameApi.GetGlobal
-> CSharpScriptGlobals
-> InjectionScript.Runtime.InjectionApiUO.RegisterClientApiCompatibility
-> InjectionScript.Runtime.State.Globals.GetGlobal
Globals -> SharedGlobalStore -> named mutex -> atomic JSON replacement