|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | GameWorld.Log('DeleteFriend -> 封包异常 ->没有这个玩家', playerID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | couple = PyDataManager.GetDBPyCoupleManager().GetCouple(playerID) | 
|---|
|  |  |  | if couple and couple.GetCoupleID(playerID) == friendID: | 
|---|
|  |  |  | #GameWorld.Log('DeleteFriend -> 封包异常 ->伴侣不能删除好友.friendID=%s' % friendID, playerID) | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, "DelFriendCoupleLimit") | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #离线好友同时删除记录 | 
|---|
|  |  |  | PyDataManager.GetFriendManager().DelFriendBoth(playerID, friendID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if tagPlayer != None: | 
|---|
|  |  |  | PlayerControl.NotifyCode(tagPlayer, 'Friend_DeleteFriend2', [curPlayer.GetName()]) | 
|---|
|  |  |  | PlayerTeam.OnTeamMemFriendChange(curPlayer, friendID, False) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 亲密度减少 | 
|---|
|  |  |  | decIntimacyPer = IpyGameDataPY.GetFuncCfg("IntimacyReduce", 1) | 
|---|
|  |  |  | if decIntimacyPer: | 
|---|
|  |  |  | PyDataManager.GetIntimacyManager().DelIntimacyBothPer(playerID, friendID, decIntimacyPer) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | srcPlayer = playerManager.FindPlayerByID(srcPlayerID) | 
|---|
|  |  |  | if srcPlayer == None: | 
|---|
|  |  |  | # 玩家已下线 | 
|---|
|  |  |  | curCache = PlayerViewCache.ViewCacheMgr.FindCache(srcPlayerID) | 
|---|
|  |  |  | curCache = PlayerViewCache.FindViewCache(srcPlayerID) | 
|---|
|  |  |  | if not curCache: | 
|---|
|  |  |  | #玩家的数据没有缓存过 | 
|---|
|  |  |  | #PlayerControl.NotifyCode(curPlayer, 'Friend_OffLine') | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | #    return | 
|---|
|  |  |  | #=========================================================================== | 
|---|
|  |  |  |  | 
|---|
|  |  |  | couple = PyDataManager.GetDBPyCoupleManager().GetCouple(curPlayer.GetID()) | 
|---|
|  |  |  | if couple and couple.GetCoupleID(curPlayer.GetID()) == tagID: | 
|---|
|  |  |  | #GameWorld.DebugLog("伴侣不能加入黑名单! tagID=%s" % tagID, curPlayer.GetID()) | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, "AddBlackCoupleLimit") | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'AddBlackList', [playerName]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 亲密度减少 | 
|---|
|  |  |  | decIntimacyPer = IpyGameDataPY.GetFuncCfg("IntimacyReduce", 2) | 
|---|
|  |  |  | if decIntimacyPer: | 
|---|
|  |  |  | PyDataManager.GetIntimacyManager().DelIntimacyBothPer(curPlayer.GetPlayerID(), tagID, decIntimacyPer) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | players.Sync_SocialsInfo(curPlayer) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #亲密 | 
|---|
|  |  |  | def __OnPlayerLoginIntimacylist(curPlayer, tick): | 
|---|
|  |  |  | intimacys = PyDataManager.GetIntimacyManager().GetIntimacys(curPlayer.GetID()) | 
|---|
|  |  |  | if intimacys == None: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | intimacys.Sync_SocialsInfo(curPlayer) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 玩家登陆 | 
|---|
|  |  |  | #  @param curPlayer 当前玩家 | 
|---|
|  |  |  | #  @param tick 当前时间 | 
|---|
|  |  |  | 
|---|
|  |  |  | __OnPlayerLoginEnemy(curPlayer, tick) | 
|---|
|  |  |  | __OnPlayerLoginContacts(curPlayer, tick) | 
|---|
|  |  |  | __OnPlayerLoginBlacklist(curPlayer, tick) | 
|---|
|  |  |  | __OnPlayerLoginIntimacylist(curPlayer, tick) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 向当前玩家通知相关联的所有玩家信息 | 
|---|
|  |  |  | PlayerSocial.Sync_AllSocialsInfo(curPlayer) | 
|---|