From 143c55479cbb2f77883ca8a87c7f42c2ddcb8673 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 03 十二月 2024 15:31:51 +0800 Subject: [PATCH] 4999 【bt】【英文】【越南】优化灵宠战斗(主人不攻击时,灵宠达到攻击间隔也会主动攻击可攻击的目标;灵宠攻击目标增加可攻击视野内主动怪,攻击顺序为:主人攻击目标 > 攻击主人的目标 > 视野内主动怪) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py index 3ff9a9a..3298d23 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py @@ -97,10 +97,14 @@ return totalPlayerCount - def IsMustCopyMapPlayer(self, playerID): + def IsMustCopyMapPlayer(self, playerID, checkTeam=True): ## 是否必定在此分线的玩家, 在请求队列里 或 曾经进入到该分线的,都强制认为属于该分线的玩家 if playerID in self.waitPlayerDict or playerID in self.enterPlayerIDList: return True + if self.openState != IPY_PlayerDefine.fbosOpen: + return False + if not checkTeam: + return False # 队友强制在一起 funcTeamMgr = PyDataManager.GetDBPyFuncTeamManager() teamID = funcTeamMgr.GetPlayerTeamID(playerID, self.funcMapID) @@ -273,7 +277,7 @@ realMapID, copyMapID, openState = tagCopyMapObj.realMapID, tagCopyMapObj.copyMapID, tagCopyMapObj.openState - if openState == IPY_PlayerDefine.fbosWaitForClose: + if openState >= IPY_PlayerDefine.fbosWaitForClose: PlayerControl.NotifyCodeCross(serverGroupID, playerID, "CrossFBClose") GameWorld.ErrLog("分流的副本线路关闭中! mapID=%s,funcLineID=%s,zoneID=%s,realMapID=%s,copyMapID=%s,openState=%s" % (mapID, funcLineID, zoneID, realMapID, copyMapID, openState), playerID) @@ -360,7 +364,7 @@ copyMapObj = PyGameData.g_crossDynamicLineCopyMapInfo[key] openState = copyMapObj.openState - if openState == IPY_PlayerDefine.fbosWaitForClose: + if openState >= IPY_PlayerDefine.fbosWaitForClose: # 没有限制分流人数的情况,代表都在同一场,这种情况下当副本已经在关闭的状态下,则代表已经结束了,不可再进入 if not shuntPlayerMax: PlayerControl.NotifyCodeCross(serverGroupID, playerID, "CrossFBClose") @@ -546,7 +550,11 @@ OnCrossDynamicLineClose(realMapID, copyMapID) elif state == IPY_PlayerDefine.fbosOpen: OnCrossDynamicLineOpen(mapID, realMapID, copyMapID) - + else: + key = (realMapID, copyMapID) + if key in PyGameData.g_crossDynamicLineCopyMapInfo: + copyMapObj = PyGameData.g_crossDynamicLineCopyMapInfo[key] + copyMapObj.openState = state return def OnCrossDynamicLineOpen(mapID, realMapID, copyMapID): -- Gitblit v1.8.0