API UO Ground ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Ground
ClassicUO โข Runtime API
๊ฒ์ ์ปจํ ์ด๋ ๋๋ ์ด๋ ๋ชฉ์ ์ง์ ์ ๋ฌํ ์ง๋ฉด ์ ํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
์ ํํ ๊ตฌ๋ฌธ
UO.Ground() -> Integer
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๋ฐํ๊ฐ
Integer์ด๋ฉฐ ํญ์ 0์ ๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
๋์
- ์ธ์๊ฐ ์์ต๋๋ค. Ground()๋ง ํธ์ถํ๋ฉด ๊ฒ์, ์ด๋, ํ๊น ์ด๊ธฐ, ํจํท ์ ์ก์ด๋ ์ด์ ๊ฒ์ ๊ฒฐ๊ณผ ๋ณ๊ฒฝ์ด ์์ต๋๋ค. ๋ก๊ทธ์ธ ์ ์๋ 0์ ๋๋ค.
- FindType, FindList, Count, FindTypeEx, FindTypesArrayEx, CountEx, MoveItem์ container/destination ์๋ฆฌ์ ์ ๋ฌํฉ๋๋ค. ๊ฒ์์ ๋ก๋ฉ๋ ๊ฐ์ฒด๋ฅผ ๋ณด๋ฉฐ ๋จผ ์นธ์ ๋ก๋ฉํ์ง ์์ต๋๋ค. ์ง๋ฉด X/Y/Z๋ ์ปจํ ์ด๋ ํ๋ฉด ํฝ์ ์ด ์๋ ์๋ ์ขํ์ ๋๋ค.
- FindType(type, color)๋ ์ฌ์ ํ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ๊ฒ์ํฉ๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ ์์ ๋๋ค. ์ง๋ฉด์ FindType(type, color, UO.Ground())๋ก ์ง์ ํ์ธ์. ๊ธฐ์กด ๊ฐ๊ฒฐํ FindType/MoveItem์ -1์ ์ธ๋ฒคํ ๋ฆฌ์ด๋ฉฐ, ํธํํ FindTypeEx/FindTypesArrayEx/CountEx๋ -1๋ ์ง๋ฉด์ผ๋ก ๋ฐ์ต๋๋ค. ์๋ก ๋ค๋ฅธ ๋ช ๋ น ์ฌ์ด์ ์ซ์๋ฅผ ๋ณต์ฌํ๊ธฐ๋ณด๋ค UO.Ground() ๋๋ ground ์ด๋ฆ์ ๊ถ์ฅํฉ๋๋ค.
- ์ผ์ฐจ ์๋ฃ: Stealth Ground. ์ ๊ท์น๊ณผ ์์ ๋ ์ด ํด๋ผ์ด์ธํธ๋ฅผ ์ค๋ช ํฉ๋๋ค.
๋ด๋ถ ํจ์: ํธ์ถ๋ถํฐ ๊ฒฐ๊ณผ๊น์ง
์ค์ ๋ด๋ถ ์ฒ๋ฆฌ์ ๋๋ค. FindGroundTypes๋ ์์ ํ ์ฌ์ฉ์ ํจ์์ด๋ฉฐ ์ถ๊ฐ ๋ด์ฅ ๋ช ๋ น์ด ์๋๋๋ค.
1. ExecuteStealthCompatibility
์ธ์ ์๋ runtime ๋ถ๊ธฐ๋ ๊ฒ์ bridge ํธ์ถ ์์ด Integer 0์ ๋ฐํํฉ๋๋ค.
Integer์ด๋ฉฐ ํญ์ 0์ ๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ExecuteStealthCompatibility.
2. ConvertContainer
๊ฐ๊ฒฐํ ๊ฒ์์ ๋ช ์์ 0์ ๋ด๋ถ ์ง๋ฉด ๋ฒ์๋ก ๋ฐ๊พธ๋ฉฐ -1์ ๊ธฐ๋ณธ ์ธ๋ฒคํ ๋ฆฌ๋ก ์ ์งํฉ๋๋ค. ํธํ ๊ฒ์์ 0๊ณผ ๊ธฐ์กด -1์ ์ง๋ฉด์ผ๋ก ๋ฐ์ผ๋ฉฐ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋ฐ๋ก ํด์ํฉ๋๋ค.
FindType(type, color)๋ ์ฌ์ ํ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ๊ฒ์ํฉ๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ ์์ ๋๋ค. ์ง๋ฉด์ FindType(type, color, UO.Ground())๋ก ์ง์ ํ์ธ์. ๊ธฐ์กด ๊ฐ๊ฒฐํ FindType/MoveItem์ -1์ ์ธ๋ฒคํ ๋ฆฌ์ด๋ฉฐ, ํธํํ FindTypeEx/FindTypesArrayEx/CountEx๋ -1๋ ์ง๋ฉด์ผ๋ก ๋ฐ์ต๋๋ค. ์๋ก ๋ค๋ฅธ ๋ช ๋ น ์ฌ์ด์ ์ซ์๋ฅผ ๋ณต์ฌํ๊ธฐ๋ณด๋ค UO.Ground() ๋๋ ground ์ด๋ฆ์ ๊ถ์ฅํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ConvertContainer.
3. ConvertStealthSearchContainer
๊ฐ๊ฒฐํ ๊ฒ์์ ๋ช ์์ 0์ ๋ด๋ถ ์ง๋ฉด ๋ฒ์๋ก ๋ฐ๊พธ๋ฉฐ -1์ ๊ธฐ๋ณธ ์ธ๋ฒคํ ๋ฆฌ๋ก ์ ์งํฉ๋๋ค. ํธํ ๊ฒ์์ 0๊ณผ ๊ธฐ์กด -1์ ์ง๋ฉด์ผ๋ก ๋ฐ์ผ๋ฉฐ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋ฐ๋ก ํด์ํฉ๋๋ค.
FindType(type, color)๋ ์ฌ์ ํ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ๊ฒ์ํฉ๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ ์์ ๋๋ค. ์ง๋ฉด์ FindType(type, color, UO.Ground())๋ก ์ง์ ํ์ธ์. ๊ธฐ์กด ๊ฐ๊ฒฐํ FindType/MoveItem์ -1์ ์ธ๋ฒคํ ๋ฆฌ์ด๋ฉฐ, ํธํํ FindTypeEx/FindTypesArrayEx/CountEx๋ -1๋ ์ง๋ฉด์ผ๋ก ๋ฐ์ต๋๋ค. ์๋ก ๋ค๋ฅธ ๋ช ๋ น ์ฌ์ด์ ์ซ์๋ฅผ ๋ณต์ฌํ๊ธฐ๋ณด๋ค UO.Ground() ๋๋ ground ์ด๋ฆ์ ๊ถ์ฅํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ConvertStealthSearchContainer.
4. ResolveTransferDestination
์ด๋ ๋ชฉ์ ์ง ํด์๊ธฐ๋ ์ง๋ฉด์ 0์ผ๋ก ์ ์งํฉ๋๋ค. bridge๋ ์๋ ์ขํ๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ด๋ ค๋๊ธฐ ํจํท์ ์ปจํ ์ด๋ ํ๋๋ 0xFFFFFFFF์ ๋๋ค. API ๊ฐ๊ณผ ํจํท ํ๋๋ ํํ์ด ๋ค๋ฆ ๋๋ค.
0x40001001์ ์ ๊ทผ ๊ฐ๋ฅํ ์์ดํ serial๋ก ๋ฐ๊พธ์ธ์. IsObjectExists๊ฐ ๋ก๋ฉ๋ ๊ฐ์ฒด๋ฅผ ๊ฒ์ฌํฉ๋๋ค. MoveItem(item, amount, destination, X, Y, Z): amount=0์ ์ ์ฒด ์คํ, Ground()๋ ์ง๋ฉด, GetX/GetY/GetZ๋ ํ๋ ์ด์ด ์๋ ์์น์ ๋๋ค. result=1์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์๋ฝ, ์๋๋ฉด 0์ ๋๋ค. Ground()์ ๊ฒฐ๊ณผ๋ ์๋ฒ์ ๋ฐฐ์ก ํ์ธ์ด ์๋๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ResolveTransferDestination.
5. MoveItem
์ด๋ ๋ชฉ์ ์ง ํด์๊ธฐ๋ ์ง๋ฉด์ 0์ผ๋ก ์ ์งํฉ๋๋ค. bridge๋ ์๋ ์ขํ๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ด๋ ค๋๊ธฐ ํจํท์ ์ปจํ ์ด๋ ํ๋๋ 0xFFFFFFFF์ ๋๋ค. API ๊ฐ๊ณผ ํจํท ํ๋๋ ํํ์ด ๋ค๋ฆ ๋๋ค.
0x40001001์ ์ ๊ทผ ๊ฐ๋ฅํ ์์ดํ serial๋ก ๋ฐ๊พธ์ธ์. IsObjectExists๊ฐ ๋ก๋ฉ๋ ๊ฐ์ฒด๋ฅผ ๊ฒ์ฌํฉ๋๋ค. MoveItem(item, amount, destination, X, Y, Z): amount=0์ ์ ์ฒด ์คํ, Ground()๋ ์ง๋ฉด, GetX/GetY/GetZ๋ ํ๋ ์ด์ด ์๋ ์์น์ ๋๋ค. result=1์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์๋ฝ, ์๋๋ฉด 0์ ๋๋ค. Ground()์ ๊ฒฐ๊ณผ๋ ์๋ฒ์ ๋ฐฐ์ก ํ์ธ์ด ์๋๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ MoveItem.
์ธ์๊ฐ ์์ต๋๋ค. Ground()๋ง ํธ์ถํ๋ฉด ๊ฒ์, ์ด๋, ํ๊น ์ด๊ธฐ, ํจํท ์ ์ก์ด๋ ์ด์ ๊ฒ์ ๊ฒฐ๊ณผ ๋ณ๊ฒฝ์ด ์์ต๋๋ค. ๋ก๊ทธ์ธ ์ ์๋ 0์ ๋๋ค.
์์
์ ํ ๊ฐ ์ฝ๊ธฐ
# ์ ํ ๊ฐ ์ฝ๊ธฐ
#
# ๊ฒ์ ์ปจํ
์ด๋ ๋๋ ์ด๋ ๋ชฉ์ ์ง์ ์ ๋ฌํ ์ง๋ฉด ์ ํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
#
# Integer์ด๋ฉฐ ํญ์ 0์
๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต
# ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
SUB Main()
# destination์ Integer 0์ ๋ฐ๊ณ Print๊ฐ ์ถ๋ ฅํฉ๋๋ค. ๋ฌผ๊ฑด์ ๋ด๋ ค๋๋ ๋์์ ์์ต๋๋ค.
VAR destination = UO.Ground()
UO.Print(CStr(destination))
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- destination์ Integer 0์ ๋ฐ๊ณ Print๊ฐ ์ถ๋ ฅํฉ๋๋ค. ๋ฌผ๊ฑด์ ๋ด๋ ค๋๋ ๋์์ ์์ต๋๋ค.
์ง๋ฉด์ ๊ธ ์คํ ๊ฒ์
# ์ง๋ฉด์ ๊ธ ์คํ ๊ฒ์
#
# ๊ฒ์ ์ปจํ
์ด๋ ๋๋ ์ด๋ ๋ชฉ์ ์ง์ ์ ๋ฌํ ์ง๋ฉด ์ ํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
#
# Integer์ด๋ฉฐ ํญ์ 0์
๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต
# ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
SUB Main()
# 0x0EED๋ ๊ธ ๊ทธ๋ํฝ, ๋ ๋ฒ์งธ -1์ ๋ชจ๋ ์์
๋๋ค. Ground()๋ ์๋, FALSE๋ ์ปจํ
์ด๋ ์ฌ๊ท ๋นํ์ฑํ์
๋๋ค. FindTypeEx๋ serial ๋๋
# 0์ ๋ฐํํ๊ณ <> 0์ ๊ทธ serial์ ๊ฒ์ฌํฉ๋๋ค. FindDistance/FindVertical๊ณผ Ignore๊ฐ ์ ์ฉ๋ฉ๋๋ค.
VAR id = UO.FindTypeEx(0x0EED, -1, UO.Ground(), FALSE)
IF id <> 0 THEN
UO.Print(HEX(id))
ELSE
UO.Print('0')
END IF
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- 0x0EED๋ ๊ธ ๊ทธ๋ํฝ, ๋ ๋ฒ์งธ -1์ ๋ชจ๋ ์์ ๋๋ค. Ground()๋ ์๋, FALSE๋ ์ปจํ ์ด๋ ์ฌ๊ท ๋นํ์ฑํ์ ๋๋ค. FindTypeEx๋ serial ๋๋ 0์ ๋ฐํํ๊ณ <> 0์ ๊ทธ serial์ ๊ฒ์ฌํฉ๋๋ค. FindDistance/FindVertical๊ณผ Ignore๊ฐ ์ ์ฉ๋ฉ๋๋ค.
๋ ๊ทธ๋ํฝ์ ๊ฒ์ํ๋ ์์ ํ ํจ์
# ๋ ๊ทธ๋ํฝ์ ๊ฒ์ํ๋ ์์ ํ ํจ์
#
# ๊ฒ์ ์ปจํ
์ด๋ ๋๋ ์ด๋ ๋ชฉ์ ์ง์ ์ ๋ฌํ ์ง๋ฉด ์ ํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
#
# Integer์ด๋ฉฐ ํญ์ 0์
๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต
# ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
SUB Main()
# FindGroundTypes(firstType, secondType, radius, height)๋ ๊ธ 0x0EED์ ํ์ง์ฃผ 0x0F7A๋ฅผ radius=5,
# height=10์ผ๋ก ๊ฒ์ํฉ๋๋ค. DIM types[1]์ ๋ ์นธ, colors[0]๊ณผ containers[0]์ ๊ฐ๊ฐ ํ ์นธ์
๋๋ค. ์คํ ํ๋๊ฐ ๊ฐ์ฒด ํ๋์ด๋ฉฐ
# ์ข
๋ฅ/์์ ๋์์ด๊ณ ์ปจํ
์ด๋๊ฐ ๊ฒน์ณ๋ ID๋ ์ค๋ณต๋์ง ์์ต๋๋ค. ์ ์ฅ๋ serial ๋ฐฐ์ด์ ๋ฐํํ๋ฉฐ Finally๋ ๋ ์ค์ ์ ๋ณต์ํ๊ณ Main์ ๊ฐ ID๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
# ํจ์ ์ ์ฒด๊ฐ ์ ๊ณต๋ฉ๋๋ค.
VAR ids = FindGroundTypes(0x0EED, 0x0F7A, 5, 10)
FOR EACH id IN ids
UO.Print(HEX(id))
NEXT
END SUB
FUNCTION FindGroundTypes(firstType, secondType, radius, height)
VAR oldDistance = UO.FindDistance()
VAR oldVertical = UO.FindVertical()
DIM types[1]
types[0] = firstType
types[1] = secondType
DIM colors[0]
colors[0] = -1
DIM containers[0]
containers[0] = UO.Ground()
TRY
UO.FindDistance(radius)
UO.FindVertical(height)
UO.FindTypesArrayEx(types, colors, containers, FALSE)
RETURN UO.GetFoundItems()
FINALLY
UO.FindDistance(oldDistance)
UO.FindVertical(oldVertical)
END TRY
END FUNCTION
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- FindGroundTypes(firstType, secondType, radius, height)๋ ๊ธ 0x0EED์ ํ์ง์ฃผ 0x0F7A๋ฅผ radius=5, height=10์ผ๋ก ๊ฒ์ํฉ๋๋ค. DIM types[1]์ ๋ ์นธ, colors[0]๊ณผ containers[0]์ ๊ฐ๊ฐ ํ ์นธ์ ๋๋ค. ์คํ ํ๋๊ฐ ๊ฐ์ฒด ํ๋์ด๋ฉฐ ์ข ๋ฅ/์์ ๋์์ด๊ณ ์ปจํ ์ด๋๊ฐ ๊ฒน์ณ๋ ID๋ ์ค๋ณต๋์ง ์์ต๋๋ค. ์ ์ฅ๋ serial ๋ฐฐ์ด์ ๋ฐํํ๋ฉฐ Finally๋ ๋ ์ค์ ์ ๋ณต์ํ๊ณ Main์ ๊ฐ ID๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ํจ์ ์ ์ฒด๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์๋ ค์ง ๋ฌผ๊ฑด์ ํ๋ ์ด์ด ์นธ์ ๋๊ธฐ
# ์๋ ค์ง ๋ฌผ๊ฑด์ ํ๋ ์ด์ด ์นธ์ ๋๊ธฐ
#
# ๊ฒ์ ์ปจํ
์ด๋ ๋๋ ์ด๋ ๋ชฉ์ ์ง์ ์ ๋ฌํ ์ง๋ฉด ์ ํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
#
# Integer์ด๋ฉฐ ํญ์ 0์
๋๋ค. ์ด 0์ ์ ํจํ ์ง๋ฉด ์ ํ ๊ฐ์ผ๋ก, FALSE, ๊ฒ์ ์คํจ, ID, ๊ทธ๋ํฝ, ์ง๋ ๋ฒํธ, ์ขํ๊ฐ ์๋๋๋ค. Ground() ์์ฒด๋ฅผ ์ฑ๊ณต
# ์ฌ๋ถ๋ก ๊ฒ์ฌํ์ง ๋ง๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์์ด๋ ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฌํ์ธ์.
SUB Main()
# 0x40001001์ ์ ๊ทผ ๊ฐ๋ฅํ ์์ดํ
serial๋ก ๋ฐ๊พธ์ธ์. IsObjectExists๊ฐ ๋ก๋ฉ๋ ๊ฐ์ฒด๋ฅผ ๊ฒ์ฌํฉ๋๋ค. MoveItem(item, amount,
# destination, X, Y, Z): amount=0์ ์ ์ฒด ์คํ, Ground()๋ ์ง๋ฉด, GetX/GetY/GetZ๋ ํ๋ ์ด์ด ์๋ ์์น์
๋๋ค. result=1์
# ํด๋ผ์ด์ธํธ์ ์์ฒญ ์๋ฝ, ์๋๋ฉด 0์
๋๋ค. Ground()์ ๊ฒฐ๊ณผ๋ ์๋ฒ์ ๋ฐฐ์ก ํ์ธ์ด ์๋๋๋ค.
VAR item = 0x40001001
IF UO.IsObjectExists(item) THEN
VAR result = UO.MoveItem(item, 0, UO.Ground(), UO.GetX('self'), UO.GetY('self'), UO.GetZ('self'))
END IF
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- 0x40001001์ ์ ๊ทผ ๊ฐ๋ฅํ ์์ดํ serial๋ก ๋ฐ๊พธ์ธ์. IsObjectExists๊ฐ ๋ก๋ฉ๋ ๊ฐ์ฒด๋ฅผ ๊ฒ์ฌํฉ๋๋ค. MoveItem(item, amount, destination, X, Y, Z): amount=0์ ์ ์ฒด ์คํ, Ground()๋ ์ง๋ฉด, GetX/GetY/GetZ๋ ํ๋ ์ด์ด ์๋ ์์น์ ๋๋ค. result=1์ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์๋ฝ, ์๋๋ฉด 0์ ๋๋ค. Ground()์ ๊ฒฐ๊ณผ๋ ์๋ฒ์ ๋ฐฐ์ก ํ์ธ์ด ์๋๋๋ค.