KO API UO GetGlobalShared - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

ะฃะบั€ะฐั—ะฝััŒะบะฐ ยท ะ ัƒััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซ”ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž ยท ํ•œ๊ตญ์–ด

UO.GetGlobalShared

C# ์‹œ๊ทธ๋‹ˆ์ฒ˜

string UO.GetGlobalShared(object? name);

๋™์ž‘ ๋ฐ ๋ฐ˜ํ™˜๊ฐ’

SetGlobal๊ณผ GetGlobal์€ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ, ํ”„๋กœํ•„๊ณผ Full Client/Client ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ ๋ฌธ์ž์—ด์ด๊ณ  ์—†๋Š” ํ‚ค๋Š” "N/A"์ž…๋‹ˆ๋‹ค. ํ‚ค๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฉฐ region ํ˜•์‹์€ region/name ์Œ์ž…๋‹ˆ๋‹ค. Manager/Game Manager/CSharp/globals.json์„ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž ๊ธˆ์œผ๋กœ ์ƒˆ๋กœ ์ฝ๊ณ  ์žฌ์‹œ์ž‘ ํ›„์—๋„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. Shared ํ˜•์‹๋„ ๊ฐ™์€ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜

  • name โ€” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ณต์œ  ํ‚ค ์ด๋ฆ„.

๊ฐ ์ฝ”๋“œ ๋ธ”๋ก์€ ์™„์ „ํ•œ ๋…๋ฆฝ .csx์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ serial, type๊ณผ ์ขŒํ‘œ๋ฅผ ๋ฐ”๊พธ์„ธ์š”. ์ธ์ˆ˜ ์ˆœ์„œ์™€ C# ๋ช…๋ช…๋œ ์ธ์ˆ˜๋Š” ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ฑ„ํŒ… ๋ช…๋ น

#getglobalshared team.delay

์™„์ „ํ•œ C# ์˜ˆ์ œ

๊ฐ ์ฝ”๋“œ ๋ธ”๋ก์€ ์™„์ „ํ•œ ๋…๋ฆฝ .csx์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ serial, type๊ณผ ์ขŒํ‘œ๋ฅผ ๋ฐ”๊พธ์„ธ์š”. ์ธ์ˆ˜ ์ˆœ์„œ์™€ C# ๋ช…๋ช…๋œ ์ธ์ˆ˜๋Š” ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

1

UO.Print(UO.GetGlobalShared("team.target"));

2

UO.SetGlobal("team.message", "ะŸั€ะธะฒั–ั‚");
string value = UO.GetGlobalShared("team.message");
UO.Print(value);

3

foreach (string key in new[] { "team.target", "team.delay" })
    UO.Print(UO.GetGlobalShared(key));

4

new CommandSample().Execute(UO);

sealed class CommandSample
{
    public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
    {
        api.Print(api.GetGlobalShared("team.target"));
    }
}

๋‚ด๋ถ€ ํ˜ธ์ถœ

CSharpGameApi.GetGlobalShared
  -> CSharpScriptGlobals
  -> InjectionScript.Runtime.State.Globals.GetGlobalShared
Globals -> SharedGlobalStore -> named mutex -> atomic JSON replacement

InjectionScript.Runtime.State.SharedGlobalStore.Get