コード例 #1
0
    [Execute]//添加某个社会关系
    public void Excute(stAddRelationUserCmd_S cmd)
    {
        tFriendBaseData data = null;

        switch (cmd.type)
        {
        case RelationType.Relation_Friend:
            data = cmd.frdata;
            if (string.IsNullOrEmpty(data.username))
            {
                TipsManager.Instance.ShowTips("添加好友成功 但是名字是空的!");
                UnityEngine.Debug.LogError("添加好友成功 但是名字是空的!");
            }
            else
            {
                TipsManager.Instance.ShowLocalFormatTips(LocalTextType.Friend_Friend_tianjiachenggong, data.username);
            }
            break;

        case RelationType.Relation_Black:
            data = cmd.bldata;
            TipsManager.Instance.ShowTips(LocalTextType.Friend_BlackList_pingbichenggong);
            break;

        case RelationType.Relation_Enemy:
            data = cmd.endata;
            break;

        case RelationType.Relation_Contact:
            data = cmd.strangerdata;
            break;

        case RelationType.Relation_FriendRequest:
            data = cmd.friendrequestdata;
            break;

        case RelationType.Relation_Interactive:
            data = cmd.interactive;
            break;
        }

        if (data != null)
        {
            relationManager.AddRelationByType(cmd.type, data);
        }
        else
        {
            Engine.Utility.Log.Error("添加某个社会关系 数据为空");
        }
    }
コード例 #2
0
    /// <summary>
    /// 添加好友
    /// </summary>
    /// <param name="type"></param>
    /// <param name="data"></param>
    /// <returns></returns>
    public bool AddRelationByType(RelationType type, tFriendBaseData data)
    {
        if (type == RelationType.Relation_Friend)
        {
            if (m_lstRecommend != null)
            {
                for (int i = 0; i < m_lstRecommend.Count; i++)
                {
                    if (m_lstRecommend[i].uid == data.id)
                    {
                        m_lstRecommend.RemoveAt(i);
                        break;
                    }
                }
            }
            if (m_lstRecommendCache != null)
            {
                for (int i = 0; i < m_lstRecommendCache.Count; i++)
                {
                    if (m_lstRecommendCache[i].uid == data.id)
                    {
                        m_lstRecommendCache.RemoveAt(i);
                        if (m_lstRecommend != null && m_lstRecommend.Count > 0)
                        {
                            m_lstRecommendCache.Add(m_lstRecommend[0]);
                            m_lstRecommend.RemoveAt(0);
                        }
                        ValueUpdateEventArgs arg = new ValueUpdateEventArgs("SEARCH", 0, m_lstRecommendCache);
                        DispatchValueUpdateEvent(arg);
                        break;
                    }
                }
            }
        }

        List <RoleRelation> lst = null;

        if (m_dicRelation.TryGetValue(type, out lst))
        {
            RoleRelation rec = new RoleRelation()
            {
                type       = type,
                uid        = data.id,
                online     = data.online == 1,
                level      = data.level,
                profession = data.profession,
                degree     = data.degree,
                title      = data.title,
                mapid      = data.mapid,
                name       = data.username,
                help_tree  = data.help_tree,
            };
            bool isOld = false;
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].uid == data.id)
                {
                    lst[i] = rec;
                    isOld  = true;
                }
            }
            if (!isOld)
            {
                lst.Add(rec);
            }
            lst.Sort(SortRelationsByChatTime);
            ValueUpdateEventArgs arg = new ValueUpdateEventArgs(type.ToString(), 0, lst);
            DispatchValueUpdateEvent(arg);
            if (type == RelationType.Relation_FriendRequest)
            {
                newFriendReuquest = true;
            }
            return(true);
        }
        else
        {
            Log.Error(" m_dicRelation no contain type :{0}", type);
        }
        return(false);
    }