From e88166b64de9d70bde36a16c8074e60120f72ff5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Sat, 18 Jan 2025 16:59:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95=E8=B0=83?= =?UTF-8?q?=E6=95=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/order/Order.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 54641dd2..4ad80669 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -69,6 +69,11 @@ func (o *OrderMod) InitData() { } } } + for k, v := range o.OrderList { + if GoUtil.InArray(0, v.MergeId) { + delete(o.OrderList, k) + } + } } func (o *OrderMod) GetOrderList() map[int]Order { @@ -112,6 +117,9 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error { PreheatStep := o.PreheatStep[ChessColor] if PreheatStep < 4 { NewChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+PreheatStep+1, ChessColor) + if NewChessId == 0 { + return fmt.Errorf("CreateOrder: NewChessId is 0, EnergyMul: %d, PreheatStep: %d, ChessColor: %s", EnergyMul, PreheatStep, ChessColor) + } o.addOrder([]int{NewChessId}, diff_low, Preheat_type) o.PreheatStep[ChessColor]++ } @@ -494,13 +502,13 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList HasOne := false for _, vv := range v.MergeId { Lv := mergeDataCfg.GetLvById(vv) - if Lv >= EnergyMul+1 && Lv <= EnergyMul+12 { - continue - } if GoUtil.InArray(vv, ChessList) { HasOne = true break } + if Lv >= EnergyMul+1 && Lv <= EnergyMul+12 { + continue + } NeedTrigger = true } if HasOne { // 棋盘上有订单中的棋子,不进行修改 @@ -511,6 +519,9 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList ChessColor := mergeDataCfg.GetColorById(ChessId) PreheatStep := o.PreheatStep[ChessColor] NewChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+PreheatStep, ChessColor) + if NewChessId == 0 { + continue + } delete(o.OrderList, k) o.addOrder([]int{NewChessId}, diff_low, Preheat_type) }