【限时事件】超级订单优化

This commit is contained in:
hahwu 2026-02-04 18:20:21 +08:00
parent 9b08cdebe6
commit 56157dd32c
3 changed files with 25 additions and 4 deletions

View File

@ -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)

View File

@ -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
}

View File

@ -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))
// 根据订单棋子难度生成棋子