ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFriend.py
@@ -76,12 +76,12 @@
            return
    
    if not tagPlayer:
        curCache = PlayerViewCache.ViewCacheMgr.FindCache(curTagPlayerID)
        curCache = PlayerViewCache.FindViewCache(curTagPlayerID)
        if not curCache:
            #玩家的数据没有缓存过
            PlayerControl.NotifyCode(curPlayer, 'Friend_OffLine')
            return
        tagLV = curCache.GetPlayerLV()
        tagLV = curCache.LV
    else:
        tagLV = tagPlayer.GetLV()
    
@@ -214,6 +214,12 @@
        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)
    
@@ -224,6 +230,12 @@
    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
@@ -264,7 +276,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')
@@ -322,7 +334,7 @@
        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
@@ -389,12 +401,18 @@
    #    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()
@@ -410,6 +428,11 @@
    
    PlayerControl.NotifyCode(curPlayer, 'AddBlackList', [playerName])
    
    # 亲密度减少
    decIntimacyPer = IpyGameDataPY.GetFuncCfg("IntimacyReduce", 2)
    if decIntimacyPer:
        PyDataManager.GetIntimacyManager().DelIntimacyBothPer(curPlayer.GetPlayerID(), tagID, decIntimacyPer)
    return
@@ -473,6 +496,15 @@
    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 当前时间
@@ -486,6 +518,7 @@
    __OnPlayerLoginEnemy(curPlayer, tick)
    __OnPlayerLoginContacts(curPlayer, tick)
    __OnPlayerLoginBlacklist(curPlayer, tick)
    __OnPlayerLoginIntimacylist(curPlayer, tick)
    
    # 向当前玩家通知相关联的所有玩家信息
    PlayerSocial.Sync_AllSocialsInfo(curPlayer)