diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 263b5208..89a4ef4c 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -68,6 +68,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 { @@ -111,6 +116,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]++ } @@ -488,13 +496,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 { // 棋盘上有订单中的棋子,不进行修改 @@ -505,6 +513,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) }