| | |
| | | return
|
| | |
|
| | | playerIDList = [playerID]
|
| | | retInfo = [playerIDList, dataMapID, mapID, copyMapID]
|
| | | retInfo = [playerIDList, dataMapID, mapID, copyMapID, funcLineID]
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_EnterFBRet, retInfo, [serverGroupID])
|
| | | return
|
| | |
|
| | | def CrossServerMsg_EnterFBRet(msgData, tick):
|
| | | ## 收到跨服服务器动态分配的跨服副本进入信息
|
| | |
|
| | | playerIDList, dataMapID, mapID, copyMapID = msgData
|
| | | playerIDList, dataMapID, mapID, copyMapID, funcLineID = msgData
|
| | |
|
| | | dynamicLineMapDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 1)
|
| | | if dataMapID not in dynamicLineMapDict:
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if not curPlayer:
|
| | | continue
|
| | | CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, mapID, dataMapID, copyMapID, posX, posY)
|
| | | CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, mapID, dataMapID, copyMapID, posX, posY, lineID=funcLineID)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | GameWorld.GetPlayerManager().MapServer_QueryPlayer(0, 0, 0, mapID, "OpenFB", msgInfo, len(msgInfo))
|
| | | return mapID, copyMapID, openState
|
| | |
|
| | | def GetCrossDynamicLineZoneID(dataMapID, mapID, copyMapID):
|
| | | def GetCrossDynamicLineZoneID(mapID, realMapID, copyMapID):
|
| | | ## 获取跨服动态分配的虚拟线路对应分区ID
|
| | | zoneLineDict = PyGameData.g_crossDynamicLineInfo.get(dataMapID, {})
|
| | | zoneLineDict = PyGameData.g_crossDynamicLineInfo.get(mapID, {})
|
| | | for key, funcLineObjList in zoneLineDict.items():
|
| | | for funcLineObj in funcLineObjList:
|
| | | if funcLineObj.mapID == mapID and funcLineObj.copyMapID == copyMapID:
|
| | | if funcLineObj.mapID == realMapID and funcLineObj.copyMapID == copyMapID:
|
| | | zoneID = key[0]
|
| | | return zoneID
|
| | | return 0
|
| | |
| | | return
|
| | | copyMapObj = PyGameData.g_crossDynamicLineCopyMapInfo[key]
|
| | | copyMapObj.openState = 1
|
| | | funcLineID = copyMapObj.funcLineID
|
| | |
|
| | | # 通知子服等待中的玩家可以进入副本
|
| | | serverPlayerIDListDict = {}
|
| | |
| | | GameWorld.Log("动态分配虚拟线路启动成功,通知子服等待玩家可进入: dataMapID=%s,mapID=%s,copyMapID=%s,serverPlayerIDListDict=%s"
|
| | | % (dataMapID, mapID, copyMapID, serverPlayerIDListDict))
|
| | | for serverGroupID, playerIDList in serverPlayerIDListDict.items():
|
| | | retInfo = [playerIDList, dataMapID, mapID, copyMapID]
|
| | | retInfo = [playerIDList, dataMapID, mapID, copyMapID, funcLineID]
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_EnterFBRet, retInfo, [serverGroupID])
|
| | |
|
| | | #GameWorld.DebugLog(" PyGameData.g_crossDynamicLineInfo=%s" % PyGameData.g_crossDynamicLineInfo)
|