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

UO.TradeContainer

ClassicUO โ€ข Runtime API

๋‚ด ๊ฑฐ๋ž˜ ์ปจํ…Œ์ด๋„ˆ serial์„ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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

UO.TradeContainer(windowIndex:Any) -> String

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

  • windowIndex โ€” ํ˜„์žฌ ์ •์ˆ˜ ์ฐฝ ์ธ๋ฑ์Šค: 0..TradeCount()-1. ์Œ์ˆ˜/์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค๋Š” ๋นˆ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. serial์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

String: "0x40000011" ๊ฐ™์€ 16์ง„์ˆ˜ ID์ด๋ฉฐ ์—†์œผ๋ฉด "0x00000000"์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ Boolean์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋™์ž‘

  • GetTradeContainer/GetTradeOpponent/GetTradeOpponentName/ConfirmTrade/CancelTrade๋Š” 1๋ถ€ํ„ฐ, TradeContainer/TradeOpponent/TradeName๊ณผ ๋ชจ๋“  TradeCheck ํ˜•์‹์€ 0๋ถ€ํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ๊ทœ์น™์„ ์œ ์ง€ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์—”์ง„์˜ ์™ธ๋ถ€ ์„ค๋ช…์„œ๋Š” ์‹œ์ž‘์ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ž„ ์Šค๋ ˆ๋“œ์—์„œ ํ˜„์žฌ World์˜ ์—ด๋ฆฐ ์ฐฝ์„ ์ฝ์œผ๋ฉฐ ๋‹ซํžŒ ์ฐฝ์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ๋Š” ํŒจํ‚ท์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ด๊ธฐ, ๋‹ซ๊ธฐ, ์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ UI ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฏ€๋กœ ์ธ๋ฑ์Šค๋Š” ์˜๊ตฌ ID๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ConfirmTrade์™€ ๋‚ด TradeCheck ์“ฐ๊ธฐ๋Š” ๋™์˜๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ์ฒดํฌ๋Š” ์„œ๋ฒ„๊ฐ€ ์ œ์–ดํ•˜๋ฉฐ CancelTrade๋Š” ํ•œ ๋ฒˆ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. 1/TRUE๋Š” ๋กœ์ปฌ ์ƒํƒœ/์ฒ˜๋ฆฌ์ด๋ฉฐ ์ด์ „ ์™„๋ฃŒ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ์–‘์ชฝ ์ฒดํฌ๋งŒ์œผ๋กœ ์•„์ดํ…œ์ด ๊ทธ๋Œ€๋กœ์ž„์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์•„๋ž˜์—์„œ C# ํ˜ธ์ถœ ๊ฒฝ๋กœ๋ฅผ ์„ค๋ช…ํ•œ ๋’ค ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ Basic ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

1. TradeContainer

๋“ฑ๋ก์€ ์ธ์ˆ˜ ์ˆ˜๋กœ ํ˜•์‹์„ ์„ ํƒํ•˜๊ณ  NumberConversions๋Š” ์ˆซ์ž๋ฅผ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ˆ˜ 2๊ฐœ TradeCheck๋Š” ์ธก 1/2๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ bridge์˜ 0/1๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด serial์€ ToHex๋กœ ํ˜•์‹ํ™”ํ•ฉ๋‹ˆ๋‹ค.

String: "0x40000011" ๊ฐ™์€ 16์ง„์ˆ˜ ID์ด๋ฉฐ ์—†์œผ๋ฉด "0x00000000"์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ Boolean์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

2. TradeContainer

Invoke๋Š” ์Šคํฌ๋ฆฝํŠธ ์ทจ์†Œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ๊ฒŒ์ž„ ์Šค๋ ˆ๋“œ๋กœ ์˜ฎ๊ธฐ๋ฉฐ ์„ ํƒํ•œ TradingGump์˜ ID1/ID2, LocalSerial, OpponentName ๋˜๋Š” ์ฒดํฌ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ฑฐ๋ž˜ ์ปจํ…Œ์ด๋„ˆ serial์„ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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

3. FindTrade

FindNumberedTrade๋Š” 1์„ ๋นผ๊ธฐ ์ „์— number>0์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ FindTrade๋Š” ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  ํ˜„์žฌ World์˜ ์—ด๋ฆฐ TradingGump๋งŒ ์—ด๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

GetTradeContainer/GetTradeOpponent/GetTradeOpponentName/ConfirmTrade/CancelTrade๋Š” 1๋ถ€ํ„ฐ, TradeContainer/TradeOpponent/TradeName๊ณผ ๋ชจ๋“  TradeCheck ํ˜•์‹์€ 0๋ถ€ํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ๊ทœ์น™์„ ์œ ์ง€ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์—”์ง„์˜ ์™ธ๋ถ€ ์„ค๋ช…์„œ๋Š” ์‹œ์ž‘์ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ณด์กฐ ํ•จ์ˆ˜๋Š” ๋ชจ๋‘ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ Main์—์„œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„/ID ๊ฒ€์‚ฌ๋Š” ์‹ค์ˆ˜๋ฅผ ์ค„์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์€ ์›์ž์ ์ด์ง€ ์•Š์•„ ์ค‘๊ฐ„์— ์ฐฝ์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. expectedPartner๋Š” ์ €์žฅํ•œ ์บ๋ฆญํ„ฐ serial์ด๋ฉฐ ๊ฐ€๊ฒฉ/๋‚ด์šฉ ๊ฒ€์ฆ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ์ œ

์ง์ ‘ ์ฝ๊ธฐ ๋˜๋Š” ๋™์ž‘

# ์ง์ ‘ ์ฝ๊ธฐ ๋˜๋Š” ๋™์ž‘
#
# ๋‚ด ๊ฑฐ๋ž˜ ์ปจํ…Œ์ด๋„ˆ serial์„ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
#
# String: "0x40000011" ๊ฐ™์€ 16์ง„์ˆ˜ ID์ด๋ฉฐ ์—†์œผ๋ฉด "0x00000000"์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ Boolean์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

SUB Main()
    # ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ value/result์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ์ธ๋ฑ์Šค๋Š” 0, ์ฒซ ๋ฒˆํ˜ธ๋Š” 1์ž…๋‹ˆ๋‹ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋Š” ์ˆซ์ž serial, CStr์€ ์ˆ˜๋‚˜ ํ…์ŠคํŠธ๋ฅผ
    # ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

    VAR value = UO.TradeContainer(0)
    UO.Print(CStr(value))
END SUB

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

  • ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ value/result์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ์ธ๋ฑ์Šค๋Š” 0, ์ฒซ ๋ฒˆํ˜ธ๋Š” 1์ž…๋‹ˆ๋‹ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋Š” ์ˆซ์ž serial, CStr์€ ์ˆ˜๋‚˜ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ƒํ™ฉ๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜

# ๋‹ค๋ฅธ ์ƒํ™ฉ๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜
#
# ๋‚ด ๊ฑฐ๋ž˜ ์ปจํ…Œ์ด๋„ˆ serial์„ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
#
# String: "0x40000011" ๊ฐ™์€ 16์ง„์ˆ˜ ID์ด๋ฉฐ ์—†์œผ๋ฉด "0x00000000"์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ Boolean์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

SUB Main()
    # total์€ ์ €์žฅํ•œ ์ฐฝ ์ˆ˜์ด๊ณ  index๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค/๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์—ด๊ฑฐ๋Š” ๊ฑฐ๋ž˜๋ฅผ ์Šน์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. GetTradeContainer ์˜ˆ์ œ๋Š” ์ฐฝ 1์˜ ๋‚ด ์ปจํ…Œ์ด๋„ˆ
    # (1)์™€ ์ƒ๋Œ€ ์ปจํ…Œ์ด๋„ˆ (2)๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

    VAR total = UO.TradeCount()
    FOR VAR index = 0 TO total - 1
        VAR value = UO.TradeContainer(index)
        UO.Print(CStr(index) + ": " + CStr(value))
    NEXT
END SUB

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

  • total์€ ์ €์žฅํ•œ ์ฐฝ ์ˆ˜์ด๊ณ  index๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค/๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์—ด๊ฑฐ๋Š” ๊ฑฐ๋ž˜๋ฅผ ์Šน์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. GetTradeContainer ์˜ˆ์ œ๋Š” ์ฐฝ 1์˜ ๋‚ด ์ปจํ…Œ์ด๋„ˆ (1)์™€ ์ƒ๋Œ€ ์ปจํ…Œ์ด๋„ˆ (2)๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

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

# ์™„์ „ํ•œ ๋ณด์กฐ ํ•จ์ˆ˜
#
# ๋‚ด ๊ฑฐ๋ž˜ ์ปจํ…Œ์ด๋„ˆ serial์„ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
#
# String: "0x40000011" ๊ฐ™์€ 16์ง„์ˆ˜ ID์ด๋ฉฐ ์—†์œผ๋ฉด "0x00000000"์ž…๋‹ˆ๋‹ค. ๋‚ด ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ Boolean์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹™๋‹ˆ๋‹ค.

SUB Main()
    # ๋ณด์กฐ ํ•จ์ˆ˜๋Š” ๋ชจ๋‘ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ Main์—์„œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„/ID ๊ฒ€์‚ฌ๋Š” ์‹ค์ˆ˜๋ฅผ ์ค„์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์€ ์›์ž์ ์ด์ง€ ์•Š์•„ ์ค‘๊ฐ„์— ์ฐฝ์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    # expectedPartner๋Š” ์ €์žฅํ•œ ์บ๋ฆญํ„ฐ serial์ด๋ฉฐ ๊ฐ€๊ฒฉ/๋‚ด์šฉ ๊ฒ€์ฆ์€ ์•„๋‹™๋‹ˆ๋‹ค.

    VAR value = ReadTradeValue(0)
    UO.Print(CStr(value))
END SUB

FUNCTION ReadTradeValue(index)
    VAR total = UO.TradeCount()
    IF index < 0 OR index >= total + 0 THEN
        RETURN "0x00000000"
    END IF
    RETURN UO.TradeContainer(index)
END FUNCTION

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

  • ๋ณด์กฐ ํ•จ์ˆ˜๋Š” ๋ชจ๋‘ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ Main์—์„œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„/ID ๊ฒ€์‚ฌ๋Š” ์‹ค์ˆ˜๋ฅผ ์ค„์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์€ ์›์ž์ ์ด์ง€ ์•Š์•„ ์ค‘๊ฐ„์— ์ฐฝ์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. expectedPartner๋Š” ์ €์žฅํ•œ ์บ๋ฆญํ„ฐ serial์ด๋ฉฐ ๊ฐ€๊ฒฉ/๋‚ด์šฉ ๊ฒ€์ฆ์€ ์•„๋‹™๋‹ˆ๋‹ค.

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

Basic