RU API UO SetGlobalShared - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.SetGlobalShared
Сигнатуры C#
void UO.SetGlobalShared(object? name, object? value);
Поведение и результат
SetGlobal и GetGlobal используют одно пространство для всех скриптов и профилей, включая разные процессы Full Client и Client. Значения хранятся как строки; отсутствующий ключ возвращает "N/A". Регистр ключа учитывается. Формы с region используют пару region/name. Файл Manager/Game Manager/CSharp/globals.json читается заново под межпроцессной блокировкой; перезапуск сохраняет значения. Shared-формы — явные синонимы этого же хранилища.
Параметры
name— Имя общего ключа с учётом регистра.value— Значение, сохраняемое как текст.
Каждый блок — полный отдельный .csx. Замените демонстрационные serial, type и координаты своими. Параметры идут в порядке сигнатуры; именованные параметры C# позволяют явно указать их назначение.
Команды чата
#setglobalshared team.delay 350
Самостоятельные примеры C#
Каждый блок — полный отдельный .csx. Замените демонстрационные serial, type и координаты своими. Параметры идут в порядке сигнатуры; именованные параметры C# позволяют явно указать их назначение.
1
UO.SetGlobalShared("team.target", 0x40001234);
UO.Print(UO.GetGlobal("team.target"));
2
UO.SetGlobal("team.message", "Привіт");
UO.Print(UO.GetGlobalShared("team.message"));
3
string key = "team.delay";
UO.SetGlobalShared(key, 350);
UO.Print(UO.GetGlobalShared(key));
4
new CommandSample().Execute(UO);
sealed class CommandSample
{
public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
{
api.SetGlobalShared("team.target", 0x40001234);
api.Print(api.GetGlobal("team.target"));
}
}
Внутренние вызовы
CSharpGameApi.SetGlobalShared
-> CSharpScriptGlobals
-> InjectionScript.Runtime.State.Globals.SetGlobalShared
Globals -> SharedGlobalStore -> named mutex -> atomic JSON replacement