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