From bcd1dcef07dc129d68539ca2d562c5df53007f36 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 12 二月 2026 21:32:52 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Chat/ChatWin.cs | 63 +++++++++++++++++++++++++++++--
1 files changed, 59 insertions(+), 4 deletions(-)
diff --git a/Main/System/Chat/ChatWin.cs b/Main/System/Chat/ChatWin.cs
index 5e026dc..6b58dbc 100644
--- a/Main/System/Chat/ChatWin.cs
+++ b/Main/System/Chat/ChatWin.cs
@@ -22,7 +22,9 @@
[SerializeField] TextEx txtSendChat;
[SerializeField] ScrollerController scrWorld;
[SerializeField] ScrollerController scrGuild;
+ [SerializeField] ScrollerController scrCrossServer;
+ [SerializeField] ButtonEx serversBtn;
private int unreadMsgCount = 0;
[SerializeField] ButtonEx btnNewMsgTip;
[SerializeField] TextEx txtNewMsgTip;
@@ -32,6 +34,7 @@
bool isSettingOpen = false;
[SerializeField] ChatSettingButton btnWorldSetting;
[SerializeField] ChatSettingButton btnGuildSetting;
+ [SerializeField] ChatSettingButton btnCrossServerSetting;
ChatManager manager { get { return ChatManager.Instance; } }
protected override void InitComponent()
@@ -69,6 +72,11 @@
RefreshChat(manager.nowChatChannel, scrGuild);
ScrollerJump(scrGuild, ChatChannel.Guild);
}
+ else if (manager.nowChatChannel == ChatChannel.CrossServer)
+ {
+ RefreshChat(manager.nowChatChannel, scrCrossServer);
+ ScrollerJump(scrCrossServer, ChatChannel.CrossServer);
+ }
ClearUnreadMsg();
});
btnSetting.SetListener(() =>
@@ -76,7 +84,10 @@
isSettingOpen = !isSettingOpen;
transSettings.SetActive(isSettingOpen);
});
-
+ serversBtn.SetListener(() =>
+ {
+ UIHelper.ShowServersPanel(GuildManager.Instance.crossServerIDList);
+ });
}
// 娓呯悊鏈娑堟伅鐘舵��
@@ -104,12 +115,18 @@
manager.OnUpdatePlayerInfoEvent += OnUpdatePlayerInfoEvent;
scrChatTab.OnRefreshCell += OnRefreshChatTabCell;
+
scrWorld.OnGetDynamicSize += OnGetWorldChatDynamicSize;
scrWorld.OnRefreshCell += OnRefreshWorldCell;
scrWorld.mScrollRect.onValueChanged.AddListener(OnWorldScrollValChange);
+
scrGuild.OnGetDynamicSize += OnGetGuildChatDynamicSize;
scrGuild.OnRefreshCell += OnRefreshGuildCell;
scrGuild.mScrollRect.onValueChanged.AddListener(OnGuildScrollValChange);
+
+ scrCrossServer.OnGetDynamicSize += OnGetChatDynamicSize;
+ scrCrossServer.OnRefreshCell += OnRefreshCell;
+ scrCrossServer.mScrollRect.onValueChanged.AddListener(OnCrossServerScrollValChange);
clickScreenOtherSpace.AddListener(OnClickScreenOtherSpace);
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
@@ -119,6 +136,7 @@
transSettings.SetActive(isSettingOpen);
btnWorldSetting.SetChannelType(ChatChannel.World);
btnGuildSetting.SetChannelType(ChatChannel.Guild);
+ btnCrossServerSetting.SetChannelType(ChatChannel.CrossServer);
inputChat.characterLimit = ChatManager.Instance.characterLimit;
CreaterAll(manager.nowChatTab);
}
@@ -139,9 +157,15 @@
scrWorld.OnGetDynamicSize -= OnGetWorldChatDynamicSize;
scrWorld.OnRefreshCell -= OnRefreshWorldCell;
scrWorld.mScrollRect.onValueChanged.RemoveListener(OnWorldScrollValChange);
+
scrGuild.OnGetDynamicSize -= OnGetGuildChatDynamicSize;
scrGuild.OnRefreshCell -= OnRefreshGuildCell;
scrGuild.mScrollRect.onValueChanged.RemoveListener(OnGuildScrollValChange);
+
+ scrCrossServer.OnGetDynamicSize -= OnGetChatDynamicSize;
+ scrCrossServer.OnRefreshCell -= OnRefreshCell;
+ scrCrossServer.mScrollRect.onValueChanged.RemoveListener(OnCrossServerScrollValChange);
+
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
clickScreenOtherSpace.RemoveAllListeners();
}
@@ -165,6 +189,10 @@
else if (channel == ChatChannel.Guild)
{
CreateScroller(scrGuild, channel);
+ }
+ else if (channel == ChatChannel.CrossServer)
+ {
+ CreateScroller(scrCrossServer, channel);
}
}
@@ -227,7 +255,10 @@
{
if (scrWorld.lockType != EnhanceLockType.LockVerticalBottom)
scrWorld.lockType = EnhanceLockType.LockVerticalBottom;
-
+ if (scrGuild.lockType != EnhanceLockType.LockVerticalBottom)
+ scrGuild.lockType = EnhanceLockType.LockVerticalBottom;
+ if (scrCrossServer.lockType != EnhanceLockType.LockVerticalBottom)
+ scrCrossServer.lockType = EnhanceLockType.LockVerticalBottom;
// 濡傛灉鍥炲埌搴曢儴锛岀洿鎺ユ竻闆舵秷鎭�
ClearUnreadMsg();
}
@@ -236,6 +267,10 @@
{
if (scrWorld.lockType != EnhanceLockType.KeepVertical)
scrWorld.lockType = EnhanceLockType.KeepVertical;
+ if (scrGuild.lockType != EnhanceLockType.KeepVertical)
+ scrGuild.lockType = EnhanceLockType.KeepVertical;
+ if (scrCrossServer.lockType != EnhanceLockType.KeepVertical)
+ scrCrossServer.lockType = EnhanceLockType.KeepVertical;
}
}
}
@@ -248,6 +283,10 @@
private void OnGuildScrollValChange(Vector2 _pos)
{
OnScrollValChange(scrGuild, _pos);
+ }
+ private void OnCrossServerScrollValChange(Vector2 _pos)
+ {
+ OnScrollValChange(scrCrossServer, _pos);
}
private void OnScrollValChange(ScrollerController scorller, Vector2 _pos)
@@ -308,7 +347,11 @@
scrGuild.lockType = EnhanceLockType.LockVerticalBottom; // 鍒濆閿佸畾搴曢儴
scrGuild.SetActive(chatTab == ChatTab.Guild);
- transInput.SetActive(chatTab == ChatTab.World || chatTab == ChatTab.Guild);
+ scrCrossServer.lockType = EnhanceLockType.LockVerticalBottom; // 鍒濆閿佸畾搴曢儴
+ scrCrossServer.SetActive(chatTab == ChatTab.CrossServer);
+
+ transInput.SetActive(true);
+ serversBtn.SetActive(chatTab == ChatTab.CrossServer);
CreateChatTabScroller();
@@ -324,6 +367,12 @@
manager.nowChatChannel = ChatChannel.Guild;
CreateScroller(scrGuild, ChatChannel.Guild);
ScrollerJump(scrGuild, ChatChannel.Guild);
+ ClearUnreadMsg();
+ break;
+ case ChatTab.CrossServer:
+ manager.nowChatChannel = ChatChannel.CrossServer;
+ CreateScroller(scrCrossServer, ChatChannel.CrossServer);
+ ScrollerJump(scrCrossServer, ChatChannel.CrossServer);
ClearUnreadMsg();
break;
}
@@ -354,6 +403,10 @@
else if (type == ChatChannel.Guild)
{
RefreshChat(type, scrGuild, playerId, isUpdatePlayerInfo);
+ }
+ else if (type == ChatChannel.CrossServer)
+ {
+ RefreshChat(type, scrCrossServer, playerId, isUpdatePlayerInfo);
}
}
@@ -391,6 +444,8 @@
return;
if (type == ChatChannel.Guild && manager.nowChatTab != ChatTab.Guild)
return;
+ if (type == ChatChannel.CrossServer && manager.nowChatTab != ChatTab.CrossServer)
+ return;
// 1. 鑷繁鍙戦�佺殑娑堟伅 -> 寮哄埗璺宠浆鍒板簳閮� + 娓呴浂
if (playerId == PlayerDatas.Instance.PlayerId)
{
@@ -423,7 +478,7 @@
}
// 鐗规畩鎯呭喌锛氬鏋滄湭璇绘暟閲忓法澶э紙瓒呰繃浜嗘�绘樉绀烘暟閲忥級,璇存槑鏁翠釜鍒楄〃閮借鍒锋柊浜�,鐩存帴娑堥浂
- if (unreadMsgCount >= scrWorld.GetNumberOfCells(scrWorld.m_Scorller))
+ if (unreadMsgCount >= scroller.GetNumberOfCells(scroller.m_Scorller))
{
ClearUnreadMsg();
}
--
Gitblit v1.8.0