From b0e150a77873e570c2ca672daba998c35f7a3dfa Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 15 十一月 2022 19:16:07 +0800 Subject: [PATCH] 9748 【BT7】跨服BOSS定时活动(增加常规跨服分区ID通知C010) --- ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py index a4815ec..a59b095 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py @@ -92,6 +92,21 @@ ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition(zoneTypeName, {"CrossZoneName":crossZoneName}, True) return ipyDataList +def GetServerCommCrossZoneID(serverGroupID): + ## 获取跨服常规分区 + zoneTypeName = "CrossZoneComm" + crossZoneName = GameWorld.GetCrossZoneName() + ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition(zoneTypeName, {"CrossZoneName":crossZoneName}, True) + if not ipyDataList: + return 0 + for ipyData in ipyDataList: + serverGroupIDList = ipyData.GetServerGroupIDList() + for serverGroupIDInfo in serverGroupIDList: + if (isinstance(serverGroupIDInfo, tuple) and serverGroupIDInfo[0] <= serverGroupID <= serverGroupIDInfo[1]) \ + or (isinstance(serverGroupIDInfo, int) and serverGroupIDInfo == serverGroupID): + return ipyData.GetZoneID() + return 0 + def GetServerCrossZoneMapIpyData(zoneID, mapID): ## 获取本服对应跨服玩法分区地图信息 - 仅适用于固定地图及虚拟分线的跨服玩法 if mapID not in ChConfig.Def_CrossZoneMapTableName: @@ -434,6 +449,7 @@ if not IsCrossServerOpen(): return + Sync_CrossZoneInfo(curPlayer) LoginDoUnNotifyCrossMsg(curPlayer) return @@ -467,5 +483,8 @@ curPlayer.MapServer_QueryPlayerResult(0, 0, callName, msgInfo, len(msgInfo)) return - - \ No newline at end of file +def Sync_CrossZoneInfo(curPlayer): + clientPack = ChPyNetSendPack.tagGCCrossZoneInfo() + clientPack.CommZoneID = GetServerCommCrossZoneID(GameWorld.GetServerGroupID()) + NetPackCommon.SendFakePack(curPlayer, clientPack) + return -- Gitblit v1.8.0