From d50410deaed69bc1a07dcb02b0816f9321a34a69 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 19 四月 2019 17:39:36 +0800
Subject: [PATCH] 6457 【后端】【2.0】缥缈仙域开发单(宝藏流程调整)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py |   34 +++++++++++++++-------------------
 1 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
index ff3f03e..d4700f4 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
@@ -154,19 +154,19 @@
         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
     
-    if dataMapID == ChConfig.Def_FBMapID_CrossDemonKing:
-        mapPosInfo = IpyGameDataPY.GetFuncEvalCfg("CrossDemonKingMap", 2)
-    else:
+    dynamicLineMapDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 1)
+    if dataMapID not in dynamicLineMapDict:
         return
+    mapPosInfo = dynamicLineMapDict[dataMapID][0]
     posX, posY = mapPosInfo[:2]
     dist = mapPosInfo[2] if len(mapPosInfo) > 2 else 0
     if dist > 0:
@@ -176,7 +176,7 @@
         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
 
@@ -216,16 +216,11 @@
             #GameWorld.DebugLog("    等待中的玩家ID: %s" % copyMapObj.waitPlayerDict)
             return mapID, copyMapID, openState
         
-    if dataMapID == ChConfig.Def_FBMapID_CrossDemonKing:
-        mapIDList = IpyGameDataPY.GetFuncEvalCfg("CrossDemonKingMap", 1)
-    elif dataMapID == ChConfig.Def_FBMapID_CrossGrasslandLing:
-        mapIDList = [dataMapID]
-    elif dataMapID == ChConfig.Def_FBMapID_CrossGrasslandXian:
-        mapIDList = [dataMapID]      
-    # 其他地图待扩展
-    else:
+    dynamicLineMapDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 1)
+    if dataMapID not in dynamicLineMapDict:
         return
-        
+    mapIDList = dynamicLineMapDict[dataMapID][1]
+    
     openMapID, openCopyMapID = 0, 0
     for mapID in mapIDList:
         maxCopyMapCount = PyGameData.g_crossMapCopyMapCountDict.get(mapID, 0)
@@ -264,12 +259,12 @@
     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
@@ -282,6 +277,7 @@
         return
     copyMapObj = PyGameData.g_crossDynamicLineCopyMapInfo[key]
     copyMapObj.openState = 1
+    funcLineID = copyMapObj.funcLineID
     
     # 通知子服等待中的玩家可以进入副本
     serverPlayerIDListDict = {}
@@ -296,7 +292,7 @@
     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)

--
Gitblit v1.8.0