From ef0307df448a1187d0caecc03121bec88d4d2cad Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 28 四月 2019 11:42:03 +0800
Subject: [PATCH] 3406 【2.0】妖王副本生存时间到后boss未击杀,无法再次进入。

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
index 7731ca7..747aea3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
@@ -77,8 +77,7 @@
     #调用副本开启触发器
     FBLogic.OnOpenFB(tick)
     
-    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
-        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
+    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
     return
 
 ## 副本关闭
@@ -178,14 +177,16 @@
     #根据是否收缩型FB处理
     FreeOrClearFBByAutoSize(gameWorld)
     
-    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
-        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
+    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
         
     gameWorld.SetPropertyID(0)
     PyGameData.g_crossPlayerServerGroupIDInfo.pop(copyMapID, None)
     return
 
 def GameServer_DynamicLineMapStateChange(gameWorld, state):
+    if gameWorld.GetMapID() not in ChConfig.Def_CrossDynamicLineMap:
+        return
+    
     realMapID, copyMapID = gameWorld.GetRealMapID(), gameWorld.GetCopyMapID()
     if state == IPY_GameWorld.fbosWaitForClose:
         crossFuncLineDataCache = FBLogic.OnGetCrossFuncLineDataCache()
@@ -195,6 +196,7 @@
         
     msgInfo = str(msgInfo)
     GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "DynamicLineMapStateChange", msgInfo, len(msgInfo))
+    GameWorld.Log("DynamicLineMapStateChange realMapID=%s, copyMapID=%s, PropertyID=%s, state=%s" % (realMapID, copyMapID, gameWorld.GetPropertyID(), state))
     return
 
 ##根据表中的收缩类型释放或者清空副本状态
@@ -276,6 +278,7 @@
     
     ##踢人
     __KickAllPlayerAndCloseFB(gameWorld, tick)
+    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
     return
 
 ## 副本踢出玩家逻辑
@@ -632,8 +635,7 @@
     GameWorld.GetGameWorld().SetCloseFBTick(tick)
     
     gameWorld = GameWorld.GetGameWorld()
-    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
-        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
+    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
     return
 
 ## 玩家离开地图时,尝试关闭副本

--
Gitblit v1.8.0