From 545986a8fdde345b28cf3004be84c6cfe79a3dc1 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 19 四月 2019 11:29:12 +0800 Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(跨服分区逻辑优化,支持跨服妖王分区状态同步) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossRealmPlayer.py | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossRealmPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossRealmPlayer.py index ec3f786..23e5938 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossRealmPlayer.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossRealmPlayer.py @@ -36,10 +36,11 @@ return opName.decode('gbk').encode(GameWorld.GetCharacterEncoding()) + playerName -def GetCrossCommZoneIpyDataByServerGroupID(serverGroupID): - ## 获取跨服常规分区 +def GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID): + ## 获取跨服分区 + zoneTypeName = ChConfig.Def_CrossZoneTypeName.get(mapID, "CrossZoneComm") crossZoneName = GameWorld.GetCrossZoneName() - ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("CrossZoneComm", {"CrossZoneName":crossZoneName}, True) + ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition(zoneTypeName, {"CrossZoneName":crossZoneName}, True) if not ipyDataList: return for ipyData in ipyDataList: @@ -48,6 +49,7 @@ if (isinstance(serverGroupIDInfo, tuple) and serverGroupIDInfo[0] <= serverGroupID <= serverGroupIDInfo[1]) \ or (isinstance(serverGroupIDInfo, int) and serverGroupIDInfo == serverGroupID): return ipyData + GameWorld.ErrLog("没有找到跨服玩法对应分区! mapID=%s, serverGroupID=%s, zoneTypeName=%s" % (mapID, serverGroupID, zoneTypeName)) return def GetServerCrossZoneMapIpyData(mapID, serverGroupID=0): @@ -59,11 +61,11 @@ if GameWorld.IsCrossServer(): return serverGroupID = GameWorld.GetServerGroupID() - zoneIpyData = GetCrossCommZoneIpyDataByServerGroupID(serverGroupID) + zoneIpyData = GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID) if not zoneIpyData: return - commZoneID = zoneIpyData.GetZoneID() - return IpyGameDataPY.GetIpyGameDataByCondition(tableName, {"ZoneID":commZoneID}) + zoneID = zoneIpyData.GetZoneID() + return IpyGameDataPY.GetIpyGameDataByCondition(tableName, {"ZoneID":zoneID}) def IsCrossServerOpen(): ## 跨服服务器是否开放中 -- Gitblit v1.8.0