| | |
| | |
|
| | | # 匹配刷新
|
| | | 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":
|
| | |
| | |
|
| | | return msgList + [retDict]
|
| | |
|
| | | def __DoArenaMatchRefresh(curPlayer, isRefresh, playerLV, playerScore):
|
| | | def __DoArenaMatchRefresh(curPlayer, isRefresh, playerLV, playerScore, gmMatchIDList=None):
|
| | | ## 玩家刷新匹配对手
|
| | |
|
| | | playerID = curPlayer.GetPlayerID()
|
| | |
| | | % (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)
|
| | |
|
| | | # 随机机器人备用信息
|