Пример #1
0
    public void Init(FriendPanel parent, bool isSys, RoleRelation data)
    {
        m_parent = parent;
        m_issys  = isSys;
        m_data   = data;

        if (isSys)
        {
            m_lableName.text      = "系统消息";
            m_lableLevel.text     = "";
            m_headIcon.spriteName = "icon_system";
            SetTipsState(DataManager.Manager <ChatDataManager>().PrivateChatManager.GetNewMsgTipsWithId(0));
            m_btnGo.SetActive(false);
        }
        else
        {
            m_headIcon.spriteName = "icon_head";
            m_lableLevel.text     = "Lv." + data.level.ToString();
            m_lableName.text      = data.name;

            m_btnGo.SetActive(m_parent.CurrContent == FriendPanel.FriendPanelPageEnum.Page_添加);
            SetTipsState(DataManager.Manager <ChatDataManager>().PrivateChatManager.GetNewMsgTipsWithId(data.uid));
        }


        if (m_choose != null)
        {
            m_choose.SetActive(m_parent.CurrContent != FriendPanel.FriendPanelPageEnum.Page_添加);
        }
    }
Пример #2
0
    public void OnSelectFriend(RoleRelation role, bool force = false)
    {
        if (role != null && !role.isSys)
        {
            m_bIsRobot = role.isRobot;

            if (m_currSelectId == (int)role.uid && !force)
            {
                return;
            }

            if (m_Content != FriendPanelPageEnum.Page_添加)
            {
                m_label_labletips.text = string.Format("正在与{0}聊天", role.name);
                if (privateChatManager != null)
                {
                    privateChatManager.SetCurrChatPlayer(role.uid, role.name);
                }
                m_trans_PanelInput.gameObject.SetActive(true);
            }
        }
        else
        {
            if (m_currSelectId == 0)
            {
                return;
            }
            //选择系统
            m_label_labletips.text = "";

            m_trans_PanelInput.gameObject.SetActive(false);
            if (privateChatManager != null)
            {
                privateChatManager.SetCurrChatPlayer(0, "");
            }
        }


        //设置当前私聊
        if (privateChatManager != null)
        {
            if (m_Content != FriendPanelPageEnum.Page_添加)
            {
                if (m_currSelectId != (int)role.uid)
                {
                    privateChatManager.OnRefreshOutput = OnRefreshText;
                    privateChatManager.InitCurrChatData();
                    privateChatManager.OnNewChat = OnAddText;
                }
            }
            else
            {
                privateChatManager.OnRefreshOutput = null;
                privateChatManager.OnNewChat       = null;
            }
        }


        m_currSelectId = (role != null) ? (int)role.uid : 0;
    }
Пример #3
0
 public override bool OnMsg(UIMsgID msgid, object param)
 {
     if (msgid == UIMsgID.eUpdateFriendMsgTips)
     {
         //TODO系统聊天的tips
         uint id = (uint)param;
         if (m_currRelationList == GameCmd.RelationType.Relation_Friend || m_currRelationList == GameCmd.RelationType.Relation_Contact)
         {
             //                 for (int i = 0; i < m_lstSingleFrendItem.Count; i++)
             //                 {
             //                     if (m_lstSingleFrendItem[i].PlayerId == id)
             //                     {
             //                         m_lstSingleFrendItem[i].SetTipsState(true);
             //                     }
             //                 }
         }
     }
     else if (msgid == UIMsgID.eChatWithPlayer)
     {
         RoleRelation data = (RoleRelation)param;
         ToggleContent(FriendPanelPageEnum.Page_最近);
         m_currRelationList = GameCmd.RelationType.Relation_Contact;
         RefreshLeftListUI();
         OnSelectFriend(data);
     }
     return(base.OnMsg(msgid, param));
 }
Пример #4
0
 public override void Release(bool depthRelease = true)
 {
     base.Release(depthRelease);
     if (m_data != null)
     {
         m_data = null;
     }
 }
Пример #5
0
    int FriendSort(RoleRelation left, RoleRelation right)
    {
        int leftNum  = left.online ? 1:0;
        int rightNum = right.online ? 1:0;

        // -  在线优先   +  离线优先
        return(rightNum - leftNum);
    }
Пример #6
0
    void onClick_Btn_sendmessage_Btn(GameObject caster)
    {
        RoleRelation data = new RoleRelation()
        {
            uid = this.myTeamGridData.teamMemberInfo.id, name = this.myTeamGridData.teamMemberInfo.name
        };

        DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.FriendPanel);
        DataManager.Manager <UIPanelManager>().SendMsg(PanelID.FriendPanel, UIMsgID.eChatWithPlayer, data);
        HideSelf();
    }
Пример #7
0
    void onClick_Btn_sendmessage_Btn(GameObject caster)
    {
        RoleRelation data = new RoleRelation()
        {
            uid = m_teamMemberBtninfo.id, name = m_teamMemberBtninfo.name
        };

        DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.FriendPanel);
        DataManager.Manager <UIPanelManager>().SendMsg(PanelID.FriendPanel, UIMsgID.eChatWithPlayer, data);

        m_trans_TeamMemberBtnRoot.gameObject.SetActive(false);
    }
Пример #8
0
 int SortRelationsByChatTime(RoleRelation a, RoleRelation b)
 {
     if (a.isSys)
     {
         return(-1);
     }
     if (a.lastChatTime > b.lastChatTime)
     {
         return(-1);
     }
     else if (a.lastChatTime < b.lastChatTime)
     {
         return(1);
     }
     return(0);
 }
Пример #9
0
    public void SetInfo(RoleRelation data, string strSearch)
    {
        m_data          = data;
        m_lableLv.text  = "Lv." + data.level.ToString();
        m_lableLv.depth = m_headIcon.depth + 1;
        m_headIcon.ChangeSprite(data.profession);
        string strname = data.name;
        int    index   = strname.IndexOf(strSearch);

        if (index != -1)
        {
            strname = strname.Insert(index + strSearch.Length, "[-]");
            strname = strname.Insert(index, "[00ff00]");

            //strname = strname.Substring(0, index) + "[00ff00]" + strname.Substring(index, strSearch.Length) + "[-]" + strname.Substring(index + strSearch.Length);
        }
        m_lableName.text = strname;
    }
Пример #10
0
    public override void SetGridData(object data)
    {
        base.SetGridData(data);

        this.m_frdData = data as RoleRelation;


        m_spIcon.spriteName = "roleCard_huanshi";
        m_lblName.text      = this.m_frdData.name;
        m_lblJob.text       = ConstDefine.GetProfessionNameByType((enumProfession)this.m_frdData.profession);
        m_lblLv.text        = this.m_frdData.level.ToString() + "级";

        List <RoleRelation> friendList = null;

        if (DataManager.Manager <RelationManager>().GetRelationListByType(GameCmd.RelationType.Relation_Friend, out friendList))
        {
            if (friendList.Exists((RoleRelation rr) => { return(rr.uid == this.m_frdData.uid ? true : false); }))
            {
                if (this.m_frdData.help_tree)
                {
                    m_btnZan.SetActive(true);
                }
                else
                {
                    m_btnZan.SetActive(false);
                    if (this.m_frdData.level >= 20)  //暂时定20级
                    {
                        m_goNoOpen.gameObject.SetActive(false);
                    }
                    else
                    {
                        m_goNoOpen.gameObject.SetActive(true);//未开启家园
                    }
                }
                m_btnAdd.SetActive(false);
            }
            else   //搜索到的
            {
                m_btnAdd.SetActive(true);
                m_goNoOpen.SetActive(false);
                m_btnZan.SetActive(false);
            }
        }
    }
Пример #11
0
    public void OnTreeHelp(uint help_who, int tree)
    {
        HelpNum += 1;
        if (help_who == ClientGlobal.Instance().MainPlayer.GetID())
        {
            HelpSelf = true;
        }

        if (help_who != ClientGlobal.Instance().MainPlayer.GetID())//给别人点赞
        {
            List <RoleRelation> friendList = null;
            DataManager.Manager <RelationManager>().GetRelationListByType(RelationType.Relation_Friend, out friendList);
            if (friendList != null)
            {
                RoleRelation data = friendList.Find((RoleRelation rr) => { return(rr.uid == help_who); });
                data.help_tree = false;
            }
        }
        Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.HOME_HELPSUCCESS, null);
    }
Пример #12
0
    protected override void OnShow(object data)
    {
        base.OnShow(data);
        m_relationMgr.ValueUpdateEvent += OnValueUpdateEventArgs;
        InitOnShow();
        Protocol.Instance.ReqFriendLevel();

        if (data != null && data is RoleRelation)//陌生人聊天
        {
            RoleRelation role = (RoleRelation)data;
            if (m_Content == FriendPanelPageEnum.Page_好友 && m_relationMgr.IsMyFriend(role.uid))
            {
                DeActiveFrendItem();
                List <UIFriendGrid> lstGrid = m_ctor_FriendScrollview.GetGrids <UIFriendGrid>(true);
                for (int i = 0; i < lstGrid.Count; i++)
                {
                    if (lstGrid[i].Data.uid == role.uid)
                    {
                        OnSelectFriend(lstGrid[i].Data);
                        break;
                    }
                }
            }
            else if (m_Content == FriendPanelPageEnum.Page_最近 && m_relationMgr.IsInRelationList(GameCmd.RelationType.Relation_Contact, role.uid))
            {
                DeActiveFrendItem();
                List <UIFriendGrid> lstGrid = m_ctor_FriendScrollview.GetGrids <UIFriendGrid>(true);
                for (int i = 0; i < lstGrid.Count; i++)
                {
                    if (lstGrid[i].Data.uid == role.uid)
                    {
                        OnSelectFriend(lstGrid[i].Data);
                        break;
                    }
                }
            }
        }

        UpdateApplyRedPoint(FriendPanelPageEnum.Page_邮箱);
        UpdateApplyRedPoint(FriendPanelPageEnum.Page_最近);
    }
Пример #13
0
    /// <summary>
    /// 可一点赞的
    /// </summary>
    public void OnHomeFriendStatusChange(stReqFriendTreeListHomeUserCmd_CS cmd)
    {
        List <RoleRelation> friendList = null;

        DataManager.Manager <RelationManager>().GetRelationListByType(RelationType.Relation_Friend, out friendList);
        if (friendList != null)
        {
            for (int i = 0; i < cmd.char_id.Count; i++)
            {
                RoleRelation fd = friendList.Find((RoleRelation rr) => { return(rr.uid == cmd.char_id[i]); });
                if (fd != null)
                {
                    fd.help_tree = true;
                }
                else
                {
                    fd.help_tree = false;
                }
            }
        }
    }
Пример #14
0
    public override void SetGridData(object data)
    {
        base.SetGridData(data);

        if (data is RoleRelation)
        {
            m_data = (RoleRelation)data;

            if (m_data.isSys)
            {
                m_lableName.text  = "系统消息";
                m_lableLevel.text = "";
                m_headIcon.ChangeSprite(5);
                m_headIcon.MakePixelPerfect();

                SetTipsState(DataManager.Manager <ChatDataManager>().PrivateChatManager.GetNewMsgTipsWithId(0));
                m_btnGo.SetActive(false);
            }
            else
            {
                m_headIcon.ChangeSprite(m_data.profession);
                m_headIcon.MakePixelPerfect();

                m_lableLevel.text = string.Format("Lv.{0}", m_data.level);
                m_lableName.text  = m_data.name;

                m_btnGo.SetActive(m_parent.CurrContent == FriendPanel.FriendPanelPageEnum.Page_添加);
                SetTipsState(DataManager.Manager <ChatDataManager>().PrivateChatManager.GetNewMsgTipsWithId(m_data.uid));
            }


            if (m_choose != null)
            {
                m_choose.SetActive(m_parent.CurrContent != FriendPanel.FriendPanelPageEnum.Page_添加);
            }

            RefreshLevel();
        }
    }
Пример #15
0
    /// <summary>
    /// 联系族长
    /// </summary>
    private void ContactShaikh()
    {
        ClanDefine.LocalClanInfo localClanInfo = ClanData;
        if (null == localClanInfo)
        {
            TipsManager.Instance.ShowTips("无效氏族信息");
            return;
        }
        GameCmd.stClanMemberInfo member = localClanInfo.GetMemberInfo(localClanInfo.Creator);
        if (null == member)
        {
            TipsManager.Instance.ShowTips("氏族族长信息错误");
            return;
        }

        RoleRelation data = new RoleRelation()
        {
            uid = member.id, name = member.name
        };

        DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.FriendPanel);
        DataManager.Manager <UIPanelManager>().SendMsg(PanelID.FriendPanel, UIMsgID.eChatWithPlayer, data);
    }
Пример #16
0
    /// <summary>
    /// 发送消息
    /// </summary>
    /// <param name="caster"></param>
    void onClick_Btn_sendmessage_Btn(GameObject caster)
    {
        if (m_datainfo == null)
        {
            return;
        }

        if (!string.IsNullOrEmpty(m_datainfo.name))
        {
            RoleRelation data = new RoleRelation()
            {
                uid = m_datainfo.uid, name = m_datainfo.name, isRobot = m_datainfo.isRobot
            };
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.FriendPanel);
            DataManager.Manager <UIPanelManager>().SendMsg(PanelID.FriendPanel, UIMsgID.eChatWithPlayer, data);
        }
        else
        {
            TipsManager.Instance.ShowTips("该玩家不在线!");
        }

        this.HideSelf();
    }
Пример #17
0
 private ProjectViewModel ToProjectViewModelFromRoleRelation(RoleRelation roleRelation)
 {
     var role = _roleLogic.GetRole("Creator");
     return new ProjectViewModel()
         {
             Project = roleRelation.Project,
             Creator = _roleRelationLogic.GetRoleRelationByRoleIdAndProjectId(role.RoleId,roleRelation.ProjectId).User,
             CurrentUserRole = roleRelation.Role
         };
 }
Пример #18
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);
    }