From 71ae4bc172ca3c70e3a6ba2e09ff8bf4f2b57872 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 09 七月 2021 18:20:04 +0800
Subject: [PATCH] 8585 【主干】【BT2】【BT3】【后端】竞技场(Arena命令支持指定匹配玩家ID)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
index 7be1215..9a35b2a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldArena.py
@@ -526,7 +526,7 @@
     
     # 匹配刷新
     if cmd == "MatchRefresh":
-        __DoArenaMatchRefresh(curPlayer, cmdDict["isRefresh"], cmdDict["playerLV"], cmdDict["playerScore"])
+        __DoArenaMatchRefresh(curPlayer, cmdDict["isRefresh"], cmdDict["playerLV"], cmdDict["playerScore"], cmdDict.get("gmMatchIDList"))
         
     # 对战结算
     elif cmd == "BattleResult":
@@ -534,7 +534,7 @@
         
     return msgList + [retDict]
 
-def __DoArenaMatchRefresh(curPlayer, isRefresh, playerLV, playerScore):
+def __DoArenaMatchRefresh(curPlayer, isRefresh, playerLV, playerScore, gmMatchIDList=None):
     ## 玩家刷新匹配对手
     
     playerID = curPlayer.GetPlayerID()
@@ -643,6 +643,27 @@
                                        % (higherLackCount, randOrderMin, randOrderMax, randOrder, matchOrderList), playerID)
                     
     matchOrderList.sort()
+    # GM指定匹配测试
+    if gmMatchIDList != None and curPlayer.GetGMLevel():
+        gmMatchOrderList = []
+        for gmMatchID in gmMatchIDList:
+            if gmMatchID == playerID:
+                GameWorld.DebugAnswer(curPlayer, "目标ID不能是自己!无法匹配!%s" % gmMatchID)
+                continue
+            gmMatchOrder = billBoard.IndexOfByID(gmMatchID) + 1
+            if gmMatchOrder <= 0:
+                GameWorld.DebugAnswer(curPlayer, "目标ID不在榜单上!无法匹配!%s" % gmMatchID)
+                continue
+            if gmMatchOrder in matchOrderList:
+                continue
+            gmMatchOrderList.append(gmMatchOrder)
+            GameWorld.DebugAnswer(curPlayer, "指定匹配ID(%s),order(%s)" % (gmMatchID, gmMatchOrder))
+            
+        GameWorld.DebugLog("matchOrderList=%s,needMatchCount=%s" % (str(matchOrderList), needMatchCount))
+        if matchOrderList:
+            matchOrderList = matchOrderList[:needMatchCount - len(gmMatchOrderList)]
+        matchOrderList += gmMatchOrderList
+        matchOrderList.sort()
     GameWorld.DebugLog("    最终匹配到的名次列表: matchOrderList=%s" % matchOrderList, playerID)
     
     # 随机机器人备用信息

--
Gitblit v1.8.0