| | |
| | | DoRoundOver(zoneID)
|
| | | # 参与仙盟数对应分组及晋级规则 {参与仙盟数:{轮次:{战场类型:[组数, 前x名晋级, 后x名降级], ...}, ...}, ...}
|
| | | FamilyGCZGroupSet = IpyGameDataPY.GetFuncEvalCfg("FamilyGCZGroupSet", 1, {})
|
| | | if joinFamilyCnt not in FamilyGCZGroupSet:
|
| | | if str(joinFamilyCnt) not in FamilyGCZGroupSet:
|
| | | return
|
| | | roundSetDict = FamilyGCZGroupSet[joinFamilyCnt]
|
| | | if curRound not in roundSetDict:
|
| | | roundSetDict = FamilyGCZGroupSet[str(joinFamilyCnt)]
|
| | | if str(curRound) not in roundSetDict:
|
| | | return
|
| | | batTypeDict = roundSetDict[curRound]
|
| | | batTypeDict = roundSetDict[str(curRound)]
|
| | |
|
| | | groupValue1 = zoneID
|
| | | gczMgr = GetFamilyGCZMgr()
|
| | |
| | | zone.OnRoundReset(curRound)
|
| | |
|
| | | for batType in BatTypeList: # 按战场类型顺序遍历处理
|
| | | if batType not in batTypeDict:
|
| | | if str(batType) not in batTypeDict:
|
| | | # 本轮不需要此战场类型分组
|
| | | continue
|
| | | groupCnt = batTypeDict[batType][0] # 本轮该战场类型分组
|
| | | groupCnt = batTypeDict[str(batType)][0] # 本轮该战场类型分组
|
| | | if not groupCnt:
|
| | | GameWorld.Log("本轮战场不需要分组: zoneID=%s,curRound=%s,batType=%s" % (zoneID, curRound, batType))
|
| | | continue
|
| | |
| | | joinFamilyCnt = zone.joinFamilyCnt
|
| | | # 参与仙盟数对应分组及晋级规则 {参与仙盟数:{轮次:{战场类型:[组数, 前x名晋级, 后x名降级], ...}, ...}, ...}
|
| | | FamilyGCZGroupSet = IpyGameDataPY.GetFuncEvalCfg("FamilyGCZGroupSet", 1, {})
|
| | | if joinFamilyCnt not in FamilyGCZGroupSet:
|
| | | if str(joinFamilyCnt) not in FamilyGCZGroupSet:
|
| | | return
|
| | | roundSetDict = FamilyGCZGroupSet[joinFamilyCnt]
|
| | | if roundNum not in roundSetDict:
|
| | | roundSetDict = FamilyGCZGroupSet[str(joinFamilyCnt)]
|
| | | if str(roundNum) not in roundSetDict:
|
| | | return
|
| | | batTypeDict = roundSetDict[roundNum]
|
| | | batTypeDict = roundSetDict[str(roundNum)]
|
| | |
|
| | | billboardMgr = PyDataManager.GetCrossBillboardManager()
|
| | | GameWorld.Log("========== 仙盟攻城战轮次结算: zoneID=%s,roundNum=%s" % (zoneID, roundNum))
|
| | | for batType, groupDict in zone.roundGroupDict.items():
|
| | | if batType not in batTypeDict:
|
| | | if str(batType) not in batTypeDict:
|
| | | continue
|
| | | batTypeSet = batTypeDict[batType]
|
| | | batTypeSet = batTypeDict[str(batType)]
|
| | | upRank = batTypeSet[1] # 前x晋级
|
| | | downRank = batTypeSet[2] if len(batTypeSet) > 2 else 0 # 后x名降级,为0时不降级
|
| | | groupNumList = groupDict.keys()
|
| | |
| | | msgInfo["ActMsgType"] = actMsgType
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_FamilyGCZ, msgInfo, serverGroupIDList)
|
| | | return
|
| | |
|
| | | #def GetMaxRound(joinFamilyCnt):
|
| | | # ## 获取最大轮次
|
| | | # FamilyGCZGroupSet = IpyGameDataPY.GetFuncEvalCfg("FamilyGCZGroupSet", 1, {})
|
| | | # if joinFamilyCnt not in FamilyGCZGroupSet:
|
| | | # return 0
|
| | | # roundSetDict = FamilyGCZGroupSet[joinFamilyCnt]
|
| | | # if not roundSetDict:
|
| | | # return 0
|
| | | # return max(roundSetDict)
|
| | |
|
| | | def ClientServerMsg_FamilyGCZ(serverGroupID, msgData):
|
| | | ActMsgType = msgData["ActMsgType"]
|