From e53a023276e6cd72a71688cc3084331f0ebe5028 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 8 Sep 2025 11:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=BB=A1=E7=BA=A7=E4=BA=A7?= =?UTF-8?q?=E7=89=A9=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerChessMod.go | 2 +- src/server/game/RegisterNetworkFunc.go | 2 +- src/server/game/mod/order/Order.go | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 73fb0ddf..0bc52737 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -261,7 +261,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa // 发射器系列变化,重新洗牌 OrderMod.ResetChessPool() } - Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), EnergyPow) + Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), EnergyPow, BaseMod.GetLevel()) if Update { player.PushClientRes(OrderMod.BackData()) } diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index da5bb92a..518d68b4 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -610,7 +610,7 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { player.TeLog("ReqGetChessFromBuff", map[string]interface{}{ "chess_id": ChessId, }) - Update = OrderMod.CreateExtraOrder([]int{ChessId}, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul()) + Update = OrderMod.CreateExtraOrder([]int{ChessId}, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) if Update { player.PushClientRes(OrderMod.BackData()) } diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 9ed76d5f..7a912e67 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -502,7 +502,7 @@ func (o *OrderMod) CreateCleanOrder2(ChessList []int) bool { return true } -func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, EnergyMul int) bool { +func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, EnergyMul, Level int) bool { BeginExtraEmitId := orderCfg.GetEmitExtraOrder() // 从发射器F系列开始 b1 := false OrderEmit := 0 @@ -530,6 +530,14 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ MaxLvChess[ChessId]++ } } + //额外订单补充2;当玩家的棋盘中出现三个相同的满级产物时,立刻生成一个对应的收购订单; + for k := range MaxLvChess { + ChessNum := GoUtil.GetElemNum(ChessList, k) + if ChessNum == 3 && Level >= 12 { + b1 = true + o.addOrder([]int{k, k, k}, DIFF_LOW, Extra_type) + } + } //额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的; if b1 { ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)