From 2b601c6d52c0555f4173ce304ff1893ece4fcfa8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:51:36 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E6=B6=88=E8=80=97=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Player.go | 14 ++++++++++++++ src/server/game/UnitTest.go | 6 ++++++ src/server/game/mod/chess/Chess.go | 10 ++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/server/game/Player.go b/src/server/game/Player.go index c0511f0d..2496779f 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -596,6 +596,20 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { case item.ITEM_TYPE_CHESS: // 棋子 ChessMod := p.PlayMod.getChessMod() + if v.Num < 0 { + err := ChessMod.LosePart(v.Id, -v.Num) + if err != nil { + return err + } + p.TeLog("chess_part_consume", map[string]interface{}{ + "chess_id": v.Id, + "chess_name": mergeDataCfg.GetNameById(v.Id), + "consume_num": -v.Num, + "remain_num": ChessMod.PartBag.List[v.Id].Num, + "consume_from": Label, + }) + continue + } for i := 0; i < v.Num; i++ { ChessMod.AddChessBuff(v.Id) } diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index ab906140..6ead7288 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -241,6 +241,11 @@ func UnitDecoratePartCost(p *Player) error { DecorateMod.PartClassPool = []int{} DecorateMod.PartPool = make(map[int]int) DecorateMod.InitData() + Items, _ := DecorateMod.GetDecorateCostItem(1, 41) + err := p.HandleLoseItem(Items, "") + if err != nil { + fmt.Print(err) + } return nil } @@ -252,5 +257,6 @@ func UnitOrderTrigger(p *Player) error { Emit := ChessMod.GetEmitList() EnergyMul := BaseMod.GetEnergyMul() OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul) + return nil } diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index e80926a5..988f7b1e 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -357,6 +357,16 @@ func (cb *ChessBorad) GetChessFromBuff(Chess int) error { return errors.New("chess id not exist") } +func (cb *ChessBorad) LosePart(PartId int, Num int) error { + v, ok := cb.PartBag.List[PartId] + if !ok || v.Num < Num { + return errors.New("part id not exist or num not enough") + } + v.Num -= Num + cb.PartBag.List[PartId] = v + return nil +} + // 返回数据 func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo { var ChessBagGrids []*msg.ChessBagGrid