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