少年修仙传客户端代码仓库
client_linchunjie
2019-01-03 6eee9a039f60effa84b7acfa78f4ca94837988cc
5375【1.4.100】私聊提醒
2个文件已修改
60 ■■■■■ 已修改文件
System/Chat/ChatCenter.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatContentBehaviour.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs
@@ -192,6 +192,7 @@
            {
                ClearAllVoice();
                openChatAfterCollect = false;
                m_AlreadyChatRemindPlayers.Clear();
            }
            if (PlayerDatas.Instance.baseData.MapID != 31230)
            {
@@ -1088,10 +1089,16 @@
        }
        #endregion
        //private void OnApplicationQuit()
        //{
        //    LocalChatHistory.Save();
        //}
        #region 私聊提醒
        List<int> m_AlreadyChatRemindPlayers = new List<int>();
        public List<int> alreadyChatRemindPlayers
        {
            get
            {
                return m_AlreadyChatRemindPlayers;
            }
        }
        #endregion
    }
}
System/Chat/ChatContentBehaviour.cs
@@ -17,7 +17,10 @@
        [SerializeField] Button m_NewInfoBtn;
        [SerializeField] Button m_LockAreaBtn;
        [SerializeField] Image m_LockAreaCheck;
        [SerializeField, Header("显示区域大小")] float m_ContentDisplaySize = 630;
        [SerializeField] RectTransform m_ContainerDisplay;
        [SerializeField] RectTransform m_ContainerPrivateChatRemind;
        [SerializeField] RectTransform m_Scroller;
        [SerializeField, Header("锁定当前区域比例"), Range(0, 1)] float m_Percent = 0.3f;
        [SerializeField] ChatPlayerMineCell m_ChatMineCell;
@@ -34,9 +37,14 @@
            }
            set
            {
                bool isChange = m_ChatType != value;
                ResetNewInfo();
                m_ChatType = value;
                DisplayChatContent();
                if (isChange)
                {
                    DisplayChatRemind();
                }
            }
        }
@@ -80,6 +88,7 @@
        private void OnEnable()
        {
            DisplayChatContent();
            DisplayChatRemind();
            ChatCtrl.OnRefreshChat += OnRefreshChat;
            ChatCtrl.OnRefreshPteChat += OnRefreshPteChat;
            ChatCtrl.OnRefreshSelf += OnRefreshSelf;
@@ -100,7 +109,12 @@
            if (m_ChatType == ChatInfoType.Friend)
            {
                DisplayChatContent();
                DisplayChatRemind();
                JumpPteChatBottom();
                if (!chatCenter.alreadyChatRemindPlayers.Contains(ChatCtrl.Inst.PteChatID))
                {
                    chatCenter.alreadyChatRemindPlayers.Add(ChatCtrl.Inst.PteChatID);
                }
            }
        }
@@ -310,6 +324,28 @@
            m_LockAreaBtn.gameObject.SetActive(m_ChatType != ChatInfoType.Friend);
        }
        private void DisplayChatRemind()
        {
            if (m_ContainerPrivateChatRemind != null)
            {
                bool requireRemind = false;
                if (m_ChatType == ChatInfoType.Friend)
                {
                    if (!chatCenter.alreadyChatRemindPlayers.Contains(ChatCtrl.Inst.PteChatID))
                    {
                        requireRemind = true;
                    }
                }
                var displayAreaHeight = m_ContainerDisplay.rect.height;
                m_ContainerPrivateChatRemind.gameObject.SetActive(requireRemind);
                if (requireRemind)
                {
                    displayAreaHeight = m_ContainerDisplay.rect.height - m_ContainerPrivateChatRemind.rect.height;
                }
                m_Scroller.sizeDelta = m_Scroller.sizeDelta.SetY(displayAreaHeight);
            }
        }
        float KeepArea()
        {
            if (m_ChatContentControl.GetNumberOfCells(m_ChatContentControl.m_Scorller) == ChatCtrl.Inst.CHAT_INFO_CNT)
@@ -457,6 +493,13 @@
            chatCenter.UpdateChatContent -= UpdateChatContent;
            ChatCtrl.Inst.OnPteChatChangeEvent -= OnPteChatChangeEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
            if (m_ChatType == ChatInfoType.Friend)
            {
                if (!chatCenter.alreadyChatRemindPlayers.Contains(ChatCtrl.Inst.PteChatID))
                {
                    chatCenter.alreadyChatRemindPlayers.Add(ChatCtrl.Inst.PteChatID);
                }
            }
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)