From 6205f6a3daa716ae0e2e2fbb50d2b11240d76bb9 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 18:13:48 +0800
Subject: [PATCH] 588 公会攻防战 公会旗号支持不同语言不同字数限制

---
 Main/System/Guild/GuildManager.cs |   72 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 15 deletions(-)

diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 0f77812..8265ced 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -3,12 +3,12 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using Cysharp.Threading.Tasks;
-using LitJson;
-using UnityEngine;
-
-
-public partial class GuildManager : GameSystemManager<GuildManager>
+using Cysharp.Threading.Tasks;
+using LitJson;
+using UnityEngine;
+
+
+public partial class GuildManager : GameSystemManager<GuildManager>
 {
     // 瀹舵棌鑷畾涔夎褰曠被鍨�
     public const int MemberChangeActionType = 12;      //鍏細鍙樻洿璁板綍
@@ -206,6 +206,8 @@
     public int zbgChangFamilyCD;
     public List<int> cutCntListForTalk = new List<int>();
     public int familyRecordMaxCount;
+    public const int DefaultEmblemWordCharacterLimit = 1;
+    public Dictionary<string, int> emblemWordCharacterLimitDict = new Dictionary<string, int>();
 
     void ParseConfig()
     {
@@ -252,6 +254,9 @@
         config = FuncConfigConfig.Get("FamilyBillboardSet");
         pageCnt = int.Parse(config.Numerical1);
         queryPointNum = int.Parse(config.Numerical2);
+
+        config = FuncConfigConfig.Get("FamilyEmblem");
+        emblemWordCharacterLimitDict = JsonMapper.ToObject<Dictionary<string, int>>(config.Numerical1);
     }
 
 
@@ -344,6 +349,44 @@
         });
     }
 
+    public int GetEmblemWordCharacterLimit()
+    {
+        string langId = Language.Id;
+        if (!string.IsNullOrEmpty(langId) && emblemWordCharacterLimitDict.TryGetValue(langId, out int limit) && limit > 0)
+        {
+            return limit;
+        }
+
+        return DefaultEmblemWordCharacterLimit;
+    }
+
+    public string LimitEmblemWord(string emblemWord)
+    {
+        if (string.IsNullOrEmpty(emblemWord))
+        {
+            return string.Empty;
+        }
+
+        int limit = GetEmblemWordCharacterLimit();
+        if (emblemWord.Length <= limit)
+        {
+            return emblemWord;
+        }
+
+        return emblemWord.Substring(0, limit);
+    }
+
+    bool CheckEmblemWord(string emblemWord)
+    {
+        if (string.IsNullOrEmpty(emblemWord))
+        {
+            return true;
+        }
+
+        int limit = GetEmblemWordCharacterLimit();
+        return emblemWord.Length <= limit;
+    }
+
 
 
 
@@ -390,9 +433,8 @@
             return;
         }
 
-        if (emblemWord.Length > 1)
+        if (!CheckEmblemWord(emblemWord))
         {
-            //棰勫埗浣撹緭鍏ユ闄愬埗锛屼笉闄愪换鎰忓瓧绗﹂兘鍙兘杈撳叆1涓瓧
             return;
         }
 
@@ -485,12 +527,12 @@
             return;
         }
 
-        if (GuildAtkDefBatManager.Instance.UpdateAtkDefBatLogInfo(_package))
-        {
-            return;
-        }
-        
-        if (PlayerDatas.Instance.baseData.FamilyId != _package.FamilyID)
+        if (GuildAtkDefBatManager.Instance.UpdateAtkDefBatLogInfo(_package))
+        {
+            return;
+        }
+        
+        if (PlayerDatas.Instance.baseData.FamilyId != _package.FamilyID)
         {
             return;
         }
@@ -1297,4 +1339,4 @@
     PublishNotice = 3,
     Kick = 4,
 
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0