Skip to content

CustomMerchant โ€‹

ๅ‘ฝๅ็ฉบ้—ด: Cwl.API.Custom;

่‡ชๅฎšไน‰API็”จไบŽๅค„็†ๅ•†ไบบๅบ“ๅญ˜ใ€‚

ๆทปๅŠ ่‡ชๅฎšไน‰ๅบ“ๅญ˜ๅˆฐๅ•†ไบบ โ€‹

cs
void CustomMerchant.AddStock(cardId, stockId = "");

ๅฝ“็ป™ๅฎš็š„ stockId ไธบ็ฉบๆ—ถ๏ผŒๅฐ†ไฝฟ็”จ cardId ไฝœไธบ้ป˜่ฎค็š„ stockIdใ€‚่ฟ™ไธŽCWLๆ ‡็ญพ addStock_ID ็š„ๆ•ˆๆžœ็›ธๅŒ๏ผŒๅฏไปฅๅฐ†ๅคšไธช stockId ๅˆ†้…็ป™ๅŒไธ€ไธช cardIdใ€‚

ๅบ“ๅญ˜ๆ–‡ไปถ้œ€่ฆๆ”พ็ฝฎๅœจ LangMod/**/Data/ ๆ–‡ไปถๅคนไธญ๏ผŒๅ‘ฝๅไธบ stock_ID.jsonใ€‚

ๅฏไปฅไฝฟ็”จๆŽงๅˆถๅฐๅ‘ฝไปค cwl.stock.add cardId stockId ๅœจๆธธๆˆไธญๆต‹่ฏ•ๆญคๆ–นๆณ•ใ€‚

่Žทๅ–่‡ชๅฎšไน‰ๅบ“ๅญ˜็‰ฉๅ“ โ€‹

cs
SerializableStockItem[] CustomChara.GetStockItems(string cardId);

่ฟ”ๅ›ž็ป™ๅฎš cardId ็š„่‡ชๅฎšไน‰ๅบ“ๅญ˜้กน็›ฎๆ•ฐ็ป„๏ผˆๅฆ‚ๆžœๆœ‰็š„่ฏ๏ผ‰ใ€‚

่Žทๅ–ๅบ“ๅญ˜ๆ•ฐๆฎ โ€‹

cs
SerializableStockData? CustomChara.GetStockData(string stockId);

่ฟ”ๅ›ž็ป™ๅฎš stockId ็š„ๅบ“ๅญ˜ๆ•ฐๆฎ๏ผˆๅฆ‚ๆžœๅญ˜ๅœจ๏ผ‰ใ€‚ๆ•ฐๆฎๆ˜ฏๅ…จๆ–ฐๅฎžไพ‹ๅŒ–็š„๏ผŒไธไผšๅฝฑๅ“ๅฝ“ๅ‰็š„ๅบ“ๅญ˜็ฎก็†ใ€‚

ไปŽๅ•†ไบบๆธ…้™ค่‡ชๅฎšไน‰ๅบ“ๅญ˜ โ€‹

cs
void CustomChara.ClearStock(string cardId);

ๆธ…้™ค็ป™ๅฎš cardId ็š„ๆ‰€ๆœ‰่‡ชๅฎšไน‰ๅบ“ๅญ˜ใ€‚

ๅฏไปฅไฝฟ็”จๆŽงๅˆถๅฐๅ‘ฝไปค cwl.stock.clear cardId ๅœจๆธธๆˆไธญๆต‹่ฏ•ๆญคๆ–นๆณ•ใ€‚

่‡ชๅฎšไน‰ OnBarter ไบ‹ไปถ โ€‹

ๆ‚จๅฏไปฅไธบ่ง’่‰ฒ่ต‹ไบˆไปปไฝ•่‡ชๅฎšไน‰็š„ Trait๏ผˆ็‰นๅพ๏ผ‰๏ผŒๅนถๅค„็†CWL็š„ _OnBarter ไบ‹ไปถใ€‚่ฟ™ๅฏไปฅไธŽๆ ‡็ญพๅ’Œ/ๆˆ–APIไฝฟ็”จ็›ธ็ป“ๅˆใ€‚

ไพ‹ๅฆ‚๏ผŒๆ‚จๅฏไปฅไธบ่‡ชๅฎšไน‰่ง’่‰ฒ่ต‹ไบˆ่‡ชๅฎšไน‰็‰นๅพ TradableAdventurer๏ผŒๅนถๆทปๅŠ ๆ ‡็ญพ addStock๏ผŒๅŒๆ—ถๅค„็† _OnBarter ไบ‹ไปถ๏ผš

cs
class TraitTradableAdventurer : TraitAdventurer
{
    // invoked by CWL
    void _OnBarter()
    {
        // add/remove/modify the stocks here on your own
    }
}

ๆญคไบ‹ไปถๅœจๆธธๆˆ่ฐƒ็”จ Trait.OnBarter ๅŽ่งฆๅ‘๏ผŒๅนถๅœจCWL็”Ÿๆˆๅบ“ๅญ˜ๅŽ๏ผˆๅฆ‚ๆžœๆœ‰็š„่ฏ๏ผ‰ใ€‚