From 19e4c292c7a25928a6b41aac31675bc10fa90891 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:47:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A3=8B=E5=AD=90=E4=BB=8E?= =?UTF-8?q?=E8=83=8C=E5=8C=85=E6=94=BE=E5=85=A5=E8=8D=A3=E8=AA=89=E5=AE=A4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/chess/Chess.go | 14 +++++++++++ src/server/game/register_network_func.go | 30 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 05d29c48..a89b1d57 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -596,6 +596,20 @@ func (cb *ChessBorad) TakeChessOutBag(grid int) (int, error) { return gridInfo.ChessId, cb.AddChess(gridInfo.ChessId) } +// 将棋子从背包放入荣誉室 +func (cb *ChessBorad) TakeChessOutBagToHonor(grid int) (int, error) { + gridInfo, ok := cb.ChessBag.List[grid] + if !ok { + return 0, errors.New("ChessBag Grid unlock") + } + if gridInfo.ChessId == 0 { + return 0, errors.New("ChessBag Grid is empty") + } + cb.ChessBag.List[grid] = ChessBagGrid{} + cb.AddHonor(gridInfo.ChessId) + return gridInfo.ChessId, nil +} + func (cb *ChessBorad) GetOrderEmit() []int { return cb.GetEmitList() } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index c4fba6f5..1fde9b69 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -877,6 +877,36 @@ func ReqTakeChessOutBag(player *Player, buf []byte) error { return nil } +func ReqTakeChessOutBagToHonor(player *Player, buf []byte) error { + req := &msg.ReqTakeChessOutBagToHonor{} + err := proto.Unmarshal(buf, req) + if err != nil { + return err + } + ChessMod := player.PlayMod.getChessMod() + chessId, err := ChessMod.TakeChessOutBagToHonor(int(req.BagId)) + if err != nil { + player.SendErrClienRes(&msg.ResTakeChessOutBagToHonor{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + + player.TeLog("ReqTakeChessOutBagToHonor", map[string]interface{}{ + "bag_id": req.BagId, + "chess_id": chessId, + }) + player.InitOrderItem() + player.PlayMod.save() + player.PushClientRes(ChessMod.BackData()) + player.PushClientRes(&msg.ResTakeChessOutBagToHonor{ + Code: msg.RES_CODE_SUCCESS, + }) + player.UpdateUserInfo() + return nil +} + func ReqBuyChessBagGrid(player *Player, buf []byte) error { req := &msg.ReqBuyChessBagGrid{} err := proto.Unmarshal(buf, req)