From 8978dd1c93b322806bac51090d40e65cee33d90d Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 09 一月 2019 15:26:09 +0800 Subject: [PATCH] 5722 【后端】【1.5】跨服BOSS开发(支持刷跨服boss) --- ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py index 3937a1b..cde4e6f 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py @@ -25,6 +25,7 @@ import ChPyNetSendPack import PlayerDBGSEvent import NetPackCommon +import IpyGameDataPY import PyGameData # 获取玩家跨服服务器上的名字 @@ -54,6 +55,27 @@ return opName.decode('gbk').encode(GameWorld.GetCharacterEncoding()) + playerName +def GetServerCrossZoneIpyData(mapID, serverGroupID=0): + ## 获取本服对应跨服玩法分区地图信息 + if mapID not in ChConfig.Def_CrossZoneTableName: + return + if not serverGroupID: + serverGroupID = GameWorld.GetServerGroupID() + + tableName = ChConfig.Def_CrossZoneTableName[mapID] + ipyDataMgr = IpyGameDataPY.IPY_Data() + if not hasattr(ipyDataMgr, "Get%sCount" % tableName): + return + + for i in xrange(getattr(ipyDataMgr, "Get%sCount" % tableName)()): + ipyData = getattr(ipyDataMgr, "Get%sByIndex" % tableName)(i) + 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 + return + def IsCrossServerOpen(): ## 跨服服务器是否开放中 return GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerOpen) -- Gitblit v1.8.0