From bd042c2dfd7d7b9cc7a40a6a3e149c52f6c7e87d Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 07 三月 2019 10:10:00 +0800
Subject: [PATCH] 6307 【后端】【2.0】多套装备开发单(初始装备背包格子130)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py
index 7507d08..68c9778 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py
@@ -27,6 +27,8 @@
 import PlayerSocial
 import copy
 import PlayerViewCache
+import PlayerTeam
+import json
 
 #---------------------------------------------------------------------
 
@@ -80,7 +82,7 @@
             #玩家的数据没有缓存过
             PlayerControl.NotifyCode(curPlayer, 'Friend_OffLine')
             return
-        cacheDict = eval(curCache.GetPropData())
+        cacheDict = json.loads(curCache.GetPropData())
         tagLV = cacheDict["LV"]
     else:
         tagLV = tagPlayer.GetLV()
@@ -146,6 +148,13 @@
         return curFriends
     
     return PyDataManager.GetFriendManager().AddFriends(playerID)
+
+def IsFriend(playerID, tagPlayerID):
+    ## 判断双方是否好友
+    curFriends = PyDataManager.GetFriendManager().GetFriends(playerID)
+    if not curFriends:
+        return False
+    return curFriends.Find(tagPlayerID) != None
 
 #---------------------------------------------------------------------
 ##好友检查
@@ -216,6 +225,7 @@
     tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(friendID)
     if tagPlayer != None:
         PlayerControl.NotifyCode(tagPlayer, 'Friend_DeleteFriend2', [curPlayer.GetName()])
+    PlayerTeam.OnTeamMemFriendChange(curPlayer, friendID, False)
     return
 
 
@@ -272,9 +282,10 @@
         GameWorld.Log("JoinFriendAnswer -> 封包异常 ->玩家没有这个请求", playerID)
         return
     
-    if not clientData.Answer and srcPlayer:
-        #XW_SJ_RefuseApply  XXX拒绝把你加为好友
-        PlayerControl.NotifyCode(srcPlayer, 'Friend_RejectFriend', [curPlayer.GetName()])
+    if not clientData.Answer: 
+        if srcPlayer:
+            #XW_SJ_RefuseApply  XXX拒绝把你加为好友
+            PlayerControl.NotifyCode(srcPlayer, 'Friend_RejectFriend', [curPlayer.GetName()])
         return
     
     # 黑名单检查
@@ -313,10 +324,11 @@
         PlayerControl.NotifyCode(srcPlayer, 'Friend_MakeFriend', [curPlayer.GetName()])
         #srcPlayer.MapServer_QueryPlayerResult(0, 0, 'AddFriendSucceed', "", 0)
     else:
-        cacheDict = eval(curCache.GetPropData())
+        cacheDict = json.loads(curCache.GetPropData())
         PlayerControl.NotifyCode(curPlayer, 'Friend_MakeFriend', [cacheDict['Name']])  
         # 记录等对方上线通知地图,任务等会用到触发逻辑,通用记录次数即可, MapServer_SyncFriendInfo为具体的好友数量,根据策划需求制作
         pass
+    PlayerTeam.OnTeamMemFriendChange(curPlayer, srcPlayerID, True)
     return
 
 
@@ -384,7 +396,7 @@
         curCache = PlayerViewCache.ViewCacheMgr.FindCache(tagID)
         if not curCache:
             return
-        cacheDict = eval(curCache.GetPropData())
+        cacheDict = json.loads(curCache.GetPropData())
         playerName = cacheDict['Name']
     else:
         playerName = tagPlayer.GetName()

--
Gitblit v1.8.0