API UO GetTradeOpponentName ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetTradeOpponentName
ClassicUO โข Runtime API
๊ฑฐ๋๊ฐ ์ด๋ฆด ๋ ๋ฐ์ ์๋ ์ด๋ฆ์ ์ฝ์ต๋๋ค.
์ ํํ ๊ตฌ๋ฌธ
UO.GetTradeOpponentName(TradeNum:Any) -> Any
๋งค๊ฐ๋ณ์
TradeNumโ ํ์ฌ ์ ์ ์ฐฝ ๋ฒํธ: 1..TradeCount(). 0๊ณผ ์์๋ ์๋ชป๋ ๊ฐ์ ๋๋ค. serial์ด ์๋๋๋ค.
๋ฐํ๊ฐ
String: ๊ฑฐ๋ ์ด๊ธฐ ํจํท์์ ๋ฐ์ ์ด๋ฆ์ด๋ฉฐ ์ฐฝ/์ด๋ฆ์ด ์์ผ๋ฉด ๋น ๋ฌธ์์ด์ ๋๋ค. ์ ์ด๋ฆ์ ์์ฒญํ์ง ์์ต๋๋ค.
๋์
- GetTradeContainer/GetTradeOpponent/GetTradeOpponentName/ConfirmTrade/CancelTrade๋ 1๋ถํฐ, TradeContainer/TradeOpponent/TradeName๊ณผ ๋ชจ๋ TradeCheck ํ์์ 0๋ถํฐ์ ๋๋ค. ์ด ํด๋ผ์ด์ธํธ๋ ํด๋น ๊ท์น์ ์ ์งํ๋ฉฐ ๋ค๋ฅธ ์์ง์ ์ธ๋ถ ์ค๋ช ์๋ ์์์ ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ๊ฒ์ ์ค๋ ๋์์ ํ์ฌ World์ ์ด๋ฆฐ ์ฐฝ์ ์ฝ์ผ๋ฉฐ ๋ซํ ์ฐฝ์ ์ ์ธํฉ๋๋ค. ์ฝ๊ธฐ๋ ํจํท์ ๋ณด๋ด๊ฑฐ๋ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์ด๊ธฐ, ๋ซ๊ธฐ, ์์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ๋ก UI ์์๊ฐ ๋ฐ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ ์๊ตฌ ID๊ฐ ์๋๋๋ค.
- ConfirmTrade์ ๋ด TradeCheck ์ฐ๊ธฐ๋ ๋์๊ฐ ๋ฐ๋ ๋๋ง ์ ์กํฉ๋๋ค. ์๋ ์ฒดํฌ๋ ์๋ฒ๊ฐ ์ ์ดํ๋ฉฐ CancelTrade๋ ํ ๋ฒ ์ ์กํฉ๋๋ค. 1/TRUE๋ ๋ก์ปฌ ์ํ/์ฒ๋ฆฌ์ด๋ฉฐ ์ด์ ์๋ฃ๊ฐ ์๋๋๋ค. ์ด๋ฆ๊ณผ ์์ชฝ ์ฒดํฌ๋ง์ผ๋ก ์์ดํ ์ด ๊ทธ๋๋ก์์ ์ฆ๋ช ํ ์ ์์ต๋๋ค.
๋ด๋ถ ํจ์: ํธ์ถ๋ถํฐ ๊ฒฐ๊ณผ๊น์ง
์๋์์ C# ํธ์ถ ๊ฒฝ๋ก๋ฅผ ์ค๋ช ํ ๋ค ์คํ ๊ฐ๋ฅํ Basic ์์ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ๋ค์ ๊ตฌํํ์ง๋ ์์ต๋๋ค.
1. ExecuteStealthCompatibility
๋ฑ๋ก์ ์ธ์ ์๋ก ํ์์ ์ ํํ๊ณ NumberConversions๋ ์ซ์๋ฅผ ๋ณํํฉ๋๋ค. ์ธ์ 2๊ฐ TradeCheck๋ ์ธก 1/2๋ฅผ ๊ฒ์ฌํ์ฌ bridge์ 0/1๋ก ๋งคํํฉ๋๋ค. ๊ธฐ์กด serial์ ToHex๋ก ํ์ํํฉ๋๋ค.
String: ๊ฑฐ๋ ์ด๊ธฐ ํจํท์์ ๋ฐ์ ์ด๋ฆ์ด๋ฉฐ ์ฐฝ/์ด๋ฆ์ด ์์ผ๋ฉด ๋น ๋ฌธ์์ด์ ๋๋ค. ์ ์ด๋ฆ์ ์์ฒญํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ ExecuteStealthCompatibility.
2. GetTradeOpponentName
Invoke๋ ์คํฌ๋ฆฝํธ ์ทจ์๋ฅผ ๊ณ ๋ คํ์ฌ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ๊ฒ์ ์ค๋ ๋๋ก ์ฎ๊ธฐ๋ฉฐ ์ ํํ TradingGump์ ID1/ID2, LocalSerial, OpponentName ๋๋ ์ฒดํฌ๋ฅผ ์ฝ์ต๋๋ค.
๊ฑฐ๋๊ฐ ์ด๋ฆด ๋ ๋ฐ์ ์๋ ์ด๋ฆ์ ์ฝ์ต๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ GetTradeOpponentName.
3. FindNumberedTrade
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; ํจ์ FindNumberedTrade.
๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค. expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.
์์
์ง์ ์ฝ๊ธฐ ๋๋ ๋์
# ์ง์ ์ฝ๊ธฐ ๋๋ ๋์
#
# ๊ฑฐ๋๊ฐ ์ด๋ฆด ๋ ๋ฐ์ ์๋ ์ด๋ฆ์ ์ฝ์ต๋๋ค.
#
# String: ๊ฑฐ๋ ์ด๊ธฐ ํจํท์์ ๋ฐ์ ์ด๋ฆ์ด๋ฉฐ ์ฐฝ/์ด๋ฆ์ด ์์ผ๋ฉด ๋น ๋ฌธ์์ด์
๋๋ค. ์ ์ด๋ฆ์ ์์ฒญํ์ง ์์ต๋๋ค.
SUB Main()
# ํ ๋ฒ ํธ์ถํ์ฌ value/result์ ์ ์ฅํฉ๋๋ค. ์ฒซ ์ธ๋ฑ์ค๋ 0, ์ฒซ ๋ฒํธ๋ 1์
๋๋ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋ ์ซ์ serial, CStr์ ์๋ ํ
์คํธ๋ฅผ
# ํ์ํฉ๋๋ค.
VAR value = UO.GetTradeOpponentName(1)
UO.Print(CStr(value))
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- ํ ๋ฒ ํธ์ถํ์ฌ value/result์ ์ ์ฅํฉ๋๋ค. ์ฒซ ์ธ๋ฑ์ค๋ 0, ์ฒซ ๋ฒํธ๋ 1์ ๋๋ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋ ์ซ์ serial, CStr์ ์๋ ํ ์คํธ๋ฅผ ํ์ํฉ๋๋ค.
๋ค๋ฅธ ์ํฉ๊ณผ ๋งค๊ฐ๋ณ์
# ๋ค๋ฅธ ์ํฉ๊ณผ ๋งค๊ฐ๋ณ์
#
# ๊ฑฐ๋๊ฐ ์ด๋ฆด ๋ ๋ฐ์ ์๋ ์ด๋ฆ์ ์ฝ์ต๋๋ค.
#
# String: ๊ฑฐ๋ ์ด๊ธฐ ํจํท์์ ๋ฐ์ ์ด๋ฆ์ด๋ฉฐ ์ฐฝ/์ด๋ฆ์ด ์์ผ๋ฉด ๋น ๋ฌธ์์ด์
๋๋ค. ์ ์ด๋ฆ์ ์์ฒญํ์ง ์์ต๋๋ค.
SUB Main()
# total์ ์ ์ฅํ ์ฐฝ ์์ด๊ณ index๋ ํ์ฌ ์ธ๋ฑ์ค/๋ฒํธ์
๋๋ค. ์ด๊ฑฐ๋ ๊ฑฐ๋๋ฅผ ์น์ธํ์ง ์์ต๋๋ค. GetTradeContainer ์์ ๋ ์ฐฝ 1์ ๋ด ์ปจํ
์ด๋
# (1)์ ์๋ ์ปจํ
์ด๋ (2)๋ฅผ ์ฝ์ต๋๋ค.
VAR total = UO.TradeCount()
FOR VAR index = 1 TO total - 0
VAR value = UO.GetTradeOpponentName(index)
UO.Print(CStr(index) + ": " + CStr(value))
NEXT
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- total์ ์ ์ฅํ ์ฐฝ ์์ด๊ณ index๋ ํ์ฌ ์ธ๋ฑ์ค/๋ฒํธ์ ๋๋ค. ์ด๊ฑฐ๋ ๊ฑฐ๋๋ฅผ ์น์ธํ์ง ์์ต๋๋ค. GetTradeContainer ์์ ๋ ์ฐฝ 1์ ๋ด ์ปจํ ์ด๋ (1)์ ์๋ ์ปจํ ์ด๋ (2)๋ฅผ ์ฝ์ต๋๋ค.
์์ ํ ๋ณด์กฐ ํจ์
# ์์ ํ ๋ณด์กฐ ํจ์
#
# ๊ฑฐ๋๊ฐ ์ด๋ฆด ๋ ๋ฐ์ ์๋ ์ด๋ฆ์ ์ฝ์ต๋๋ค.
#
# String: ๊ฑฐ๋ ์ด๊ธฐ ํจํท์์ ๋ฐ์ ์ด๋ฆ์ด๋ฉฐ ์ฐฝ/์ด๋ฆ์ด ์์ผ๋ฉด ๋น ๋ฌธ์์ด์
๋๋ค. ์ ์ด๋ฆ์ ์์ฒญํ์ง ์์ต๋๋ค.
SUB Main()
# ๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค.
# expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.
VAR value = ReadTradeValue(1)
UO.Print(CStr(value))
END SUB
FUNCTION ReadTradeValue(index)
VAR total = UO.TradeCount()
IF index < 1 OR index >= total + 1 THEN
RETURN ""
END IF
RETURN UO.GetTradeOpponentName(index)
END FUNCTION
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- ๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค. expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.