diff --git a/src/server/game/mod/order/OrderFunc.go b/src/server/game/mod/order/OrderFunc.go index c1387ad8..9fdc7bd7 100644 --- a/src/server/game/mod/order/OrderFunc.go +++ b/src/server/game/mod/order/OrderFunc.go @@ -145,15 +145,46 @@ func getChessDiff(ChessNum, OrderDiff, OrderN int) map[int]int { func getChessLv(Min, Max, Diff int) int { Start := Min End := Max - switch Diff { - case DIFF_LOW: - End = Min + (Max-Min+1)/3 - 1 - case DIFF_MID: - Start = Min + (Max-Min+1)/3 - End = Min + (Max-Min+1)/3*2 - 1 - case DIFF_HIGH: - Start = Min + (Max-Min+1)/3*2 + if Max-Min >= 5 { + switch Diff { + case DIFF_LOW: + End = Min + (Max-Min+1)/3 - 1 + case DIFF_MID: + Start = Min + (Max-Min+1)/3 + End = Min + (Max-Min+1)/3*2 - 1 + case DIFF_HIGH: + Start = Min + (Max-Min+1)/3*2 + } } + if Max-Min == 2 { + Start = Max - Diff + 1 + End = Start + } + if Max-Min == 3 { + switch Diff { + case DIFF_LOW: + End = Min + 1 + case DIFF_MID: + Start = Min + 2 + End = Min + 2 + case DIFF_HIGH: + Start = Min + 3 + End = Min + 3 + } + } + if Max-Min == 4 { + switch Diff { + case DIFF_LOW: + End = Min + 1 + case DIFF_MID: + Start = Min + 2 + End = Min + 3 + case DIFF_HIGH: + Start = Min + 4 + End = Min + 4 + } + } + Start = max(Min, Start) End = max(Start, End) End = min(Max, End)