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