Skip to content

KO API UO SetGlobal

Bad Newbie edited this page Oct 16, 2026 · 3 revisions

Українська · Русский · 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

InjectionScript.Runtime.State.SharedGlobalStore.Set

Clone this wiki locally