From 1e3a00e29042cbaa07c362911e247ec995ba9191 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 11 四月 2025 17:56:06 +0800 Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(FamilyGCZGroupSet数值1配置改为json格式) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py | 34 ++++++++++++---------------------- 1 files changed, 12 insertions(+), 22 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py index 3a82fa8..c5ac94a 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossFamilyGCZ.py +++ b/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"] -- Gitblit v1.8.0