From c22bdd2562585c87d3fcfadcf94a4277b119a85c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期日, 14 十二月 2025 19:52:44 +0800
Subject: [PATCH] 76 【常规】聊天系统-客户端
---
Main/System/Chat/ChatWin.cs | 27 +++++++++++++++++++++++----
1 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/Main/System/Chat/ChatWin.cs b/Main/System/Chat/ChatWin.cs
index 1793fce..427087b 100644
--- a/Main/System/Chat/ChatWin.cs
+++ b/Main/System/Chat/ChatWin.cs
@@ -96,10 +96,12 @@
protected override void OnPreOpen()
{
base.OnPreOpen();
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
manager.OnChatTabChangeEvent += OnChatTabChange;
manager.OnUpdateTalkEvent += OnUpdateTalkEvent;
manager.OnUpdateTalkCacheListEvent += OnUpdateTalkCacheList;
manager.OnDeleteTalkEvent += OnDeleteTalkEvent;
+ manager.OnUpdatePlayerInfoEvent += OnUpdatePlayerInfoEvent;
scrChatTab.OnRefreshCell += OnRefreshChatTabCell;
scrWorld.OnGetDynamicSize += OnGetWorldChatDynamicSize;
@@ -126,10 +128,12 @@
protected override void OnPreClose()
{
base.OnPreClose();
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent;
manager.OnChatTabChangeEvent -= OnChatTabChange;
manager.OnUpdateTalkEvent -= OnUpdateTalkEvent;
manager.OnUpdateTalkCacheListEvent -= OnUpdateTalkCacheList;
manager.OnDeleteTalkEvent -= OnDeleteTalkEvent;
+ manager.OnUpdatePlayerInfoEvent -= OnUpdatePlayerInfoEvent;
scrChatTab.OnRefreshCell -= OnRefreshChatTabCell;
scrWorld.OnGetDynamicSize -= OnGetWorldChatDynamicSize;
@@ -140,6 +144,16 @@
scrGuild.mScrollRect.onValueChanged.RemoveListener(OnGuildScrollValChange);
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
clickScreenOtherSpace.RemoveAllListeners();
+ }
+
+ private void OnBeforePlayerDataInitializeEvent()
+ {
+ CreaterAll(manager.nowChatTab);
+ }
+
+ private void OnUpdatePlayerInfoEvent()
+ {
+ RefreshAll(manager.nowChatChannel, isUpdatePlayerInfo: true);
}
private void OnDeleteTalkEvent(ChatChannel channel)
@@ -330,21 +344,21 @@
return 0;
}
- private void RefreshAll(ChatChannel type, uint playerId = 0)
+ private void RefreshAll(ChatChannel type, uint playerId = 0, bool isUpdatePlayerInfo = false)
{
scrChatTab.m_Scorller.RefreshActiveCellViews();
if (type == ChatChannel.World)
{
- RefreshChat(type, scrWorld, playerId);
+ RefreshChat(type, scrWorld, playerId, isUpdatePlayerInfo);
}
else if (type == ChatChannel.Guild)
{
- RefreshChat(type, scrGuild, playerId);
+ RefreshChat(type, scrGuild, playerId, isUpdatePlayerInfo);
}
}
- private void RefreshChat(ChatChannel type, ScrollerController scroller, uint playerId = 0)
+ private void RefreshChat(ChatChannel type, ScrollerController scroller, uint playerId = 0, bool isUpdatePlayerInfo = false)
{
if (!manager.TryGetTalkData(type, out List<TalkData> datas) || datas == null)
return;
@@ -361,6 +375,11 @@
float height = GetHeight(talkDataType, data.Content, data.InfoList);
scroller.m_Scorller.AddHeight(true, height);
//Debug.Log($"ChatWin AddCell i {i} AddHeight {height}");
+
+ }
+ if (isUpdatePlayerInfo)
+ {
+ scroller.m_Scorller.RefreshActiveCellViews();
}
}
else
--
Gitblit v1.8.0