From 56157dd32cc1a85d7925cd887f3387645c2de215 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 4 Feb 2026 18:20:21 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=99=90=E6=97=B6=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E3=80=91=E8=B6=85=E7=BA=A7=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 18 ++++++++++++++++++ src/server/game/mod/order/Order.go | 8 ++++++-- src/server/game/mod/order/order_func.go | 3 +-- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 8288afe0..f30f72ef 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -255,6 +255,24 @@ func ReqGmCommand_(player *Player, Command string) error { SendMsgToCenterAsync(&MsgMod.Msg{ HandleType: MsgMod.HANDLE_MOD_CHAMPSHIP_GROUP, }) + case "inrank": + ChampshipMod := player.PlayMod.getChampshipMod() + num, _ := strconv.Atoi(arg[1]) + Score := float64(num) + // 更新排行榜 + m := &MsgMod.Msg{ + Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_INRANK, + SendT: GoUtil.Now(), + Extra: CRank{ + Uid: int(player.M_DwUin), + Score: Score, + H: ChampshipMod.GetH(), + N: ChampshipMod.GetN(), + }, + End: GoUtil.ZeroTimestamp() + 86400, // 第二天零点删除 + HandleType: MsgMod.HANDLE_MDO_CHAMPSHIP_INRANK, + } + SendMsgToCenterAsync(m) case "clearRank": num, _ := strconv.Atoi(arg[1]) G_GameLogicPtr.RankMgr.ClearRank(num) diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index e71c8ad6..28301835 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -446,14 +446,18 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error { } randNum := 0 mergeList := make([]int, 0) - OrderDiff := DIFF_LOW + // 忽视上一个订单的难度,生成此订单时,难度默认为50%概率的中难度、50%概率的高难度 + OrderDiff := DIFF_MID + if GoUtil.RandNum(1, 100) <= 50 { + OrderDiff = DIFF_HIGH + } var err error for { if randNum > 50 { break } randNum++ - mergeList, OrderDiff, err = randSuperOrderChess(o, lv, Emit, EnergyMul) + mergeList, OrderDiff, err = randSuperOrderChess(o, lv, Emit, EnergyMul, OrderDiff) if err != nil { continue } diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index 9b6337b9..904d1c9b 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -427,7 +427,7 @@ func GetVirtualEnergy(MergeList, EmitList []int) int { } // 随机生成超级订单棋子 -func randSuperOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul int) ([]int, int, error) { +func randSuperOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul, OrderDiff int) ([]int, int, error) { initReflectChess(Emit, EnergyMul) filterPool(o) OrderN, err := userCfg.GetOrderNByLv(lv) @@ -440,7 +440,6 @@ func randSuperOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul int) ([]int, } // 生成订单难度和棋子数量 ChessNum := GoUtil.RandMap(RandChessNum) - OrderDiff := DIFF_HIGH ChessDiff := getChessDiff(ChessNum, OrderDiff, OrderN) mergeList := make([]int, 0, len(ChessDiff)) // 根据订单棋子难度生成棋子