From 631cfe043789ddc76ddfbe19e0d01e21e26b5fbb Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 29 十一月 2018 01:35:03 +0800
Subject: [PATCH] 5027 法宝副本里上线副本结束则T人
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py | 29 ++++++++++++++++++++++++++++-
1 files changed, 28 insertions(+), 1 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
index 2ce78a2..3f00186 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
@@ -24,6 +24,7 @@
import ChPyNetSendPack
import DataRecordPack
import PlayerControl
+import PlayerFriend
import ShareDefine
import PyGameData
import GameWorld
@@ -2905,6 +2906,23 @@
askMapID, askMapEx, memStateDict = PyGameData.g_prepareTeamDict[teamID][:3]
enterInfo = GetTeamFBEnterInfo(leader, curTeam, askMapID, askMapEx)
+ leaderID = leader.GetPlayerID()
+ friendList = []
+ memFamilyIDDict = {}
+ memNameDict = {}
+ #队长与队员的关系
+ for index in xrange(curTeam.GetMemberCount()):
+ memPlayer = curTeam.GetMemberPlayer(index)
+ if not memPlayer or not memPlayer.GetPlayerID():
+ continue
+ memPlayerID = memPlayer.GetPlayerID()
+ if memPlayerID not in memStateDict:
+ continue
+ memFamilyIDDict[memPlayerID] = memPlayer.GetFamilyID() # 存储各队员的家族ID
+ memNameDict[memPlayerID] = memPlayer.GetName()
+ if leaderID != memPlayerID and PlayerFriend.IsFriend(leaderID, memPlayerID):
+ friendList.append([leaderID, memPlayerID])
+
#踢出所有在此类副本,但不同线路的玩家
for index in xrange(curTeam.GetMemberCount()):
memPlayer = curTeam.GetMemberPlayer(index)
@@ -2926,8 +2944,17 @@
resultName = str([askMapID, askMapEx] + enterInfo)
memPlayer.MapServer_QueryPlayerResult(0, 0, "EnterFBTeamAsk", resultName, len(resultName))
GameWorld.Log("队长成功进入组队副本, 队员开始进入副本: teamID=%s,memPlayerID=%s" % (teamID, memPlayerID), leader.GetPlayerID())
-
+ for preMemPlayerID in memStateDict.keys():
+ if memPlayerID == preMemPlayerID:
+ continue
+ if PlayerFriend.IsFriend(memPlayerID, preMemPlayerID) and [memPlayerID, preMemPlayerID] not in friendList:
+ friendList.append([memPlayerID, preMemPlayerID])
+
PyGameData.g_prepareTeamDict.pop(teamID)
+
+ # 同步进入组队副本的队员关系到目标地图
+ relationInfo = str([teamID, friendList, memFamilyIDDict, memNameDict])
+ leader.MapServer_QueryPlayerResult(0, 0, "EnterFBTeamRelation", relationInfo, len(relationInfo))
return
def __CheckTeamFBPlayerExist(curTeam):
--
Gitblit v1.8.0