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/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py |   47 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
index 49de67a..0d1db66 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_EnterFBTeamRelation.py
@@ -17,6 +17,8 @@
 #导入
 import PyGameData
 import GameWorld
+import FBHelpBattle
+import traceback
 
 #---------------------------------------------------------------------
 
@@ -44,11 +46,46 @@
 #  @remarks 函数详细说明.
 def DoResult(curPlayer, callFunName, funResult, tick):
     try:
-        teamID, friendList, memFamilyIDDict, memNameDict = eval(funResult)
-        PyGameData.g_teamFBMemRelationDict[teamID] = [friendList, memFamilyIDDict, memNameDict]
-        GameWorld.Log("队员关系信息: teamID=%s,friendList=%s,memFamilyIDDict=%s" % (teamID, friendList, memFamilyIDDict))
-    except:
-        pass
+        msgList = eval(funResult)
+        msgType = msgList[0]
+        if msgType == "InitRelation":
+            teamID, friendList, memFamilyIDDict, memNameDict = msgList[1:]
+            PyGameData.g_teamFBMemRelationDict[teamID] = [friendList, memFamilyIDDict, memNameDict]
+            GameWorld.Log("队员初始关系信息: teamID=%s,friendList=%s,memFamilyIDDict=%s" % (teamID, friendList, memFamilyIDDict))
+            return
+        
+        if msgType == "FriendChange":
+            teamID, playerID, tagPlayerID, isFriend = msgList[1:]
+            GameWorld.Log("队员好友变更: teamID=%s,playerID=%s,tagPlayerID=%s,isFriend=%s" % (teamID, playerID, tagPlayerID, isFriend))
+            if teamID not in PyGameData.g_teamFBMemRelationDict:
+                return
+            friendList = PyGameData.g_teamFBMemRelationDict[teamID][0]
+            if isFriend:
+                friendList.append([playerID, tagPlayerID])
+                friendList.append([tagPlayerID, playerID])
+            else:
+                if [playerID, tagPlayerID] in friendList:
+                    friendList.remove([playerID, tagPlayerID])
+                if [tagPlayerID, playerID] in friendList:
+                    friendList.remove([tagPlayerID, playerID])
+                    
+        elif msgType == "FamilyChange":
+            teamID, playerID, familyID = msgList[1:]
+            GameWorld.Log("队员家族变更: teamID=%s,playerID=%s,familyID=%s" % (teamID, playerID, familyID))
+            if teamID not in PyGameData.g_teamFBMemRelationDict:
+                GameWorld.Log("teamID=%s, not in PyGameData.g_teamFBMemRelationDict %s" % (teamID, PyGameData.g_teamFBMemRelationDict))
+                return
+            memFamilyIDDict = PyGameData.g_teamFBMemRelationDict[teamID][1]
+            memFamilyIDDict[playerID] = familyID
+            
+        else:
+            return
+        
+        # 关系变更刷新
+        FBHelpBattle.RefershTeamFBMemRelation(tick)
+    except BaseException:
+        errorMsg = str(traceback.format_exc())
+        GameWorld.ErrLog("%s" % errorMsg)
     
     return
 

--
Gitblit v1.8.0