From e671cc640668d05194dc7a6bc13427a4f70ed1c6 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 23 七月 2019 21:12:58 +0800 Subject: [PATCH] 8154 【后端】【主干】【300】拍卖行优化(系统中间商自动回购并上架一件新装备支持) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py index 7507d08..96adcd2 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py @@ -27,6 +27,7 @@ import PlayerSocial import copy import PlayerViewCache +import PlayerTeam #--------------------------------------------------------------------- @@ -75,13 +76,12 @@ return if not tagPlayer: - curCache = PlayerViewCache.ViewCacheMgr.FindCache(curTagPlayerID) + curCache = PlayerViewCache.FindViewCache(curTagPlayerID) if not curCache: #玩家的数据没有缓存过 PlayerControl.NotifyCode(curPlayer, 'Friend_OffLine') return - cacheDict = eval(curCache.GetPropData()) - tagLV = cacheDict["LV"] + tagLV = curCache.LV else: tagLV = tagPlayer.GetLV() @@ -146,6 +146,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 +223,7 @@ tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(friendID) if tagPlayer != None: PlayerControl.NotifyCode(tagPlayer, 'Friend_DeleteFriend2', [curPlayer.GetName()]) + PlayerTeam.OnTeamMemFriendChange(curPlayer, friendID, False) return @@ -256,7 +264,7 @@ srcPlayer = playerManager.FindPlayerByID(srcPlayerID) if srcPlayer == None: # 玩家已下线 - curCache = PlayerViewCache.ViewCacheMgr.FindCache(srcPlayerID) + curCache = PlayerViewCache.FindViewCache(srcPlayerID) if not curCache: #玩家的数据没有缓存过 #PlayerControl.NotifyCode(curPlayer, 'Friend_OffLine') @@ -272,9 +280,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 +322,11 @@ PlayerControl.NotifyCode(srcPlayer, 'Friend_MakeFriend', [curPlayer.GetName()]) #srcPlayer.MapServer_QueryPlayerResult(0, 0, 'AddFriendSucceed', "", 0) else: - cacheDict = eval(curCache.GetPropData()) + cacheDict = PlayerViewCache.GetCachePropDataDict(curCache) PlayerControl.NotifyCode(curPlayer, 'Friend_MakeFriend', [cacheDict['Name']]) # 记录等对方上线通知地图,任务等会用到触发逻辑,通用记录次数即可, MapServer_SyncFriendInfo为具体的好友数量,根据策划需求制作 pass + PlayerTeam.OnTeamMemFriendChange(curPlayer, srcPlayerID, True) return @@ -381,10 +391,10 @@ tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(tagID) if not tagPlayer: - curCache = PlayerViewCache.ViewCacheMgr.FindCache(tagID) + curCache = PlayerViewCache.FindViewCache(tagID) if not curCache: return - cacheDict = eval(curCache.GetPropData()) + cacheDict = PlayerViewCache.GetCachePropDataDict(curCache) playerName = cacheDict['Name'] else: playerName = tagPlayer.GetName() -- Gitblit v1.8.0