From 820ae5bbfacd1032056d08ce6518aab1af0ed68f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 25 Mar 2026 18:30:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AB=98=E7=BA=A7=E8=AE=A2=E5=8D=95=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=80=80=E5=BD=B9=E6=A3=8B=E5=AD=90=E7=9A=84=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 9b5fa356..8e894464 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1249,7 +1249,7 @@ func (p *Player) GetPetThiefReward(target int) error { return nil } -// 高级产物订单 +// 高级产物订单 回收订单中不会生成的棋子 func (p *Player) AddHighOrder() { OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() @@ -1291,8 +1291,12 @@ func (p *Player) AddHighOrder() { } } RetireProduceColor := ChessMod.GetRetireProduceColor() + emitList := ChessMod.GetEmitList() for Color, ChessId := range chessMap { - emitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color) + emitId := order.GetEmitByColor(emitList, Color) + if emitId == 0 { + continue + } _, ChessMaxLv := getChesslvRange(emitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge) newLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, emitId, Color) newLev3 := order.AdjustLev(newLev2, BaseMod.GetEnergyMul()) @@ -1310,6 +1314,13 @@ func (p *Player) AddHighOrder() { if GoUtil.InArray(ChessId, v.MergeId) { add = false } + // 增加当订单中已有同类型且等级大于等于该棋子的订单时,不生成订单 + for _, v1 := range v.MergeId { + if mergeDataCfg.GetColorById(v1) == Color && mergeDataCfg.GetLvById(v1) >= chessLv { + add = false + break + } + } } if add { OrderMod.AddExtraOrder([]int{ChessId})