From 982a42a14a353287f1a5b86b77c3b53db76b0171 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 14 Mar 2025 11:51:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 9 +++++---- src/server/game/mod/chess/Chess.go | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 2df18415..cb8b565b 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -682,7 +682,7 @@ func ReqSeparateChess(player *Player, buf []byte) error { req := &msg.ReqSeparateChess{} proto.Unmarshal(buf, req) ChessMod := player.PlayMod.getChessMod() - err := ChessMod.SeparateChess(int(req.ChessId)) + NewChess, err := ChessMod.SeparateChess(int(req.ChessId)) if err != nil { player.SendErrClienRes(&msg.ResSeparateChess{ Code: msg.RES_CODE_FAIL, @@ -707,7 +707,8 @@ func ReqSeparateChess(player *Player, buf []byte) error { player.PushClientRes(&msg.ResSeparateChess{ Code: msg.RES_CODE_SUCCESS, }) - triggerComposeChess(player, int(req.ChessId), player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.TeLog("scissors_use", map[string]interface{}{ "scissors_item_id": int(req.ChessId), }) @@ -719,7 +720,7 @@ func ReqUpgradeChess(player *Player, buf []byte) error { req := &msg.ReqUpgradeChess{} proto.Unmarshal(buf, req) ChessMod := player.PlayMod.getChessMod() - err := ChessMod.UpgradeChess(int(req.ChessId)) + NewChess, err := ChessMod.UpgradeChess(int(req.ChessId)) if err != nil { player.SendErrClienRes(&msg.ResUpgradeChess{ Code: msg.RES_CODE_FAIL, @@ -739,7 +740,7 @@ func ReqUpgradeChess(player *Player, buf []byte) error { }) return err } - triggerComposeChess(player, int(req.ChessId), player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.PlayMod.save() player.PushClientRes(ChessMod.BackData()) player.PushClientRes(&msg.ResUpgradeChess{ diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index c87bece6..58c438f1 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -521,49 +521,49 @@ func (cb *ChessBorad) SourceChest(ChessId int) ([]*item.Item, error) { return nil, nil } -func (cb *ChessBorad) SeparateChess(ChessId int) error { +func (cb *ChessBorad) SeparateChess(ChessId int) (int, error) { ChessLv := mergeDataCfg.GetLvById(ChessId) if ChessLv == 1 { - return errors.New("chess lv is 1") + return 0, errors.New("chess lv is 1") } ChessType := mergeDataCfg.GetTypeById(ChessId) if ChessType != "Product" { - return errors.New("chess type is not product") + return 0, errors.New("chess type is not product") } err := cb.RemoveChess(ChessId) if err != nil { - return err + return 0, err } err = cb.RemoveChess(CHESS_SEPARATE) if err != nil { - return err + return 0, err } ChessColor := mergeDataCfg.GetColorById(ChessId) NewChess := mergeDataCfg.GetChessIdByLvAndColor(ChessLv-1, ChessColor) cb.AddChess(NewChess) cb.AddChess(NewChess) - return nil + return NewChess, nil } -func (cb *ChessBorad) UpgradeChess(ChessId int) error { +func (cb *ChessBorad) UpgradeChess(ChessId int) (int, error) { ChessLv := mergeDataCfg.GetLvById(ChessId) ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) if ChessLv == ChessMaxLv { - return errors.New("chess lv is max") + return 0, errors.New("chess lv is max") } ChessType := mergeDataCfg.GetTypeById(ChessId) if ChessType != "Product" { - return errors.New("chess type is not product") + return 0, errors.New("chess type is not product") } err := cb.RemoveChess(ChessId) if err != nil { - return err + return 0, err } err = cb.RemoveChess(CHESS_UPGRADE) if err != nil { - return err + return 0, err } NewChess := mergeDataCfg.GetChessIdByLvAndColor(ChessLv+1, mergeDataCfg.GetColorById(ChessId)) cb.AddChess(NewChess) - return nil + return NewChess, nil }