| | |
| | | GameWorld.ErrLog("跨服已经在上传数据,不重复提交!playerRegisterMap=%s,registerMap=%s" % (playerRegisterMap, registerMap), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | | zoneID = 0
|
| | | #跨服前更新自己所属服务器组ID
|
| | | PlayerControl.UpdPlayerServerGroupID(curPlayer)
|
| | | serverGroupID = PlayerControl.GetPlayerServerGroupID(curPlayer)
|
| | | zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(registerMap, serverGroupID)
|
| | | if not zoneIpyData:
|
| | | return
|
| | | zoneID = zoneIpyData.GetZoneID()
|
| | | |
| | | if not mapID:
|
| | | zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(registerMap)
|
| | | zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, registerMap)
|
| | | if not zoneIpyData:
|
| | | GameWorld.ErrLog("找不到该服务器对应跨服分区: registerMap=%s" % (registerMap))
|
| | | return
|
| | | zoneID, mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetZoneID(), zoneIpyData.GetMapID(), \
|
| | | zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY()
|
| | | |
| | | if not mapID:
|
| | | return
|
| | | mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetMapID(), zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY()
|
| | |
|
| | | if not posX and not posY:
|
| | | if not posX or not posY:
|
| | | fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID)
|
| | | if fbLineIpyData:
|
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | |
| | | GameWorld.ErrLog("未找到进入副本坐标!mapID=%s,lineID=%s" % (mapID, lineID))
|
| | | return
|
| | | posX, posY = retPos
|
| | | |
| | | if not mapID or not posX or not posY:
|
| | | return
|
| | |
|
| | | if not FBLogic.OnRegEnterCrossFB(curPlayer, mapID, lineID):
|
| | | GameWorld.ErrLog("OnRegEnterCrossFB 进入跨服副本注册失败,进入条件不足!无法注册! mapID=%s,lineID=%s" % (mapID, lineID), playerID)
|
| | | return
|
| | | |
| | | #跨服前更新自己所属服务器组ID
|
| | | PlayerControl.UpdPlayerServerGroupID(curPlayer)
|
| | |
|
| | | if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList:
|
| | | prepareEnterCrossServer = ChPyNetSendPack.tagMCPrepareEnterCrossServer()
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, prepareEnterCrossServer)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, registerMap)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqCrossFBFuncLine, lineID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqCrossFBZoneID, zoneID)
|
| | | CrossPlayerData.OnPlayerCrossReg(curPlayer)
|
| | | #curPlayer.SendMergeRegisterPlayer(mapID, dataMapID, copyMapID, posX, posY)
|
| | | curPlayer.SendMergeRegisterPlayerAfterChange(CrossRealmPlayer.GetCrossPlayerName(curPlayer), mapID, dataMapID, copyMapID, posX, posY)
|