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 ++++++++++++++++++++++++++++-------
Main/System/GuildAtkDefBat/GuildAtkDefBatWin.cs | 2
Main/System/GuildAtkDefBat/GuildAtkDefBatRecordWin.cs | 2
Main/System/Guild/GuildCreateWin.cs | 2
Main/System/GuildAtkDefBat/GuildAtkDefBatBattlePanelWin.cs | 2
Main/System/Guild/GuildEmblemWin.cs | 9 ++++
6 files changed, 69 insertions(+), 20 deletions(-)
diff --git a/Main/System/Guild/GuildCreateWin.cs b/Main/System/Guild/GuildCreateWin.cs
index c63f925..c560706 100644
--- a/Main/System/Guild/GuildCreateWin.cs
+++ b/Main/System/Guild/GuildCreateWin.cs
@@ -28,7 +28,7 @@
{
GuildEmblemModel.Instance.CreateSelectEmblemIdChangeEvent += CreateSelectEmblemEvent;
if (GuildEmblemModel.Instance.createEmblemWord == "")
- GuildEmblemModel.Instance.createEmblemWord = PlayerDatas.Instance.baseData.PlayerName[0].ToString();
+ GuildEmblemModel.Instance.createEmblemWord = GuildManager.Instance.LimitEmblemWord(PlayerDatas.Instance.baseData.PlayerName);
if (GuildEmblemModel.Instance.createSelectEmblemId <= 0)
GuildEmblemModel.Instance.createSelectEmblemId = FamilyEmblemConfig.GetRandomEmblem();
diff --git a/Main/System/Guild/GuildEmblemWin.cs b/Main/System/Guild/GuildEmblemWin.cs
index b1433eb..07fbc92 100644
--- a/Main/System/Guild/GuildEmblemWin.cs
+++ b/Main/System/Guild/GuildEmblemWin.cs
@@ -28,6 +28,7 @@
{
GuildEmblemModel.Instance.ChooseEmblemIdChangeEvent += ChooseEmblemEvent;
emblemScroller.OnRefreshCell += OnRefreshCell;
+ flagNameText.characterLimit = GuildManager.Instance.GetEmblemWordCharacterLimit();
if (functionOrder == 1)
{
@@ -124,7 +125,12 @@
void OnFlagNameChange(string value)
{
- emblemWord = value;
+ emblemWord = GuildManager.Instance.LimitEmblemWord(value);
+ if (emblemWord != value)
+ {
+ flagNameText.text = emblemWord;
+ return;
+ }
guildEmblem.Display(GuildEmblemModel.Instance.nowChooseEmblemId, emblemWord);
}
@@ -135,6 +141,7 @@
void ChangeEmblem()
{
+ emblemWord = GuildManager.Instance.LimitEmblemWord(emblemWord);
if (functionOrder == 1)
{
GuildEmblemModel.Instance.createEmblemWord = emblemWord;
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
+}
diff --git a/Main/System/GuildAtkDefBat/GuildAtkDefBatBattlePanelWin.cs b/Main/System/GuildAtkDefBat/GuildAtkDefBatBattlePanelWin.cs
index 310bed7..4fb33bd 100644
--- a/Main/System/GuildAtkDefBat/GuildAtkDefBatBattlePanelWin.cs
+++ b/Main/System/GuildAtkDefBat/GuildAtkDefBatBattlePanelWin.cs
@@ -188,7 +188,7 @@
{
string enemyName = Language.Get("GuildAtkDefBat31");
enemyNameText.text = enemyName;
- enemyEmblemCell.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), !string.IsNullOrEmpty(enemyName) ? enemyName[0].ToString() : string.Empty, 0.7f);
+ enemyEmblemCell.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), GuildManager.Instance.LimitEmblemWord(enemyName), 0.7f);
enemyServerText.text = ServerListCenter.Instance.GetServerName(UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID));
enemyStarCntText.text = enemyFamilyInfo.TotalStar.ToString();
}
diff --git a/Main/System/GuildAtkDefBat/GuildAtkDefBatRecordWin.cs b/Main/System/GuildAtkDefBat/GuildAtkDefBatRecordWin.cs
index 45afde5..4e1c3a3 100644
--- a/Main/System/GuildAtkDefBat/GuildAtkDefBatRecordWin.cs
+++ b/Main/System/GuildAtkDefBat/GuildAtkDefBatRecordWin.cs
@@ -123,7 +123,7 @@
{
string enemyName = Language.Get("GuildAtkDefBat31");
enemyGuildName.text = enemyName;
- enemyEmblem.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), !string.IsNullOrEmpty(enemyName) ? enemyName[0].ToString() : string.Empty, 0.7f);
+ enemyEmblem.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), GuildManager.Instance.LimitEmblemWord(enemyName), 0.7f);
enemyStatCnt.text = enemyFamilyInfo.TotalStar.ToString();
}
else
diff --git a/Main/System/GuildAtkDefBat/GuildAtkDefBatWin.cs b/Main/System/GuildAtkDefBat/GuildAtkDefBatWin.cs
index 75363a0..99d931f 100644
--- a/Main/System/GuildAtkDefBat/GuildAtkDefBatWin.cs
+++ b/Main/System/GuildAtkDefBat/GuildAtkDefBatWin.cs
@@ -303,7 +303,7 @@
{
string enemyName = Language.Get("GuildAtkDefBat31");
enemyNameText.text = enemyName;
- enemyEmblemCell.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), !enemyName.IsNullOrEmpty() ? enemyName[0].ToString() : string.Empty, 0.7f);
+ enemyEmblemCell.Display(FamilyEmblemConfig.GetFirstDefaultEmblem(), GuildManager.Instance.LimitEmblemWord(enemyName), 0.7f);
enemyServerText.text = ServerListCenter.Instance.GetServerName(UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID));
enemyStarCntText.text = enemyFamilyInfo.TotalStar.ToString();
}
--
Gitblit v1.8.0