From b96575fc034c6f56273ee3a7346a10f489bd48a7 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 29 十一月 2018 02:08:48 +0800 Subject: [PATCH] 4762 【后端】混乱妖域社交关系加成取实时,离线玩家不算;增加同步社交总加成信息; --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 51 insertions(+), 1 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py index 3f00186..5d7ffba 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py @@ -1877,6 +1877,7 @@ #如果队伍正在匹配中,则通知状态 if IsTeamMatchingPlayer(curTeamID): Sync_TeamMatchState(curPlayer, True) + OnTeamMemFamilyRefresh(curPlayer, curPlayer.GetFamilyID()) return True #--------------------------------------------------------------------- @@ -2953,10 +2954,59 @@ PyGameData.g_prepareTeamDict.pop(teamID) # 同步进入组队副本的队员关系到目标地图 - relationInfo = str([teamID, friendList, memFamilyIDDict, memNameDict]) + relationInfo = str(["InitRelation", teamID, friendList, memFamilyIDDict, memNameDict]) leader.MapServer_QueryPlayerResult(0, 0, "EnterFBTeamRelation", relationInfo, len(relationInfo)) return +def OnTeamMemFriendChange(curPlayer, tagPlayerID, isFriend): + ## 队员好友关系变更,离线也同步 + teamID = curPlayer.GetTeamID() + if not teamID: + GameWorld.DebugLog("好友变更,无队伍不管!") + return + curMapData = GameWorld.GetMap(curPlayer.GetMapID()) + if not curMapData or curMapData.GetMapFBType() != ChConfig.fbtTeam: + GameWorld.DebugLog("好友变更,不在组队副本不管!") + return + + isSameTeam = False + playerID = curPlayer.GetPlayerID() + curTeam = curPlayer.GetTeam() + for index in xrange(curTeam.GetMemberCount()): + memberInfo = curTeam.GetMemberInfo(index) + if not memberInfo: + continue + memPlayerID = memberInfo.GetPlayerID() + if tagPlayerID == memPlayerID: + isSameTeam = True + break + + if not isSameTeam: + GameWorld.DebugLog("好友关系变更,不是同队伍不管!") + return + + relationInfo = str(["FriendChange", teamID, playerID, tagPlayerID, isFriend]) + curPlayer.MapServer_QueryPlayerResult(0, 0, "EnterFBTeamRelation", relationInfo, len(relationInfo)) + return + +def OnTeamMemFamilyRefresh(curPlayer, familyID): + ## 队员仙盟变更,仅在线同步,上线同步 + if not curPlayer: + return + teamID = curPlayer.GetTeamID() + if not teamID: + GameWorld.DebugLog("家族变更,无队伍不管!") + return + curMapData = GameWorld.GetMap(curPlayer.GetMapID()) + if not curMapData or curMapData.GetMapFBType() != ChConfig.fbtTeam: + GameWorld.DebugLog("家族变更,不在组队副本不管!") + return + playerID = curPlayer.GetPlayerID() + familyID = curPlayer.GetFamilyID() + relationInfo = str(["FamilyChange", teamID, playerID, familyID]) + curPlayer.MapServer_QueryPlayerResult(0, 0, "EnterFBTeamRelation", relationInfo, len(relationInfo)) + return + def __CheckTeamFBPlayerExist(curTeam): ##玩家离开副本 # @param curTeam 队伍实例 -- Gitblit v1.8.0