From e43b18b34a4696e012c4a5e8161724a6bbade2e4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:19:08 +0800 Subject: [PATCH] =?UTF-8?q?=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/mod/order/OrderFunc.go | 47 +++++++++++++++++++++----- 1 file changed, 39 insertions(+), 8 deletions(-) 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)