JA API UO SetGlobal - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.SetGlobal
C# シグネチャ
void UO.SetGlobal(object? name, object? value);
void UO.SetGlobal(object? globalRegion, object? varName, object? varValue);
動作と戻り値
SetGlobal と GetGlobal はすべてのスクリプト、プロファイル、Full Client/Client プロセスで共有されます。値は文字列で、存在しないキーは "N/A" です。キーは大文字と小文字を区別し、region 形式は region/name の組を使用します。Manager/Game Manager/CSharp/globals.json をプロセス間ロックで読み直し、再起動後も保持します。Shared 形式も同じ保存先です。
引数
globalRegion— キー名と組み合わせる名前空間。name— 大文字と小文字を区別する共有キー名。value— 文字列として保存する値。varName— 大文字と小文字を区別する共有キー名。varValue— 文字列として保存する値。
各コードブロックは独立した完全な .csx です。例の serial、type、座標を置き換えてください。引数順序と C# の名前付き引数はシグネチャに従います。
チャットコマンド
#setglobal team.target 0x40001234
#set global team.message Привіт усім
完全な C# の例
各コードブロックは独立した完全な .csx です。例の serial、type、座標を置き換えてください。引数順序と C# の名前付き引数はシグネチャに従います。
1
UO.SetGlobal("team.target", 0x40001234);
UO.Print(UO.GetGlobal("team.target"));
2
UO.SetGlobal("team.message", "Привіт");
UO.Print(UO.GetGlobal("team.message"));
3
UO.SetGlobal("team", "delay", "350");
UO.Print(Convert.ToString(UO.GetGlobal("team", "delay")));
4
new CommandSample().Execute(UO);
sealed class CommandSample
{
public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
{
api.SetGlobal("team.target", 0x40001234);
api.Print(api.GetGlobal("team.target"));
}
}
内部呼び出し
CSharpGameApi.SetGlobal
-> CSharpScriptGlobals
-> InjectionScript.Runtime.InjectionApiUO.RegisterClientApiCompatibility
-> InjectionScript.Runtime.State.Globals.SetGlobal
Globals -> SharedGlobalStore -> named mutex -> atomic JSON replacement