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