API UO FindTypesArrayEx ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO โข Runtime API
์ฌ๋ฌ ๊ทธ๋ํฝ, ์์, ์ปจํ ์ด๋๋ฅผ ํ ๋ฒ ์ํํ์ฌ ID ํ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ GetFoundItems๋ก ์ฝ์ต๋๋ค.
UO.FindTypesArrayEx(ObjTypes:Any, Colors:Any, Containers:Any, InSub:Any) -> Integer
-
ObjTypesโ Graphic/body์ด๋ฉฐ ๊ฐ์ฒด serial์ด ์๋๋๋ค. 0..65534๋ ํน์ ๊ทธ๋ํฝ, -1 ๋๋ 0xFFFF๋ ๋ชจ๋ ๊ทธ๋ํฝ์ ๋๋ค. ๋ค๋ฅธ ์์ Integer๋ ํํฐ๋ฅผ ํด์ ํฉ๋๋ค. -
Colorsโ Hue์ด๋ฉฐ ์๋์ด ์๋๋๋ค. 0์ ์ผ์ ์์, -1 ๋๋ 0xFFFF๋ ๋ชจ๋ ์์์ ๋๋ค. ๋ค๋ฅธ ์์ Integer๋ ์์ ํํฐ๋ฅผ ํด์ ํฉ๋๋ค. -
Containersโ ์ง๋ฉด: UO.Ground(), 0, -1, 0xFFFFFFFF ๋๋ ๋ฌธ์์ด ground. ๋ฐฐ๋ญ: ๋ฌธ์์ด backpack ๋๋ ๊ทธ serial. ์ญ์ง์/hex serial๊ณผ AddObject ์ด๋ฆ๋ ๊ฐ๋ฅํฉ๋๋ค. my๋ ์ฅ๋น์ ์ค์ฒฉ ๊ฐ๋ฐฉ์ ํฌํจํ ์์ ์ ์ ์ฒด ์์ ํ์ ๋๋ค. ์ ์ ์๋ ์ด๋ฆ์ ์คํฌ๋ฆฝํธ ์ค๋ฅ์ ๋๋ค. ํ์ธํ serial์ ๊ฒ์ฌํ์ธ์. ๋ช ์์ ์ธ 0์ ์ง๋ฉด์ ์ ํํฉ๋๋ค. API๋ง๋ค ์ซ์ ์๋ฏธ๊ฐ ๋ฌ๋ผ ground/backpack ์ด๋ฆ์ด ๋ ๋ช ํํฉ๋๋ค. -
InSubโ ํ์ TRUE/FALSE(1/0). FALSE๋ ํน์ ์ปจํ ์ด๋์ ์ง์ ๋ด์ฉ๋ง, TRUE๋ ๋ก๋๋ ์ค์ฒฉ ๊ฐ๋ฐฉ๋ ๊ฒ์ํฉ๋๋ค. ์ง๋ฉด์๋ ์ํฅ์ด ์์ต๋๋ค. my๋ ์ด๋ฏธ ์ ์ฒด ์์ ํ์ ์ ํํฉ๋๋ค.
Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result = TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์ ๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
- Array๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋จ์ผ ๊ฐ๋ ํ ์์๋ก ํ์ฉํฉ๋๋ค. DIM values[1]์ ์ธ๋ฑ์ค 0๊ณผ 1์ ๋ง๋๋ฏ๋ก ๋ชจ๋ ๋์ ํ์ธ์. ์ข ๋ฅ์ ์์์ ๋ ๋ฆฝ์ ์ธ ์ ํ์ง์ด๋ฉฐ ๊ฐ์ ์ธ๋ฑ์ค๋ผ๋ฆฌ ์ง์ง์ง ์์ต๋๋ค. ์ด๋ ์์น๋ ์์ผ๋์นด๋๊ฐ ์๊ฑฐ๋ ์ข ๋ฅ/์์ ๋ฐฐ์ด์ด ๋น๋ฉด ํด๋น ํํฐ๊ฐ ์ฌ๋ผ์ง๋๋ค. ๋น ์ปจํ ์ด๋ ๋ฐฐ์ด์ ์์ ์ ์์ ํ์ ๋๋ค. ๋ฐ๋ณต๋๊ฑฐ๋ ๊ฒน์น๋ ์ปจํ ์ด๋๋ ID๋ฅผ ์ค๋ณต ์์ฑํ์ง ์์ต๋๋ค.
- ๋ค ์์น ์ธ์๊ฐ ๋ชจ๋ ํ์์ด๋ฉฐ ์๋ตํ ์ ์์ต๋๋ค.
- ์ง๋ฉด์ ์ด ์คํฌ๋ฆฝํธ์ FindDistance/FindVertical์ ์ ์ฉํ๊ณ self๋ฅผ ์ ์ธํ๋ฉฐ ์ผ์นํ๋ Item๊ณผ Mobile์ ํฌํจํฉ๋๋ค. ํน์ ์ปจํ ์ด๋์๋ ๊ฑฐ๋ฆฌ/๋์ด ์ ํ์ ์ ์ฉํ์ง ์์ต๋๋ค. ๋ ๋ฒ์ ๋ชจ๋ Ignore์ ํ๊ดด๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค.
- ์ํ ์ ์ FindItem, FindCount, FindFullQuantity, GetFoundItems๋ฅผ ๋น์๋๋ค. ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด 0๊ณผ ๋น ๋ฐฐ์ด์ด ๋จ์ต๋๋ค. FindFullQuantity๋ Item์ max(1, Amount)์ Mobile๋ง๋ค 1์ ๋ํฉ๋๋ค. FindQuantity๋ FindItem์ ํ์ฌ ์๋์ ์ฝ์ต๋๋ค. ๋ค์ ๊ฒ์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ ์ ํ์ํ GetFoundItems๋ฅผ ์ ์ฅํ์ธ์.
- Bridge๋ ๋ก๋๋ Item์ ํ ๋ฒ ์ํํ๊ณ , ์ง๋ฉด์ด๋ฉด Mobile๋ ์ํํฉ๋๋ค. ์ข ๋ฅ, ์์, ํ๋ ์ด์์ ์ปจํ ์ด๋๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ฐ์ฒด๋ง๋ค ํ ๋ฒ ๋ฑ๋กํ๋ฉฐ ์กฐํฉ๋ง๋ค ์ ์ฒด ์ธ๊ณ๋ฅผ ๋ค์ ๊ฒ์ํ์ง ์์ต๋๋ค.
- ์ด๋ฏธ ๋ฐ์ ๋ฐ์ดํฐ๋ง ์ฝ์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ์ด๊ฑฐ๋ ์ ์ ๋ก๋ํ๊ฑฐ๋ ๋ฌผ๊ฑด์ ์ฎ๊ธฐ์ง ์์ต๋๋ค. ๊ฒฐ๊ณผ๊ฐ ์๋ค๊ณ ์๋ฒ์ ์์๊ฐ ๋น์๋ค๊ณ ๋จ์ ํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ์ด ํ์ํ๋ฉด Connected๋ฅผ ๊ฒ์ฌํ์ธ์. ๊ฒ์ ์์ฒด๋ ๋ก์ปฌ ์ํ๋ฅผ ์ฝ์ต๋๋ค.
- Stealth FindTypesArrayEx. ์ฐธ๊ณ ๋ฌธ์๋ ๋ง์ง๋ง ID์ ์๋ชป๋ ์ปจํ ์ด๋์ ๋ฐฐ๋ญ ๋์ฒด๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฒซ ๋ก์ปฌ ๊ฒฐ๊ณผ๋ฅผ ์ ์งํ๊ณ ์ ์ ์๋ ์ด๋ฆ์ ๋ฐฐ๋ญ์ผ๋ก ๋ฐ๊พธ์ง ์์ต๋๋ค. Ground๋ 0๋ ํ์ฉํฉ๋๋ค. ๋ก์ปฌ FindDistance ๊ธฐ๋ณธ๊ฐ์ 18, ์ต๋๊ฐ์ 255์ ๋๋ค.
์ค์ ๊ตฌํ ๋จ๊ณ์ด๋ฉฐ ์ถ๊ฐ ๊ณต๊ฐ ๋ช ๋ น์ด ์๋๋๋ค. ์๋ FindGoldNearSelf์ SearchTypesIn์ ์ ์ฒด ์ ์๊ฐ ์ ๊ณต๋๋ ์คํฌ๋ฆฝํธ ํจ์์ ๋๋ค.
Runtime์ ์ซ์ ํํฐ๋ฅผ ๋ณํํ๊ณ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋ณ๋๋ก ํ์ธํฉ๋๋ค. ์ง๋ฉด ์ ํ์๋ bridge ๋ด๋ถ์ ์ธ๊ณ ๋ฒ์๋ก ๋ณํ๋ฉ๋๋ค.
๋ค ์์น ์ธ์๊ฐ ๋ชจ๋ ํ์์ด๋ฉฐ ์๋ตํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ExecuteStealthCompatibility.
์ง๋ฉด: UO.Ground(), 0, -1, 0xFFFFFFFF ๋๋ ๋ฌธ์์ด ground. ๋ฐฐ๋ญ: ๋ฌธ์์ด backpack ๋๋ ๊ทธ serial. ์ญ์ง์/hex serial๊ณผ AddObject ์ด๋ฆ๋ ๊ฐ๋ฅํฉ๋๋ค. my๋ ์ฅ๋น์ ์ค์ฒฉ ๊ฐ๋ฐฉ์ ํฌํจํ ์์ ์ ์ ์ฒด ์์ ํ์ ๋๋ค. ์ ์ ์๋ ์ด๋ฆ์ ์คํฌ๋ฆฝํธ ์ค๋ฅ์ ๋๋ค. ํ์ธํ serial์ ๊ฒ์ฌํ์ธ์. ๋ช ์์ ์ธ 0์ ์ง๋ฉด์ ์ ํํฉ๋๋ค. API๋ง๋ค ์ซ์ ์๋ฏธ๊ฐ ๋ฌ๋ผ ground/backpack ์ด๋ฆ์ด ๋ ๋ช ํํฉ๋๋ค.
Runtime์ ์ซ์ ํํฐ๋ฅผ ๋ณํํ๊ณ ์ปจํ ์ด๋ ์ด๋ฆ์ ๋ณ๋๋ก ํ์ธํฉ๋๋ค. ์ง๋ฉด ์ ํ์๋ bridge ๋ด๋ถ์ ์ธ๊ณ ๋ฒ์๋ก ๋ณํ๋ฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ConvertStealthSearchContainer.
์ํ ์ ์ FindItem, FindCount, FindFullQuantity, GetFoundItems๋ฅผ ๋น์๋๋ค. ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด 0๊ณผ ๋น ๋ฐฐ์ด์ด ๋จ์ต๋๋ค. FindFullQuantity๋ Item์ max(1, Amount)์ Mobile๋ง๋ค 1์ ๋ํฉ๋๋ค. FindQuantity๋ FindItem์ ํ์ฌ ์๋์ ์ฝ์ต๋๋ค. ๋ค์ ๊ฒ์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ ์ ํ์ํ GetFoundItems๋ฅผ ์ ์ฅํ์ธ์.
Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result = TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์ ๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ ResetFindResults.
Array๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋จ์ผ ๊ฐ๋ ํ ์์๋ก ํ์ฉํฉ๋๋ค. DIM values[1]์ ์ธ๋ฑ์ค 0๊ณผ 1์ ๋ง๋๋ฏ๋ก ๋ชจ๋ ๋์ ํ์ธ์. ์ข ๋ฅ์ ์์์ ๋ ๋ฆฝ์ ์ธ ์ ํ์ง์ด๋ฉฐ ๊ฐ์ ์ธ๋ฑ์ค๋ผ๋ฆฌ ์ง์ง์ง ์์ต๋๋ค. ์ด๋ ์์น๋ ์์ผ๋์นด๋๊ฐ ์๊ฑฐ๋ ์ข ๋ฅ/์์ ๋ฐฐ์ด์ด ๋น๋ฉด ํด๋น ํํฐ๊ฐ ์ฌ๋ผ์ง๋๋ค. ๋น ์ปจํ ์ด๋ ๋ฐฐ์ด์ ์์ ์ ์์ ํ์ ๋๋ค. ๋ฐ๋ณต๋๊ฑฐ๋ ๊ฒน์น๋ ์ปจํ ์ด๋๋ ID๋ฅผ ์ค๋ณต ์์ฑํ์ง ์์ต๋๋ค.
Bridge๋ ๋ก๋๋ Item์ ํ ๋ฒ ์ํํ๊ณ , ์ง๋ฉด์ด๋ฉด Mobile๋ ์ํํฉ๋๋ค. ์ข ๋ฅ, ์์, ํ๋ ์ด์์ ์ปจํ ์ด๋๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ฐ์ฒด๋ง๋ค ํ ๋ฒ ๋ฑ๋กํ๋ฉฐ ์กฐํฉ๋ง๋ค ์ ์ฒด ์ธ๊ณ๋ฅผ ๋ค์ ๊ฒ์ํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ BuildFindIdentityMask.
Bridge๋ ๋ก๋๋ Item์ ํ ๋ฒ ์ํํ๊ณ , ์ง๋ฉด์ด๋ฉด Mobile๋ ์ํํฉ๋๋ค. ์ข ๋ฅ, ์์, ํ๋ ์ด์์ ์ปจํ ์ด๋๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ฐ์ฒด๋ง๋ค ํ ๋ฒ ๋ฑ๋กํ๋ฉฐ ์กฐํฉ๋ง๋ค ์ ์ฒด ์ธ๊ณ๋ฅผ ๋ค์ ๊ฒ์ํ์ง ์์ต๋๋ค.
์ง๋ฉด์ ์ด ์คํฌ๋ฆฝํธ์ FindDistance/FindVertical์ ์ ์ฉํ๊ณ self๋ฅผ ์ ์ธํ๋ฉฐ ์ผ์นํ๋ Item๊ณผ Mobile์ ํฌํจํฉ๋๋ค. ํน์ ์ปจํ ์ด๋์๋ ๊ฑฐ๋ฆฌ/๋์ด ์ ํ์ ์ ์ฉํ์ง ์์ต๋๋ค. ๋ ๋ฒ์ ๋ชจ๋ Ignore์ ํ๊ดด๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ FindTypes.
Graphic/body์ด๋ฉฐ ๊ฐ์ฒด serial์ด ์๋๋๋ค. 0..65534๋ ํน์ ๊ทธ๋ํฝ, -1 ๋๋ 0xFFFF๋ ๋ชจ๋ ๊ทธ๋ํฝ์ ๋๋ค. ๋ค๋ฅธ ์์ Integer๋ ํํฐ๋ฅผ ํด์ ํฉ๋๋ค. Hue์ด๋ฉฐ ์๋์ด ์๋๋๋ค. 0์ ์ผ์ ์์, -1 ๋๋ 0xFFFF๋ ๋ชจ๋ ์์์ ๋๋ค. ๋ค๋ฅธ ์์ Integer๋ ์์ ํํฐ๋ฅผ ํด์ ํฉ๋๋ค.
Bridge๋ ๋ก๋๋ Item์ ํ ๋ฒ ์ํํ๊ณ , ์ง๋ฉด์ด๋ฉด Mobile๋ ์ํํฉ๋๋ค. ์ข ๋ฅ, ์์, ํ๋ ์ด์์ ์ปจํ ์ด๋๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค. ๊ฐ์ฒด๋ง๋ค ํ ๋ฒ ๋ฑ๋กํ๋ฉฐ ์กฐํฉ๋ง๋ค ์ ์ฒด ์ธ๊ณ๋ฅผ ๋ค์ ๊ฒ์ํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ MatchesFindIdentity.
ํ์ TRUE/FALSE(1/0). FALSE๋ ํน์ ์ปจํ ์ด๋์ ์ง์ ๋ด์ฉ๋ง, TRUE๋ ๋ก๋๋ ์ค์ฒฉ ๊ฐ๋ฐฉ๋ ๊ฒ์ํฉ๋๋ค. ์ง๋ฉด์๋ ์ํฅ์ด ์์ต๋๋ค. my๋ ์ด๋ฏธ ์ ์ฒด ์์ ํ์ ์ ํํฉ๋๋ค.
์ง๋ฉด์ ์ด ์คํฌ๋ฆฝํธ์ FindDistance/FindVertical์ ์ ์ฉํ๊ณ self๋ฅผ ์ ์ธํ๋ฉฐ ์ผ์นํ๋ Item๊ณผ Mobile์ ํฌํจํฉ๋๋ค. ํน์ ์ปจํ ์ด๋์๋ ๊ฑฐ๋ฆฌ/๋์ด ์ ํ์ ์ ์ฉํ์ง ์์ต๋๋ค. ๋ ๋ฒ์ ๋ชจ๋ Ignore์ ํ๊ดด๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ MatchesFindContainer.
์ํ ์ ์ FindItem, FindCount, FindFullQuantity, GetFoundItems๋ฅผ ๋น์๋๋ค. ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด 0๊ณผ ๋น ๋ฐฐ์ด์ด ๋จ์ต๋๋ค. FindFullQuantity๋ Item์ max(1, Amount)์ Mobile๋ง๋ค 1์ ๋ํฉ๋๋ค. FindQuantity๋ FindItem์ ํ์ฌ ์๋์ ์ฝ์ต๋๋ค. ๋ค์ ๊ฒ์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ ์ ํ์ํ GetFoundItems๋ฅผ ์ ์ฅํ์ธ์.
Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result = TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์ ๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ RegisterFound.
์ด๋ฏธ ๋ฐ์ ๋ฐ์ดํฐ๋ง ์ฝ์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ์ด๊ฑฐ๋ ์ ์ ๋ก๋ํ๊ฑฐ๋ ๋ฌผ๊ฑด์ ์ฎ๊ธฐ์ง ์์ต๋๋ค. ๊ฒฐ๊ณผ๊ฐ ์๋ค๊ณ ์๋ฒ์ ์์๊ฐ ๋น์๋ค๊ณ ๋จ์ ํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ์ด ํ์ํ๋ฉด Connected๋ฅผ ๊ฒ์ฌํ์ธ์. ๊ฒ์ ์์ฒด๋ ๋ก์ปฌ ์ํ๋ฅผ ์ฝ์ต๋๋ค.
# ์ง๋ฉด์ ๋ ๊ทธ๋ํฝ
#
# ์ฌ๋ฌ ๊ทธ๋ํฝ, ์์, ์ปจํ
์ด๋๋ฅผ ํ ๋ฒ ์ํํ์ฌ ID ํ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ GetFoundItems๋ก ์ฝ์ต๋๋ค.
#
# Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result =
# TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์
๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
SUB Main()
# types๋ ๊ธํ 0x0EED์ ํ์ง์ฃผ 0x0F7A, color=-1์ ๋ชจ๋ ์์, Ground๋ ์ธ๊ณ์
๋๋ค. FALSE๋ ์ง๋ฉด์ ์ํฅ์ด ์์ต๋๋ค. ํ์ฌ ๊ฒ์ ์ ํ์
# ์ ์ฉํ๋ฉฐ ID, ๊ฐ์ฒด ์, ๋จ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
DIM types[1]
types[0] = 0x0EED
types[1] = 0x0F7A
DIM colors[0]
colors[0] = -1
DIM containers[0]
containers[0] = UO.Ground()
VAR first = UO.FindTypesArrayEx(types, colors, containers, FALSE)
UO.Print(Hex(first))
UO.Print(STR(UO.FindCount()))
UO.Print(STR(UO.FindFullQuantity()))
END SUB๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- types๋ ๊ธํ 0x0EED์ ํ์ง์ฃผ 0x0F7A, color=-1์ ๋ชจ๋ ์์, Ground๋ ์ธ๊ณ์ ๋๋ค. FALSE๋ ์ง๋ฉด์ ์ํฅ์ด ์์ต๋๋ค. ํ์ฌ ๊ฒ์ ์ ํ์ ์ ์ฉํ๋ฉฐ ID, ๊ฐ์ฒด ์, ๋จ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
# ๋ฐฐ๋ญ๊ณผ ์ง๋ฉด์ ๊ธํ
#
# ์ฌ๋ฌ ๊ทธ๋ํฝ, ์์, ์ปจํ
์ด๋๋ฅผ ํ ๋ฒ ์ํํ์ฌ ID ํ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ GetFoundItems๋ก ์ฝ์ต๋๋ค.
#
# Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result =
# TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์
๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
SUB Main()
# types๋ ๊ธํ๋ง, colors๋ ๋ชจ๋ hue์
๋๋ค. Containers๋ backpack๊ณผ ์ง๋ฉด์ด๊ณ TRUE๋ ์ค์ฒฉ ๊ฐ๋ฐฉ์ ํฌํจํฉ๋๋ค. ์์ชฝ ๋ฒ์์ ๊ฐ์ฒด/์คํ๊ณผ
# ๋จ์๋ฅผ ์ค๋ณต ์์ด ์ถ๋ ฅํฉ๋๋ค.
DIM types[0]
types[0] = 0x0EED
DIM colors[0]
colors[0] = -1
DIM containers[1]
containers[0] = 'backpack'
containers[1] = UO.Ground()
UO.FindTypesArrayEx(types, colors, containers, TRUE)
UO.Print(STR(UO.FindCount()))
UO.Print(STR(UO.FindFullQuantity()))
END SUB๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- types๋ ๊ธํ๋ง, colors๋ ๋ชจ๋ hue์ ๋๋ค. Containers๋ backpack๊ณผ ์ง๋ฉด์ด๊ณ TRUE๋ ์ค์ฒฉ ๊ฐ๋ฐฉ์ ํฌํจํฉ๋๋ค. ์์ชฝ ๋ฒ์์ ๊ฐ์ฒด/์คํ๊ณผ ๋จ์๋ฅผ ์ค๋ณต ์์ด ์ถ๋ ฅํฉ๋๋ค.
# ์ ์ฅํ ๋ชฉ๋ก์ ๋ฐํํ๋ ์์ ํ ํจ์
#
# ์ฌ๋ฌ ๊ทธ๋ํฝ, ์์, ์ปจํ
์ด๋๋ฅผ ํ ๋ฒ ์ํํ์ฌ ID ํ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ GetFoundItems๋ก ์ฝ์ต๋๋ค.
#
# Integer: ๋ก์ปฌ ์ํ์์ ์ฒ์ ์ผ์นํ serial, ์์ผ๋ฉด 0. ๊ทธ๋ํฝ, ์๋, ๋ฐฐ์ด, Boolean์ด ์๋๋๋ค. result <> 0์ ๊ฒ์ฌํ๊ณ result =
# TRUE ๋๋ result = 1์ ์ฌ์ฉํ์ง ๋ง์ธ์. ํ ์คํ์ ํ ๊ฐ์ฒด, Mobile์ ํ ๊ฐ์ฒด์ด์ ํ ๋จ์์
๋๋ค. ์์๋ ๊ฑฐ๋ฆฌ์์ด ์๋๋ฉฐ ํญ์ ์ผ์ ํ์ง ์์ต๋๋ค.
SUB Main()
# SearchTypesIn(container,firstType,secondType)์ Array<Integer>๋ฅผ ๋ฐํํ์ง๋ง ๋ด์ฅ ๋ช
๋ น์ ๋จ์ผ Integer ID๋ฅผ
# ๋ฐํํฉ๋๋ค. ์ ์ฒด ํจ์๊ฐ ๋ฐฐ์ด์ ์ฑ์ฐ๊ณ ์ฌ๊ท ๊ฒ์ ํ ์ฆ์ GetFoundItems๋ฅผ ๋ณต์ฌํฉ๋๋ค. Main์ ์ ์ฅํ ID๋ฅผ ๊ฒ์ฌํ๊ณ ์ถ๋ ฅํฉ๋๋ค.
VAR items = SearchTypesIn('backpack', 0x0EED, 0x0F7A)
FOR EACH item IN items
IF UO.IsObjectExists(item) THEN
UO.Print(Hex(item))
END IF
NEXT
END SUB
FUNCTION SearchTypesIn(container, firstType, secondType)
DIM types[1]
types[0] = firstType
types[1] = secondType
DIM colors[0]
colors[0] = -1
DIM containers[0]
containers[0] = container
UO.FindTypesArrayEx(types, colors, containers, TRUE)
RETURN UO.GetFoundItems()
END FUNCTION๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- SearchTypesIn(container,firstType,secondType)์ Array๋ฅผ ๋ฐํํ์ง๋ง ๋ด์ฅ ๋ช ๋ น์ ๋จ์ผ Integer ID๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฒด ํจ์๊ฐ ๋ฐฐ์ด์ ์ฑ์ฐ๊ณ ์ฌ๊ท ๊ฒ์ ํ ์ฆ์ GetFoundItems๋ฅผ ๋ณต์ฌํฉ๋๋ค. Main์ ์ ์ฅํ ID๋ฅผ ๊ฒ์ฌํ๊ณ ์ถ๋ ฅํฉ๋๋ค.