From c77f9ab6cebf625b07075bf6242ab86fff94a5db Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 02 八月 2024 17:17:51 +0800 Subject: [PATCH] 10229 【越南】【主干】【港台】【砍树】古神战场修改(增加功能组队系统;古神支持组队进入,组队参与可增加原当被召集人成就146;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py index 10bcd77..3ff9a9a 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py @@ -36,6 +36,7 @@ import CrossChampionship import DataRecordPack import CrossRealmMsg +import PyDataManager import ShareDefine import CrossBoss import time @@ -64,8 +65,9 @@ ## 跨服地图动态分配的虚拟线路信息 {(mapID, copyMapID):CrossCopyMapInfo, ...} class CrossCopyMapInfo(): - def __init__(self, zoneID, funcLineID): + def __init__(self, zoneID, funcMapID, funcLineID): self.zoneID = zoneID + self.funcMapID = funcMapID self.funcLineID = funcLineID self.newFuncLineNum = 0 self.realMapID = 0 @@ -97,7 +99,22 @@ def IsMustCopyMapPlayer(self, playerID): ## 是否必定在此分线的玩家, 在请求队列里 或 曾经进入到该分线的,都强制认为属于该分线的玩家 - return playerID in self.waitPlayerDict or playerID in self.enterPlayerIDList + if playerID in self.waitPlayerDict or playerID in self.enterPlayerIDList: + return True + # 队友强制在一起 + funcTeamMgr = PyDataManager.GetDBPyFuncTeamManager() + teamID = funcTeamMgr.GetPlayerTeamID(playerID, self.funcMapID) + if not teamID: + return False + funcTeam = funcTeamMgr.GetFuncTeam(teamID) + if not funcTeam: + return False + for memID in funcTeam.GetMemberIDList(): + if memID in self.waitPlayerDict or memID in self.enterPlayerIDList: + GameWorld.DebugLog("强制和队友在一条线路! funcMapID=%s,memID=%s,realMapID=%s,copyMapID=%s" + % (self.funcMapID, memID, self.realMapID, self.copyMapID), playerID) + return True + return False def OnRequestEnterCrossCopyMap(self, playerID, tick, copyMapPlayerMax, includeOffline): if not copyMapPlayerMax or self.IsMustCopyMapPlayer(playerID): @@ -456,7 +473,7 @@ newFuncLineObj.copyMapID = copyMapID newFuncLineObj.newFuncLineNum = newFuncLineNum - copyMapObj = CrossCopyMapInfo(zoneID, funcLineID) + copyMapObj = CrossCopyMapInfo(zoneID, mapID, funcLineID) copyMapObj.realMapID = realMapID copyMapObj.copyMapID = copyMapID copyMapObj.newFuncLineNum = newFuncLineNum -- Gitblit v1.8.0