From 4769b561d767b92be5da180262610695ae3d6605 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 06 十一月 2018 14:51:29 +0800
Subject: [PATCH] 2290 【1.2】【1.1】某些副本关闭没有释放副本线路

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py |    8 +++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py            |    2 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                        |    3 +++
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 216727c..367993d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -1800,6 +1800,9 @@
 # 可重复进的副本
 Def_NoLimitEnterCntMap = [Def_FBMapID_FamilyParty, Def_FBMapID_FamilyWar, Def_FBMapID_FamilyInvade]
 
+# 无玩家时不自动关闭的自伸缩副本
+Def_NoPlayerNotCloseAutoSizeMap = [Def_FBMapID_FamilyInvade, Def_FBMapID_FamilyBossMap]
+
 # 不可切换PK模式的地图
 Def_CanNotChangeAtkModelMap = []
 
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 ae3e662..5426941 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
@@ -308,7 +308,7 @@
         return
     
     #特殊副本,不执行这个逻辑
-    if not GameWorld.GetMap().GetAutoSize():
+    if not IsNoPlayerNeedCloseFB():
         return
     
     gameFB = GameWorld.GetGameFB()
@@ -592,8 +592,7 @@
     if gameMap.GetMapFBType() == 0:
         return
     
-    if gameMap.GetAutoSize() == 0:
-        #只处理自动是否的地图
+    if not IsNoPlayerNeedCloseFB():
         return
     
     playerManager = gameWorld.GetMapCopyPlayerManager()
@@ -602,6 +601,9 @@
         __CloseFB(GameWorld.GetGameWorld(), GameWorld.GetGameWorld().GetTick())    
 
 
+def IsNoPlayerNeedCloseFB():
+    ## 副本中无玩家是否需要自动关闭的副本
+    return GameWorld.GetMap().GetAutoSize() and GameWorld.GetMap().GetMapID() not in ChConfig.Def_NoPlayerNotCloseAutoSizeMap
 
 #//08 06 根据国家统计的玩家数目#tagMPlayerCountByCountry
 #tagMPlayerCountByCountry       *   GettagMPlayerCountByCountry();
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 68efc7e..bb43579 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -1533,7 +1533,7 @@
     #copyMapID = curPlayer.GetCopyMapID()
     GameWorld.Log("PlayerLeaveFB MapID = %d, PosX = %d, PosY = %d" % (mapID, posX, posY), curPlayer.GetPlayerID())
     
-    if GameWorld.GetMap().GetAutoSize() and GameWorld.GetGameWorld().GetMapCopyPlayerManager().GetPlayerCount() == 1:
+    if GameWorldProcess.IsNoPlayerNeedCloseFB() and GameWorld.GetGameWorld().GetMapCopyPlayerManager().GetPlayerCount() == 1:
         #如果副本中只有这一个人, 那么把这个副本设置为玩家安全下线, 关闭副本
         gameFB = GameWorld.GetGameFB()
         gameFB.SetIsSafeClose(1)

--
Gitblit v1.8.0