Package server.shops
package server.shops
玩家經營商店子系統:雇傭商人、個人商店與雙人小遊戲的資料模型與互動邏輯。
本 package 涵蓋玩家自行擺設、可供其他玩家拜訪交易的各式店鋪,皆為地圖上的
MapleMapObject。共通行為由介面 IMaplePlayerShop 規範,
抽象基底 AbstractPlayerStore 集中處理拜訪者名額(弱參照陣列)、商品清單、
楓幣累計、封包廣播與資料庫存檔;其內部類別 AbstractPlayerStore.BoughtItem
記錄成交紀錄。
三種具體店鋪皆繼承自抽象基底:HiredMerchant 為可離線持續營業的雇傭商人
(狀態寫入 hiredmerch 資料表,並由 HiredMerchantSave 協助持久化)、
MaplePlayerShop 為需玩家在場的個人商店、MapleMiniGame 則實作五子棋
(OMOK)與翻牌配對(MATCH_CARD)雙人小遊戲。單筆上架商品以
MaplePlayerShopItem(道具、組數、單價)表示。
店鋪的擺設、進出與買賣由 handling.channel.handler.PlayerInteractionHandler
驅動,商品異動透過 MapleInventoryManipulator,對外封包則由
tools.packet.PlayerShopPacket 組裝。
-
ClassDescription玩家自設商店(個人商店、精靈商人、五目棋/翻牌)的抽象基底類別。精靈商人(Hired Merchant)的伺服端實作,允許玩家離線掛店銷售道具。玩家自設商店與小遊戲攤位的統一介面。玩家對戰小遊戲攤位的伺服端實作,支援五目棋(Omok)與翻牌配對(Match Card)。個人商店(Player Shop)的伺服端實作,提供玩家在線擺攤即時交易。個人商店或精靈商人單一上架道具的資料持有類別。