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

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

UO.Mount

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

int UO.Mount();
int UO.Mount(object? mount);

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

Mount์™€ Dismount๋Š” ์ˆ˜๋™ ๋”๋ธ” ํด๋ฆญ์ด๋‚˜ ์ „ํˆฌ ๋ชจ๋“œ ๊ณต๊ฒฉ ์ฒ˜๋ฆฌ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๊ฐœ์ฒด ์‚ฌ์šฉ ์š”์ฒญ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. int๋Š” Mount ๋ ˆ์ด์–ด์˜ ํ˜„์žฌ ์•„์ดํ…œ serial์ด๋ฉฐ ์„ฑ๊ณต ์—ฌ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์‘๋‹ต์€ ๋น„๋™๊ธฐ์ด๋ฏ€๋กœ Mount๊ฐ€ ์•„์ง 0, Dismount๊ฐ€ ์ œ๊ฑฐ ์ „ serial์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‘๋‹ต ํ›„ ObjAtLayer("Mount")๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

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

  • mount โ€” ํƒˆ๊ฒƒ ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ. ์ƒ๋žตํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ๋Œ€์ƒ.

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

์ฑ„ํŒ… ๋ช…๋ น

#mount 0x00001234
#mount

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

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

1

int mountLayerSerial = UO.Mount(0x00001234);
UO.Print(UO.Int2Hex(mountLayerSerial));

2

int currentSerial = UO.Mount();
UO.Print(UO.Int2Hex(currentSerial));

3

UO.Mount(0x00001234);
for (int attempt = 0; attempt < 40; attempt++)
{
    var serial = UO.ObjAtLayer("Mount");
    if (Convert.ToString(serial) != "0" && Convert.ToString(serial) != "0x00000000")
    {
        UO.Print(Convert.ToString(serial));
        break;
    }
    await WaitAsync(50);
}

4

new CommandSample().Execute(UO);

sealed class CommandSample
{
    public void Execute(global::ClassicUO.CSharp.CSharpGameApi api)
    {
        int mountLayerSerial = api.Mount(0x00001234);
        api.Print(api.Int2Hex(mountLayerSerial));
    }
}

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

CSharpGameApi.Mount
  -> CSharpScriptGlobals
  -> InjectionScript.Runtime.InjectionApiUO.Mount
ClassicUOInjectionApiBridge -> NativeMountController.Request
  -> OutgoingPackets.Send_UseObjectRequest (0x06)
  -> MountedLayerSerialUnsafe -> Player.FindItemByLayer(Layer.Mount)

์ถœ์ฒ˜

ClassicUO ยท ServUO BaseMount

ClassicUO.Game.Managers.NativeMountController.Request