From f12bbdcbaebff76914ae6dc735941d19f8f4e87f Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 25 六月 2019 02:00:11 +0800
Subject: [PATCH] 860312 印记飘字的优先级高于压制

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py |   53 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 14 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 57fb5d0..1fabaab 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
@@ -20,8 +20,11 @@
 import CrossRealmPlayer
 import IPY_GameWorld
 import ChPyNetSendPack
+import CrossPlayerData
 import NetPackCommon
 import ChConfig
+import FBCommon
+import FBLogic
 
 
 #------------------------------------------------------------------------------ 
@@ -49,11 +52,11 @@
     GameWorld.Log("GY_Query_CrossRealmReg DoResult %s" % funResult, curPlayer.GetPlayerID())
     if not resultInfo:
         return
-    registerMap, mapID, dataMapID, copyMapID, posX, posY = resultInfo
-    RegisterEnterCrossServer(curPlayer, registerMap, mapID, dataMapID, copyMapID, posX, posY)
+    registerMap, mapID, dataMapID, copyMapID, posX, posY, lineID = resultInfo
+    RegisterEnterCrossServer(curPlayer, registerMap, mapID, dataMapID, copyMapID, posX, posY, lineID)
     return
 
-def RegisterEnterCrossServer(curPlayer, registerMap, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0):
+def RegisterEnterCrossServer(curPlayer, registerMap, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0, lineID=0):
     '''
     @param registerMap: 一般是dataMapID
     '''
@@ -67,31 +70,52 @@
         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.GetServerCrossZoneIpyData(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()
+        mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetMapID(), zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY()
+    
+    if not posX or not posY:
+        fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID)
+        if fbLineIpyData:
+            tick = GameWorld.GetGameWorld().GetTick()
+            ipyEnterPosInfo = FBCommon.GetFBLineEnterPosInfo(mapID, lineID, fbLineIpyData)
+            retPos = FBLogic.OnGetFBEnterPos(curPlayer, mapID, lineID, ipyEnterPosInfo, tick)
+            if not retPos:
+                GameWorld.ErrLog("未找到进入副本坐标!mapID=%s,lineID=%s" % (mapID, lineID))
+                return
+            posX, posY = retPos
             
-    if not mapID:
+    if not mapID or not posX or not posY:
         return
     
-    #跨服前更新自己所属服务器组ID
-    PlayerControl.UpdPlayerServerGroupID(curPlayer)
+    if not FBLogic.OnRegEnterCrossFB(curPlayer, mapID, lineID):
+        GameWorld.ErrLog("OnRegEnterCrossFB 进入跨服副本注册失败,进入条件不足!无法注册! mapID=%s,lineID=%s" % (mapID, lineID), playerID)
+        return
     
     if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList:
         prepareEnterCrossServer = ChPyNetSendPack.tagMCPrepareEnterCrossServer()
         prepareEnterCrossServer.DataMapID = registerMap
         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)
-    GameWorld.Log("    发送跨服玩家数据注册: registerMap=%s,zoneID=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" 
-                  % (registerMap, zoneID, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID)
-    return
+    GameWorld.Log("    发送跨服玩家数据注册: registerMap=%s,lineID=%s,zoneID=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" 
+                  % (registerMap, lineID, zoneID, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID)
+    return True
 
 ## 跨服赛报名结果(上传数据)
 #  @param index 玩家索引
@@ -102,6 +126,7 @@
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
     registerMap = curPlayer.NomalDictGetProperty(ChConfig.Def_PlayerKey_CrossRegisterMap)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, 0)
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_RequestEnterCrossServerTick, 0)
     playerID = curPlayer.GetPlayerID()
     result = registerResult.GetResult()
     GameWorld.Log("GameServer_MergeRegisterResult registerMap=%s,result=%s" % (registerMap, result), playerID)
@@ -113,7 +138,7 @@
     
     if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList:
         CrossRealmPlayer.DoEnterCrossRealm(curPlayer)
-        PlayerControl.SetCrossRealmState(curPlayer, registerMap)
+        PlayerControl.SetCrossMapID(curPlayer, registerMap)
         NetPackCommon.SendFakePack(curPlayer, ChPyNetSendPack.tagMCStartEnterCrossServer())
         return
     

--
Gitblit v1.8.0