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/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py | 40 ++++++++++++---------------------------- 1 files changed, 12 insertions(+), 28 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py index f3ff343..c7ab3e3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py @@ -21,7 +21,6 @@ import IPY_GameWorld import ChPyNetSendPack import NetPackCommon -import IpyGameDataPY import ChConfig @@ -55,6 +54,9 @@ return def RegisterEnterCrossServer(curPlayer, registerType, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0): + ''' + @param registerType: 一般是dataMapID + ''' playerID = curPlayer.GetPlayerID() if GameWorld.IsCrossServer(): GameWorld.Log(" 跨服服务器不允许上传报名数据!", playerID) @@ -65,18 +67,15 @@ GameWorld.ErrLog("跨服已经在上传数据,不重复提交!playerRegisterType=%s,registerType=%s" % (playerRegisterType, registerType), curPlayer.GetPlayerID()) return + zoneID = 0 if not mapID: - if registerType in ChConfig.RegisterEnter_CrossServerMapIDList: - registerTableName = "CrossPenglaiZone" - else: + zoneIpyData = CrossRealmPlayer.GetServerCrossZoneIpyData(registerType) + if not zoneIpyData: + GameWorld.ErrLog("找不到该服务器对应跨服分区: registerType=%s" % (registerType)) return - RegisterMapInfo = GetCurServerGroupIDRegisterMapInfo(registerTableName) - if not RegisterMapInfo: - GameWorld.ErrLog("找不到该服务器对应跨服分区: registerType=%s,registerTableName=%s" % (registerType, registerTableName)) - return - mapID, copyMapID, posX, posY = RegisterMapInfo - dataMapID = mapID - + zoneID, mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetZoneID(), zoneIpyData.GetMapID(), \ + zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY() + if not mapID: return @@ -90,23 +89,8 @@ curPlayer.SetDict(ChConfig.Def_PlayerKey_CrossRegisterType, registerType) #curPlayer.SendMergeRegisterPlayer(mapID, dataMapID, copyMapID, posX, posY) curPlayer.SendMergeRegisterPlayerAfterChange(CrossRealmPlayer.GetCrossPlayerName(curPlayer), mapID, dataMapID, copyMapID, posX, posY) - GameWorld.Log(" 发送跨服玩家数据注册: registerType=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" - % (registerType, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID) - return - -def GetCurServerGroupIDRegisterMapInfo(tableName): - ipyDataMgr = IpyGameDataPY.IPY_Data() - if not hasattr(ipyDataMgr, "Get%sCount" % tableName): - return - - serverGroupID = GameWorld.GetServerGroupID() - 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.GetMapID(), ipyData.GetCopyMapID(), ipyData.GetPosX(), ipyData.GetPosY() + GameWorld.Log(" 发送跨服玩家数据注册: registerType=%s,zoneID=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" + % (registerType, zoneID, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID) return ## 跨服赛报名结果(上传数据) -- Gitblit v1.8.0