From 4f9805fdd80363eca2df3ed2627812b47bc7028f Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 29 十一月 2018 04:35:30 +0800 Subject: [PATCH] 2535 【BUG】【1.3】副本助战,仙缘币结束错误(待召唤列表所有加成都算进去了) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 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 b399c4a..6c1429b 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py @@ -39,6 +39,7 @@ import GameWorld import ChConfig import PlayerControl +import FamilyRobBoss import EventShell import FBLogic import FBCommon @@ -101,6 +102,17 @@ 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() @@ -307,7 +319,7 @@ return #特殊副本,不执行这个逻辑 - if not GameWorld.GetMap().GetAutoSize(): + if not IsNoPlayerNeedCloseFB(): return gameFB = GameWorld.GetGameFB() @@ -422,9 +434,13 @@ return IPY_GameWorld.cmePlayerFull #检查副本状态是否可以登录 - if not FBCommon.CheckFBStateCanEnter(askStruct): + checkRet = FBCommon.CheckFBStateCanEnter(askStruct) + if type(checkRet) not in [tuple, list]: + checkRet = (checkRet, "FB_andyshao_861048") + canEnter, notifyMark = checkRet + if not canEnter: #副本关闭中, 请稍后 - return IPY_GameWorld.cmeCustom, 'FB_andyshao_861048' + return IPY_GameWorld.cmeCustom, notifyMark changeMapAskResult = FBLogic.OnChangeMapAsk(askStruct, tick) @@ -497,6 +513,9 @@ __RefreshOnFiveMinute(tick) #定时检测关闭超时文件 EventReport.OnTimeCloseScribeTxt() + + #仙盟归属boss定时处理 + FamilyRobBoss.OnFamilyOwnerBossProcess(tick) return ## 通知RouteServer 消息 @@ -584,8 +603,7 @@ if gameMap.GetMapFBType() == 0: return - if gameMap.GetAutoSize() == 0: - #只处理自动是否的地图 + if not IsNoPlayerNeedCloseFB(): return playerManager = gameWorld.GetMapCopyPlayerManager() @@ -594,6 +612,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