KO 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