| | |
| | | GameWorld.DebugAnswer(curPlayer, "人数最大64,不足则可能有轮空的组,指定玩家ID不足人数则以假人代替")
|
| | | GameWorld.DebugAnswer(curPlayer, "指定玩家分组: Championship 分组状态 分区ID 玩家ID1 ID2 ...")
|
| | | GameWorld.DebugAnswer(curPlayer, "分组状态:641-64强;321-32强;161-16强;81-8强;ID1ID2两两分在一组")
|
| | | GameWorld.DebugAnswer(curPlayer, "如果没有指定ID则该组重新随机匹配")
|
| | | GameWorld.DebugAnswer(curPlayer, "命令需在对应的阶段设置才有效;")
|
| | | GameWorld.DebugAnswer(curPlayer, "重置活动数据需在非活动时间重置,不然可能导致活动状态异常")
|
| | |
|
| | |
| | |
|
| | | state = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_CrossChampionshipState)
|
| | | champMgr = CrossChampionship.GetChampionshipMgr()
|
| | | pkZoneIDList = champMgr.GetChampPKZoneIDList()
|
| | | #pkZoneIDList = champMgr.GetChampPKZoneIDList()
|
| | | if value1 == 0:
|
| | | if state in ShareDefine.CrossChampionshipStateList and state != ShareDefine.CrossChampionshipStateList[0]:
|
| | | GameWorld.DebugAnswerCross(playerID, serverGroupID, "重置数据需在非活动中或64强分组前")
|
| | |
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_CrossChampionshipID, 0)
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_CrossChampionshipState, 0)
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_CrossChampionshipStateError, 0)
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_CrossChampionshipErrorDo, 0)
|
| | |
|
| | | champMgr.ClearPKZone()
|
| | | if isResetOfficial:
|
| | |
| | | zoneID = gmList[1]
|
| | | batPlayerCount = min(maxPlayerCount, gmList[2])
|
| | | setPlayerIDList = gmList[3:]
|
| | | if zoneID not in pkZoneIDList:
|
| | | pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
|
| | | if not pkZoneMgr:
|
| | | GameWorld.DebugAnswerCross(playerID, serverGroupID, "不存在该分区!zoneID=%s" % zoneID)
|
| | | return
|
| | | if len(setPlayerIDList) < batPlayerCount:
|
| | | # 不足的机器人补足
|
| | | setPlayerIDList += range(1001, 1001 + (batPlayerCount - len(setPlayerIDList)))
|
| | | pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
|
| | | pkZoneMgr.playerDict = {} # 清空玩家,重新设置
|
| | | CrossChampionship.Send_CrossServerMsg_ChampionshipPlayer(isSync=True)
|
| | | CrossChampionship.Send_CrossServerMsg_ChampionshipPlayer(isSync=True, clearPlayer=True)
|
| | | for pID in setPlayerIDList:
|
| | | batPlayer = CrossChampionship.ChampionshipBatPlayer()
|
| | | batPlayer.zoneID = zoneID
|
| | |
| | | groupMark = value1 / 10
|
| | | zoneID = gmList[1]
|
| | | groupPlayerIDList = gmList[2:]
|
| | | |
| | | pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
|
| | | if not pkZoneMgr:
|
| | | GameWorld.DebugAnswerCross(playerID, serverGroupID, "不存在该分区!zoneID=%s" % zoneID)
|
| | | return
|
| | | if not groupPlayerIDList:
|
| | | pkZoneMgr.battleInfo.pop(groupMark, None)
|
| | | CrossChampionship.DoCrossChampionshipGroupRand(groupMark)
|
| | | GameWorld.DebugAnswerCross(playerID, serverGroupID, "%s强赛重新随机匹配!" % groupMark)
|
| | | return
|
| | | |
| | | for i in range(len(groupPlayerIDList))[::2]:
|
| | | vsI = i + 1
|
| | | if len(groupPlayerIDList) < vsI:
|
| | |
| | | GameWorld.Log("ID=%s,state=%s,stateError=%s,pkZoneIDList=%s" % (ID, state, stateError, pkZoneIDList))
|
| | | for zoneID in pkZoneIDList:
|
| | | pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
|
| | | if not pkZoneMgr:
|
| | | continue
|
| | |
|
| | | # self.guessInfo = {} # 竞猜信息 {竞猜类型:[ChampionshipGuess, ...], ...}
|
| | | # self.superPlayerCountInfo = {} # {竞猜类型:{playerID:支持人数, ...}, ...}
|
| | |
| | | GameWorld.Log(" groupMark=%s,battleNum=%s,playerIDA=%s,playerIDB=%s,winPlayerID=%s"
|
| | | % (groupMark, battleNum, batObj.playerIDA, batObj.playerIDB, batObj.winPlayerID))
|
| | |
|
| | | GameWorld.Log("=== 竞猜信息 === zoneID=%s,%s" % (zoneID, pkZoneMgr.guessInfo.keys()))
|
| | | for guessType, playerGuessDict in pkZoneMgr.guessInfo.items():
|
| | | GameWorld.Log(" zoneID=%s,guessType=%s,supportCountInfo=%s" % (zoneID, guessType, pkZoneMgr.supportCountInfo.get(guessType, {})))
|
| | | GameWorld.Log(" guessPlayerIDList=%s" % playerGuessDict.keys())
|
| | | for guessPlayerID, guessObjList in playerGuessDict.items():
|
| | | GameWorld.Log(" guessPlayerID=%s,guessObjListLen=%s" % (guessPlayerID, len(guessObjList)))
|
| | | for guessObj in guessObjList:
|
| | | GameWorld.Log(" guessPlayerID=%s,tagPlayerID=%s,moneyTotal=%s,guessRank=%s,isClose=%s" |
| | | % (guessPlayerID, guessObj.tagPlayerID, guessObj.moneyTotal, guessObj.guessRank, guessObj.isClose))
|
| | | GameWorld.Log(" ===")
|
| | | |
| | | offZoneIDList = champMgr.GetChampOfficialZoneIDList()
|
| | | GameWorld.Log("仙官分区: offZoneIDList=%s" % offZoneIDList)
|
| | | for zoneID in offZoneIDList:
|
| | |
| | | offObj = offZoneMgr.GetOfficialObj(officialID)
|
| | | if not offObj:
|
| | | continue
|
| | | GameWorld.Log(" officialID=%s,playerID=%s,rank=%s,worshipCount=%s,applyPlayerIDList=%s,challengeCount=%s" |
| | | % (officialID, offObj.playerID, offObj.rank, offObj.worshipCount, offObj.applyPlayerInfo.keys(), len(offObj.challengeList)))
|
| | | GameWorld.Log(" officialID=%s,playerID=%s,rank=%s,worshipCount=%s,worshipDouble=%s,applyPlayerIDList=%s,challengeCount=%s,lastDismissJuniorTime=%s" |
| | | % (officialID, offObj.playerID, offObj.rank, offObj.worshipCount, offObj.worshipDouble, offObj.applyPlayerInfo.keys(), len(offObj.challengeList), offObj.lastDismissJuniorTime))
|
| | |
|
| | | GameWorld.Log("==================================================")
|
| | | return
|