API UO FindAtCoord ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.FindAtCoord

ClassicUO โ€ข Runtime API

ํ˜„์žฌ ์ง€๋„์—์„œ ์ •ํ™•ํ•œ X/Y ์นธ์— ๋กœ๋“œ๋œ ์›”๋“œ ๊ฐ์ฒด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ๊ตฌ๋ฌธ

UO.FindAtCoord(X:Any, Y:Any) -> Integer

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

  • X โ€” ์›”๋“œ ๊ฐ€๋กœ ์ขŒํ‘œ, Integer 0..65535. ํ•„์ˆ˜์ด๋ฉฐ ์ปจํ…Œ์ด๋„ˆ ์ฐฝ์˜ ํ”ฝ์…€ ์ขŒํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • Y โ€” ์›”๋“œ ์„ธ๋กœ ์ขŒํ‘œ, Integer 0..65535. ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. Z, ์ง€๋„, ํƒ€์ž…, ๋ฐ˜๊ฒฝ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ธ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

Integer: ์ด ํด๋ผ์ด์–ธํŠธ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ์ฒ˜์Œ ์ผ์น˜ํ•œ ๊ฐ์ฒด์˜ serial. ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜, ์ขŒํ‘œ๊ฐ€ 0..65535 ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด 0์ž…๋‹ˆ๋‹ค. ํƒ€์ž…, ์ˆ˜๋Ÿ‰, Boolean์ด ์•„๋‹Œ ๊ฐ์ฒด ID์ž…๋‹ˆ๋‹ค. 32๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฏ€๋กœ = TRUE ๋˜๋Š” > 0 ๋Œ€์‹  <> 0์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ID๊ฐ€ FindItem()์ด ๋ฉ๋‹ˆ๋‹ค.

๋™์ž‘

  • ์ œ๊ฑฐ๋˜์ง€ ์•Š์€ ์ง€๋ฉด Item๊ณผ Mobile์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ ํ•ด๋‹น ์นธ์˜ ํ”Œ๋ ˆ์ด์–ด๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋‚ด์šฉ๋ฌผ๊ณผ ์žฅ์ฐฉ ์•„์ดํ…œ์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์˜ X/Y๋Š” ์›”๋“œ ์ขŒํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Ignore ๋ชฉ๋ก์˜ serial๋„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ •ํ™•ํ•œ X/Y์— ์žˆ๋Š” ๋ชจ๋“  Z ๋†’์ด๊ฐ€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. FindDistance์™€ FindVertical์€ ์ด ๊ฒ€์ƒ‰์„ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์›”๋“œ์— ๋กœ๋“œ๋œ ๊ฐ์ฒด๋งŒ ๋ณด๋ฉฐ ์ง€ํ˜•, ์ •์  ํƒ€์ผ, ๋‹ค๋ฅธ ์ง€๋„๋Š” ๋กœ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท ์ „์†ก, ํƒ€๊นƒ ์ปค์„œ ์—ด๊ธฐ, ์•„์ดํ…œ ์ด๋™์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ด์ „ ๊ฒ€์ƒ‰์„ ๋จผ์ € ์ง€์›๋‹ˆ๋‹ค. FindCount()๋Š” ๊ฐ์ฒด ์ˆ˜, FindFullQuantity()๋Š” ์Šคํƒ ๋‹จ์œ„ ํ•ฉ๊ณ„(Mobile์€ ํ•˜๋‚˜), GetFoundItems()๋Š” serial ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. Item ๋‹ค์Œ Mobile์„ ๊ฐ ์ปฌ๋ ‰์…˜์˜ ํ˜„์žฌ ์—ด๊ฑฐ ์ˆœ์„œ๋กœ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฒ€์ƒ‰์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์ „์— ๋ชฉ๋ก์„ ์ €์žฅํ•˜์„ธ์š”.
  • ์ฐธ๊ณ : Stealth FindAtCoord. ์œ„ ์ˆœ์„œ์™€ ํ•„ํ„ฐ๋Š” ์ด ํด๋ผ์ด์–ธํŠธ์˜ ๊ตฌํ˜„์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ํ•จ์ˆ˜: ํ˜ธ์ถœ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๊นŒ์ง€

์‹ค์ œ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. CountGraphicAt๋Š” ์™„์ „ํžˆ ์ •์˜๋œ ์Šคํฌ๋ฆฝํŠธ ๋ณด์กฐ ํ•จ์ˆ˜์ด๋ฉฐ ์ถ”๊ฐ€ ๋‚ด์žฅ ๋ช…๋ น์ด ์•„๋‹™๋‹ˆ๋‹ค.

1. ExecuteStealthCompatibility

๋“ฑ๋ก๋œ ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ ๋‘ ์œ„์น˜ ์ธ์ˆ˜ ๋˜๋Š” ์ด๋ฆ„ ์žˆ๋Š” X/Y ์ธ์ˆ˜๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฉฐ ๋ธŒ๋ฆฌ์ง€์˜ Integer๊ฐ€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

Integer: ์ด ํด๋ผ์ด์–ธํŠธ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ์ฒ˜์Œ ์ผ์น˜ํ•œ ๊ฐ์ฒด์˜ serial. ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜, ์ขŒํ‘œ๊ฐ€ 0..65535 ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด 0์ž…๋‹ˆ๋‹ค. ํƒ€์ž…, ์ˆ˜๋Ÿ‰, Boolean์ด ์•„๋‹Œ ๊ฐ์ฒด ID์ž…๋‹ˆ๋‹ค. 32๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฏ€๋กœ = TRUE ๋˜๋Š” > 0 ๋Œ€์‹  <> 0์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ID๊ฐ€ FindItem()์ด ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์†Œ์Šค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํ•จ์ˆ˜ ExecuteStealthCompatibility.

2. FindAtCoord

๊ฒŒ์ž„ ์Šค๋ ˆ๋“œ์—์„œ ์ด์ „ ๊ฒฐ๊ณผ๋ฅผ ์ง€์šฐ๊ณ  ํ”Œ๋ ˆ์ด์–ด์™€ ์ขŒํ‘œ ๋ฒ”์œ„๋ฅผ ๊ฒ€์‚ฌํ•œ ํ›„ ์ผ์น˜ํ•˜๋Š” ์ง€๋ฉด Item๊ณผ Mobile๋งŒ ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋‚ด์šฉ๋ฌผ์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฑฐ๋˜์ง€ ์•Š์€ ์ง€๋ฉด Item๊ณผ Mobile์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ ํ•ด๋‹น ์นธ์˜ ํ”Œ๋ ˆ์ด์–ด๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋‚ด์šฉ๋ฌผ๊ณผ ์žฅ์ฐฉ ์•„์ดํ…œ์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์˜ X/Y๋Š” ์›”๋“œ ์ขŒํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Ignore ๋ชฉ๋ก์˜ serial๋„ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์†Œ์Šค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํ•จ์ˆ˜ FindAtCoord.

3. RegisterFound

์ผ์น˜ํ•œ ๊ฐ์ฒด๋งˆ๋‹ค ๊ฐœ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  serial์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ serial์€ FindItem์œผ๋กœ ๋‚จ์œผ๋ฉฐ Item.Amount๋Š” ์ตœ์†Œ ํ•œ ๋‹จ์œ„, Mobile์€ ํ•œ ๋‹จ์œ„๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ด์ „ ๊ฒ€์ƒ‰์„ ๋จผ์ € ์ง€์›๋‹ˆ๋‹ค. FindCount()๋Š” ๊ฐ์ฒด ์ˆ˜, FindFullQuantity()๋Š” ์Šคํƒ ๋‹จ์œ„ ํ•ฉ๊ณ„(Mobile์€ ํ•˜๋‚˜), GetFoundItems()๋Š” serial ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. Item ๋‹ค์Œ Mobile์„ ๊ฐ ์ปฌ๋ ‰์…˜์˜ ํ˜„์žฌ ์—ด๊ฑฐ ์ˆœ์„œ๋กœ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฒ€์ƒ‰์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์ „์— ๋ชฉ๋ก์„ ์ €์žฅํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ์†Œ์Šค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํ•จ์ˆ˜ RegisterFound.

์ •ํ™•ํ•œ X/Y์— ์žˆ๋Š” ๋ชจ๋“  Z ๋†’์ด๊ฐ€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. FindDistance์™€ FindVertical์€ ์ด ๊ฒ€์ƒ‰์„ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์›”๋“œ์— ๋กœ๋“œ๋œ ๊ฐ์ฒด๋งŒ ๋ณด๋ฉฐ ์ง€ํ˜•, ์ •์  ํƒ€์ผ, ๋‹ค๋ฅธ ์ง€๋„๋Š” ๋กœ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท ์ „์†ก, ํƒ€๊นƒ ์ปค์„œ ์—ด๊ธฐ, ์•„์ดํ…œ ์ด๋™์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

๊ฐ์ฒด ID ํ•˜๋‚˜ ์ฝ๊ธฐ

# ๊ฐ์ฒด ID ํ•˜๋‚˜ ์ฝ๊ธฐ
#
# ํ˜„์žฌ ์ง€๋„์—์„œ ์ •ํ™•ํ•œ X/Y ์นธ์— ๋กœ๋“œ๋œ ์›”๋“œ ๊ฐ์ฒด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
#
# Integer: ์ด ํด๋ผ์ด์–ธํŠธ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ์ฒ˜์Œ ์ผ์น˜ํ•œ ๊ฐ์ฒด์˜ serial. ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜, ์ขŒํ‘œ๊ฐ€ 0..65535 ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด
# 0์ž…๋‹ˆ๋‹ค. ํƒ€์ž…, ์ˆ˜๋Ÿ‰, Boolean์ด ์•„๋‹Œ ๊ฐ์ฒด ID์ž…๋‹ˆ๋‹ค. 32๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฏ€๋กœ = TRUE ๋˜๋Š” > 0 ๋Œ€์‹  <> 0์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ID๊ฐ€
# FindItem()์ด ๋ฉ๋‹ˆ๋‹ค.

SUB Main()
    # 1445์™€ 1690์€ ์›”๋“œ X/Y ์˜ˆ์‹œ์ด๋ฏ€๋กœ ์›ํ•˜๋Š” ์นธ์œผ๋กœ ๋ฐ”๊พธ์„ธ์š”. id๋Š” serial์„ ์ €์žฅํ•˜๊ณ  HEX๋Š” ํ˜•์‹์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. <> 0์€ ๊ฒฐ๊ณผ ์กด์žฌ ์—ฌ๋ถ€์ด๋ฉฐ ์ˆ˜๋Ÿ‰์ด
    # ์•„๋‹™๋‹ˆ๋‹ค.

    VAR id = UO.FindAtCoord(1445, 1690)
    IF id <> 0 THEN
        UO.Print(HEX(id))
    ELSE
        UO.Print('No loaded object')
    END IF
END SUB

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

  • 1445์™€ 1690์€ ์›”๋“œ X/Y ์˜ˆ์‹œ์ด๋ฏ€๋กœ ์›ํ•˜๋Š” ์นธ์œผ๋กœ ๋ฐ”๊พธ์„ธ์š”. id๋Š” serial์„ ์ €์žฅํ•˜๊ณ  HEX๋Š” ํ˜•์‹์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. <> 0์€ ๊ฒฐ๊ณผ ์กด์žฌ ์—ฌ๋ถ€์ด๋ฉฐ ์ˆ˜๋Ÿ‰์ด ์•„๋‹™๋‹ˆ๋‹ค.

ํ”Œ๋ ˆ์ด์–ด ์นธ์˜ ๋ชจ๋“  ๊ฐ์ฒด ํ™•์ธ

# ํ”Œ๋ ˆ์ด์–ด ์นธ์˜ ๋ชจ๋“  ๊ฐ์ฒด ํ™•์ธ
#
# ํ˜„์žฌ ์ง€๋„์—์„œ ์ •ํ™•ํ•œ X/Y ์นธ์— ๋กœ๋“œ๋œ ์›”๋“œ ๊ฐ์ฒด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
#
# Integer: ์ด ํด๋ผ์ด์–ธํŠธ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ์ฒ˜์Œ ์ผ์น˜ํ•œ ๊ฐ์ฒด์˜ serial. ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜, ์ขŒํ‘œ๊ฐ€ 0..65535 ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด
# 0์ž…๋‹ˆ๋‹ค. ํƒ€์ž…, ์ˆ˜๋Ÿ‰, Boolean์ด ์•„๋‹Œ ๊ฐ์ฒด ID์ž…๋‹ˆ๋‹ค. 32๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฏ€๋กœ = TRUE ๋˜๋Š” > 0 ๋Œ€์‹  <> 0์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ID๊ฐ€
# FindItem()์ด ๋ฉ๋‹ˆ๋‹ค.

SUB Main()
    # x/y๋Š” ํ”Œ๋ ˆ์ด์–ด์—์„œ ์ฝ๊ณ  ids๋Š” ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ID๋Š” ์Šคํƒ ์ „์ฒด๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐ์ฒด ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. GetType(id)๋Š” graphic/body๋ฅผ
    # ์ฝ์Šต๋‹ˆ๋‹ค. ์•„์ดํ…œ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    VAR x = UO.GetX('self')
    VAR y = UO.GetY('self')
    UO.FindAtCoord(x, y)
    VAR ids = UO.GetFoundItems()
    FOR EACH id IN ids
        UO.Print(HEX(id) + ' type=' + HEX(UO.GetType(id)))
    NEXT
END SUB

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

  • x/y๋Š” ํ”Œ๋ ˆ์ด์–ด์—์„œ ์ฝ๊ณ  ids๋Š” ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ID๋Š” ์Šคํƒ ์ „์ฒด๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐ์ฒด ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. GetType(id)๋Š” graphic/body๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค. ์•„์ดํ…œ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์™„์ „ํ•œ CountGraphicAt ๋ณด์กฐ ํ•จ์ˆ˜

# ์™„์ „ํ•œ CountGraphicAt ๋ณด์กฐ ํ•จ์ˆ˜
#
# ํ˜„์žฌ ์ง€๋„์—์„œ ์ •ํ™•ํ•œ X/Y ์นธ์— ๋กœ๋“œ๋œ ์›”๋“œ ๊ฐ์ฒด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
#
# Integer: ์ด ํด๋ผ์ด์–ธํŠธ ๊ฒฐ๊ณผ ๋ชฉ๋ก์—์„œ ์ฒ˜์Œ ์ผ์น˜ํ•œ ๊ฐ์ฒด์˜ serial. ๊ฒฐ๊ณผ๊ฐ€ ์—†๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜์—ˆ๊ฑฐ๋‚˜, ์ขŒํ‘œ๊ฐ€ 0..65535 ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด
# 0์ž…๋‹ˆ๋‹ค. ํƒ€์ž…, ์ˆ˜๋Ÿ‰, Boolean์ด ์•„๋‹Œ ๊ฐ์ฒด ID์ž…๋‹ˆ๋‹ค. 32๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฏ€๋กœ = TRUE ๋˜๋Š” > 0 ๋Œ€์‹  <> 0์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ID๊ฐ€
# FindItem()์ด ๋ฉ๋‹ˆ๋‹ค.

SUB Main()
    # CountGraphicAt(x, y, graphic)๋Š” ํ•œ ๋ฒˆ ๊ฒ€์ƒ‰ํ•œ ๋’ค ์ €์žฅํ•œ ID๋ฅผ ์ˆœํšŒํ•˜์—ฌ ํ•ด๋‹น ๊ทธ๋ž˜ํ”ฝ์˜ ๊ฐ์ฒด๋ฅผ ์…‰๋‹ˆ๋‹ค. graphic=0x0EED๋Š” ๊ธˆํ™”์ž…๋‹ˆ๋‹ค.
    # ๋ฐ˜ํ™˜๊ฐ’์€ ๊ฐ์ฒด/์Šคํƒ ์ˆ˜์ด๋ฉฐ ๋‹จ์œ„ ์ดํ•ฉ์ด๋‚˜ true/false๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์Šคํƒ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜๋กœ ์…‰๋‹ˆ๋‹ค. Main ์•„๋ž˜์— ์ „์ฒด ์ •์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    VAR count = CountGraphicAt(1445, 1690, 0x0EED)
    UO.Print('Objects/stacks: ' + CStr(count))
END SUB

FUNCTION CountGraphicAt(x, y, graphic)
    UO.FindAtCoord(x, y)
    VAR ids = UO.GetFoundItems()
    VAR count = 0
    FOR EACH id IN ids
        IF UO.GetType(id) = graphic THEN
            count += 1
        END IF
    NEXT
    RETURN count
END FUNCTION

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

  • CountGraphicAt(x, y, graphic)๋Š” ํ•œ ๋ฒˆ ๊ฒ€์ƒ‰ํ•œ ๋’ค ์ €์žฅํ•œ ID๋ฅผ ์ˆœํšŒํ•˜์—ฌ ํ•ด๋‹น ๊ทธ๋ž˜ํ”ฝ์˜ ๊ฐ์ฒด๋ฅผ ์…‰๋‹ˆ๋‹ค. graphic=0x0EED๋Š” ๊ธˆํ™”์ž…๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์€ ๊ฐ์ฒด/์Šคํƒ ์ˆ˜์ด๋ฉฐ ๋‹จ์œ„ ์ดํ•ฉ์ด๋‚˜ true/false๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์Šคํƒ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜๋กœ ์…‰๋‹ˆ๋‹ค. Main ์•„๋ž˜์— ์ „์ฒด ์ •์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

en ยท ru ยท uk ยท fr ยท de ยท it ยท es ยท zh-tw ยท ja ยท ko

Basic