10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(FamilyGCZGroupSet数值1配置改为json格式)
1个文件已修改
34 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py
@@ -1169,12 +1169,12 @@
    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()
@@ -1211,10 +1211,10 @@
    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
@@ -1405,19 +1405,19 @@
    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()
@@ -1497,16 +1497,6 @@
    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"]