API UO TradeCount ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.TradeCount
ClassicUO โข Runtime API
์ด๋ฆฐ ๊ฑฐ๋ ์ฐฝ ์๋ฅผ ๋ฐํํฉ๋๋ค.
์ ํํ ๊ตฌ๋ฌธ
UO.TradeCount() -> Integer
๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๋ฐํ๊ฐ
Integer: 0 ์ด์์ ์ฐฝ ์์ ๋๋ค. Boolean์ด ์๋๋ฉฐ ์กด์ฌ ์ฌ๋ถ๋ > 0์ผ๋ก ํ์ธํฉ๋๋ค.
๋์
- GetTradeContainer/GetTradeOpponent/GetTradeOpponentName/ConfirmTrade/CancelTrade๋ 1๋ถํฐ, TradeContainer/TradeOpponent/TradeName๊ณผ ๋ชจ๋ TradeCheck ํ์์ 0๋ถํฐ์ ๋๋ค. ์ด ํด๋ผ์ด์ธํธ๋ ํด๋น ๊ท์น์ ์ ์งํ๋ฉฐ ๋ค๋ฅธ ์์ง์ ์ธ๋ถ ์ค๋ช ์๋ ์์์ ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ๊ฒ์ ์ค๋ ๋์์ ํ์ฌ World์ ์ด๋ฆฐ ์ฐฝ์ ์ฝ์ผ๋ฉฐ ๋ซํ ์ฐฝ์ ์ ์ธํฉ๋๋ค. ์ฝ๊ธฐ๋ ํจํท์ ๋ณด๋ด๊ฑฐ๋ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์ด๊ธฐ, ๋ซ๊ธฐ, ์์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ๋ก UI ์์๊ฐ ๋ฐ๋๋ฏ๋ก ์ธ๋ฑ์ค๋ ์๊ตฌ ID๊ฐ ์๋๋๋ค.
- ConfirmTrade์ ๋ด TradeCheck ์ฐ๊ธฐ๋ ๋์๊ฐ ๋ฐ๋ ๋๋ง ์ ์กํฉ๋๋ค. ์๋ ์ฒดํฌ๋ ์๋ฒ๊ฐ ์ ์ดํ๋ฉฐ CancelTrade๋ ํ ๋ฒ ์ ์กํฉ๋๋ค. 1/TRUE๋ ๋ก์ปฌ ์ํ/์ฒ๋ฆฌ์ด๋ฉฐ ์ด์ ์๋ฃ๊ฐ ์๋๋๋ค. ์ด๋ฆ๊ณผ ์์ชฝ ์ฒดํฌ๋ง์ผ๋ก ์์ดํ ์ด ๊ทธ๋๋ก์์ ์ฆ๋ช ํ ์ ์์ต๋๋ค.
๋ด๋ถ ํจ์: ํธ์ถ๋ถํฐ ๊ฒฐ๊ณผ๊น์ง
์๋์์ C# ํธ์ถ ๊ฒฝ๋ก๋ฅผ ์ค๋ช ํ ๋ค ์คํ ๊ฐ๋ฅํ Basic ์์ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์คํฌ๋ฆฝํธ๊ฐ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ๋ค์ ๊ตฌํํ์ง๋ ์์ต๋๋ค.
1. TradeCount
๋ฑ๋ก์ ์ธ์ ์๋ก ํ์์ ์ ํํ๊ณ NumberConversions๋ ์ซ์๋ฅผ ๋ณํํฉ๋๋ค. ์ธ์ 2๊ฐ TradeCheck๋ ์ธก 1/2๋ฅผ ๊ฒ์ฌํ์ฌ bridge์ 0/1๋ก ๋งคํํฉ๋๋ค. ๊ธฐ์กด serial์ ToHex๋ก ํ์ํํฉ๋๋ค.
Integer: 0 ์ด์์ ์ฐฝ ์์ ๋๋ค. Boolean์ด ์๋๋ฉฐ ์กด์ฌ ์ฌ๋ถ๋ > 0์ผ๋ก ํ์ธํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ํจ์ TradeCount.
2. TradeCount
Invoke๋ ์คํฌ๋ฆฝํธ ์ทจ์๋ฅผ ๊ณ ๋ คํ์ฌ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ๊ฒ์ ์ค๋ ๋๋ก ์ฎ๊ธฐ๋ฉฐ ์ ํํ TradingGump์ ID1/ID2, LocalSerial, OpponentName ๋๋ ์ฒดํฌ๋ฅผ ์ฝ์ต๋๋ค.
์ด๋ฆฐ ๊ฑฐ๋ ์ฐฝ ์๋ฅผ ๋ฐํํฉ๋๋ค.
ํ๋ก์ ํธ ์์ค: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ํจ์ TradeCount.
๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค. expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.
์์
์ง์ ์ฝ๊ธฐ ๋๋ ๋์
# ์ง์ ์ฝ๊ธฐ ๋๋ ๋์
#
# ์ด๋ฆฐ ๊ฑฐ๋ ์ฐฝ ์๋ฅผ ๋ฐํํฉ๋๋ค.
#
# Integer: 0 ์ด์์ ์ฐฝ ์์
๋๋ค. Boolean์ด ์๋๋ฉฐ ์กด์ฌ ์ฌ๋ถ๋ > 0์ผ๋ก ํ์ธํฉ๋๋ค.
SUB Main()
# ํ ๋ฒ ํธ์ถํ์ฌ value/result์ ์ ์ฅํฉ๋๋ค. ์ฒซ ์ธ๋ฑ์ค๋ 0, ์ฒซ ๋ฒํธ๋ 1์
๋๋ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋ ์ซ์ serial, CStr์ ์๋ ํ
์คํธ๋ฅผ
# ํ์ํฉ๋๋ค.
VAR value = UO.TradeCount()
UO.Print(CStr(value))
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- ํ ๋ฒ ํธ์ถํ์ฌ value/result์ ์ ์ฅํฉ๋๋ค. ์ฒซ ์ธ๋ฑ์ค๋ 0, ์ฒซ ๋ฒํธ๋ 1์ ๋๋ค(๊ตฌ๋ฌธ ์ฐธ๊ณ ). HEX๋ ์ซ์ serial, CStr์ ์๋ ํ ์คํธ๋ฅผ ํ์ํฉ๋๋ค.
๋ค๋ฅธ ์ํฉ๊ณผ ๋งค๊ฐ๋ณ์
# ๋ค๋ฅธ ์ํฉ๊ณผ ๋งค๊ฐ๋ณ์
#
# ์ด๋ฆฐ ๊ฑฐ๋ ์ฐฝ ์๋ฅผ ๋ฐํํฉ๋๋ค.
#
# Integer: 0 ์ด์์ ์ฐฝ ์์
๋๋ค. Boolean์ด ์๋๋ฉฐ ์กด์ฌ ์ฌ๋ถ๋ > 0์ผ๋ก ํ์ธํฉ๋๋ค.
SUB Main()
# before/after๋ 500๋ฐ๋ฆฌ์ด ๊ฐ๊ฒฉ์ ๋ณ๋ ์ค๋
์ท์
๋๋ค. ํน์ ๊ฑฐ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์ผ๋ฉฐ ์ค๊ฐ ๋ณ๊ฒฝ์ ๋์น ์ ์์ต๋๋ค.
VAR before = UO.TradeCount()
WAIT(500)
VAR after = UO.TradeCount()
UO.Print(CStr(before) + " -> " + CStr(after))
END SUB
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- before/after๋ 500๋ฐ๋ฆฌ์ด ๊ฐ๊ฒฉ์ ๋ณ๋ ์ค๋ ์ท์ ๋๋ค. ํน์ ๊ฑฐ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์ผ๋ฉฐ ์ค๊ฐ ๋ณ๊ฒฝ์ ๋์น ์ ์์ต๋๋ค.
์์ ํ ๋ณด์กฐ ํจ์
# ์์ ํ ๋ณด์กฐ ํจ์
#
# ์ด๋ฆฐ ๊ฑฐ๋ ์ฐฝ ์๋ฅผ ๋ฐํํฉ๋๋ค.
#
# Integer: 0 ์ด์์ ์ฐฝ ์์
๋๋ค. Boolean์ด ์๋๋ฉฐ ์กด์ฌ ์ฌ๋ถ๋ > 0์ผ๋ก ํ์ธํฉ๋๋ค.
SUB Main()
# ๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค.
# expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.
VAR value = ReadTradeState()
UO.Print(CStr(value))
END SUB
FUNCTION ReadTradeState()
RETURN UO.TradeCount()
END FUNCTION
๋งค๊ฐ๋ณ์ ๋ฐ ์คํ ์ค๋ช :
- ๋ณด์กฐ ํจ์๋ ๋ชจ๋ ์ ์๋์ด ์์ผ๋ฉฐ Main์์ ํธ์ถํฉ๋๋ค. ๋ฒ์/ID ๊ฒ์ฌ๋ ์ค์๋ฅผ ์ค์ด์ง๋ง ์ฌ๋ฌ ํธ์ถ์ ์์์ ์ด์ง ์์ ์ค๊ฐ์ ์ฐฝ์ด ๋ฐ๋ ์ ์์ต๋๋ค. expectedPartner๋ ์ ์ฅํ ์บ๋ฆญํฐ serial์ด๋ฉฐ ๊ฐ๊ฒฉ/๋ด์ฉ ๊ฒ์ฆ์ ์๋๋๋ค.