diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 4a557016..450377c5 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -1451,5 +1451,36 @@ func (p *Player) AddHighOrder() { return } } - +} + +// 高级产物订单 +func (p *Player) AddHighOrder2() { + OrderMod := p.PlayMod.getOrderMod() + ChessMod := p.PlayMod.getChessMod() + ChessList := ChessMod.GetUnlockChessList() + ChessMap := make(map[int]int, 0) + for _, v := range ChessList { + Lv := mergeDataCfg.GetLvById(v) + MaxLv := mergeDataCfg.GetMaxLvById(v) + if Lv != MaxLv { + continue + } + ChessMap[v]++ + } + for ChessId, Num := range ChessMap { + if Num < 3 { + continue + } + add := true + for _, v := range OrderMod.GetOrderList() { + if GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId, ChessId}) { + add = false + break + } + } + if add { + OrderMod.AddExtraOrder([]int{ChessId, ChessId, ChessId}) + return + } + } } diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index fdc7e595..fbe4ed05 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -575,7 +575,7 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ //额外订单补充2;当玩家的棋盘中出现三个相同的满级产物时,立刻生成一个对应的收购订单; for k := range MaxLvChess { ChessNum := GoUtil.GetElemNum(ChessList, k) - if ChessNum == 3 && Level >= 12 { + if ChessNum >= 3 && Level >= 12 { b2 := true for _, v := range o.OrderList { if GoUtil.SliceEqual(v.MergeId, []int{k, k, k}) {