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