From 6ef04a63b7411f2570c2c30414697bca8c45dd61 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 18 三月 2019 13:58:09 +0800 Subject: [PATCH] 6335 【后端】【2.0】娲皇遗迹修改 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py | 29 +++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 4 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 ae3e662..0b816e1 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py @@ -40,6 +40,7 @@ import ChConfig import PlayerControl import FamilyRobBoss +import NPCCustomRefresh import EventShell import FBLogic import FBCommon @@ -93,7 +94,8 @@ gameFBMgr.SetPlayerLogoffTick(0) gameFBMgr.SetIsSafeClose(0) - GameWorld.Log("FB Close! lineID = %s, openState = %s"%(gameWorld.GetLineID(), gameWorld.GetOpenState())) + lineID = gameWorld.GetLineID() + GameWorld.Log("FB Close! lineID = %s, openState = %s"%(lineID, gameWorld.GetOpenState())) gameWorld.SetOpenState(IPY_GameWorld.fbosClosed) gameMap = gameWorld.GetMap() @@ -102,9 +104,23 @@ if fbType == 0: return + if fbType == IPY_GameWorld.fbtSingle: + ownerID = gameFBMgr.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID) + if ownerID in PyGameData.g_fbHelpBattlePlayerDict: + PyGameData.g_fbHelpBattlePlayerDict.pop(ownerID) + GameWorld.DebugLog("清除单人副本镜像助战信息: ownerID=%s" % ownerID) + elif fbType == IPY_GameWorld.fbtTeam: + teamID = gameWorld.GetPropertyID() + if teamID in PyGameData.g_teamFBMemRelationDict: + PyGameData.g_teamFBMemRelationDict.pop(teamID) + GameWorld.DebugLog("清除组队副本队员关系信息: teamID=%s" % teamID) + #副本关闭时统一清怪 FBCommon.ClearFBNPC() + if lineID in PyGameData.g_fbRobotJobDict: + PyGameData.g_fbRobotJobDict.pop(lineID) + mapID = FBCommon.GetRecordMapID(gameMap.GetMapID()) #清理物品 unPickItemDict = {} @@ -308,7 +324,7 @@ return #特殊副本,不执行这个逻辑 - if not GameWorld.GetMap().GetAutoSize(): + if not IsNoPlayerNeedCloseFB(): return gameFB = GameWorld.GetGameFB() @@ -505,6 +521,9 @@ #仙盟归属boss定时处理 FamilyRobBoss.OnFamilyOwnerBossProcess(tick) + + #地图自定义随机刷怪 + NPCCustomRefresh.ProcessMapRandomRefreshNPC(gameWorld, tick) return ## 通知RouteServer 消息 @@ -592,8 +611,7 @@ if gameMap.GetMapFBType() == 0: return - if gameMap.GetAutoSize() == 0: - #只处理自动是否的地图 + if not IsNoPlayerNeedCloseFB(): return playerManager = gameWorld.GetMapCopyPlayerManager() @@ -602,6 +620,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(); -- Gitblit v1.8.0