From a7d90746b8f3cb32dccdddea05824ff6f792b32e Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 20 一月 2026 19:33:41 +0800
Subject: [PATCH] 441 【公会】基础主体 / 公会相关界面 公告修改

---
 Main/System/Guild/GuildHallWin.cs                 |    2 
 Main/System/Guild/GuildChangeBroadcastWin.cs      |   88 ++++++++++++++++++++++++++++++++++++++++++++
 Main/System/Guild/GuildChangeBroadcastWin.cs.meta |   11 +++++
 3 files changed, 100 insertions(+), 1 deletions(-)

diff --git a/Main/System/Guild/GuildChangeBroadcastWin.cs b/Main/System/Guild/GuildChangeBroadcastWin.cs
new file mode 100644
index 0000000..dde5d6c
--- /dev/null
+++ b/Main/System/Guild/GuildChangeBroadcastWin.cs
@@ -0,0 +1,88 @@
+using System.Text;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 淇敼鍏憡鐣岄潰
+/// </summary>
+public class GuildChangeBroadcastWin : UIBase
+{
+    [SerializeField] InputField inputField;
+    [SerializeField] Button okBtn;
+
+    protected override void InitComponent()
+    {
+        okBtn.SetListener(() =>
+        {
+            string msg = inputField.text;
+            if (!CheckLimit(msg, out int errorCode))
+            {
+                ShowErrorTip(errorCode);
+                return;
+            }
+            SendPack(msg);
+            CloseWindow();
+        });
+    }
+
+    protected override void OnPreOpen()
+    {
+        inputField.text = string.Empty;
+    }
+
+    private void SendPack(string msg)
+    {
+        CA623_tagCMChangeFamilyBroadcast pack = new CA623_tagCMChangeFamilyBroadcast();
+        pack.Msg = msg;
+        GameNetSystem.Instance.SendInfo(pack);
+    }
+
+    private bool CheckLimit(string info, out int errorCode)
+    {
+        errorCode = 0;
+        if (string.IsNullOrEmpty(info))
+        {
+            errorCode = 0;
+            return false;
+        }
+
+        if (SatisfyLength(info))
+        {
+            errorCode = 1;
+            return false;
+        }
+
+        if (DirtyWordConfig.IsDirtWord(info) || UIHelper.HasSpecCheckChat(info) || DirtyNameConfig.IsDirtName(info))
+        {
+            errorCode = 3;
+            return false;
+        }
+        return true;
+    }
+
+    private bool SatisfyLength(string name)
+    {
+        int length = Encoding.Default.GetBytes(name).Length;
+        int maxlength = inputField.characterLimit * 3;  //绾腑鏂囧瓧鏁�
+        return length > maxlength;
+    }
+
+    private void ShowErrorTip(int _errorCode)
+    {
+        switch (_errorCode)
+        {
+            case 0:
+                //绌�
+                SysNotifyMgr.Instance.ShowTip("ChatInfoNoNull");
+                break;
+            case 1:
+                // 闀垮害杩囬暱
+                SysNotifyMgr.Instance.ShowTip("NameError2", inputField.characterLimit);
+                break;
+            case 3:
+                // 鑴忓瓧
+                SysNotifyMgr.Instance.ShowTip("NameSensitive");
+                break;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Main/System/Guild/GuildChangeBroadcastWin.cs.meta b/Main/System/Guild/GuildChangeBroadcastWin.cs.meta
new file mode 100644
index 0000000..1815a27
--- /dev/null
+++ b/Main/System/Guild/GuildChangeBroadcastWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2d13203d3d3b7204cb8063a9e13f605d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Guild/GuildHallWin.cs b/Main/System/Guild/GuildHallWin.cs
index fd1a187..51bdf38 100644
--- a/Main/System/Guild/GuildHallWin.cs
+++ b/Main/System/Guild/GuildHallWin.cs
@@ -50,7 +50,7 @@
             var needLV = GuildManager.Instance.GetNeedGuildJobLV((int)GuildFuncType.PublishNotice);
             if (PlayerDatas.Instance.fairyData.mine.FmLV >= needLV)
             {
-                // UIManager.Instance.OpenWindow<GuildNoticeWin>();
+                UIManager.Instance.OpenWindow<GuildChangeBroadcastWin>();
             }
         });
 

--
Gitblit v1.8.0