hch
2025-12-09 f448a4aff7c479db081175c9206913cc6dedf553
0312 优化字符串拼接函数
42个文件已修改
237 ■■■■■ 已修改文件
Main/Component/UI/Common/CoolDownBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Common/EnableButtonConfig.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/PartialConfigs/ChestsAwardConfig.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/Frame/UIFrameMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/NetPkgCtl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/ResModule/ScriptableObjectLoader.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Arena/ArenaAwardCell.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/AssetVersion/DownLoadWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/AssetVersion/InGameDownLoadProgress.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/AssetVersion/InGameDownLoadWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/ChallengeTab/ChallengeTabButton.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Chat/ChatManager.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/CustomizedGift/CustomizedGiftChooseWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FirstCharge/FirstChargeHeroInfoWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FirstCharge/FirstChargeManager.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/GeneralConfig/DayRemind.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Launch/LaunchWin.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Login/LoginManager.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Login/ServerListCenter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Mail/MailWin.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Message/RichTableEvent.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OSActivity/OSActivityManager.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OSActivity/OSRankHeroCallAwardCell.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OSActivity/OSRankMainLeveAwardCell.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OpenServerActivity/OperationTimeHepler.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PhantasmPavilion/AvatarHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Redpoint/MainRedDot.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Store/StoreModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TianziBillborad/TianziBillboradAwardCell.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Tip/PowerAddWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/EnumHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/RunTimeABLoadLog.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/TimeUtility.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/UIHelper.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/UIParamCopyTool.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Common/CoolDownBehaviour.cs
@@ -56,7 +56,7 @@
                {
                    timer = 1f;
                    var seconds = Mathf.RoundToInt(m_ButtonEx.ableTime - Time.realtimeSinceStartup);
                    m_CoolDownText.text = StringUtility.Contact(seconds, Language.Get("RealmWin_Bewrite_35"));
                    m_CoolDownText.text = StringUtility.Contact(seconds.ToString(), Language.Get("RealmWin_Bewrite_35"));
                }
            }
            else
Main/Component/UI/Common/EnableButtonConfig.cs
@@ -31,7 +31,7 @@
        {
            return dict[_type];
        }
        var _cfg= BuiltInLoader.LoadScriptableObject<EnableButtonConfig>(StringUtility.Contact("EnableButton_", _type));
        var _cfg= BuiltInLoader.LoadScriptableObject<EnableButtonConfig>(StringUtility.Contact("EnableButton_", _type.ToString()));
        dict.Add(_type, _cfg);
        return _cfg;
    }
Main/Config/PartialConfigs/ChestsAwardConfig.cs
@@ -8,7 +8,7 @@
    
    protected override void OnConfigParseCompleted()
    {
        string key = StringUtility.Contact(BoxID, BoxLV);
        string key = $"{BoxID}{BoxLV}";
        if (!chestAwardDict.ContainsKey(key))
        {
            chestAwardDict.Add(key, this);
@@ -50,7 +50,7 @@
    private static ChestsAwardConfig GetChestsAwardByIDAndLv(int id, int lv)
    {
        ChestsAwardConfig chestsAwardConfig = null;
        string key = StringUtility.Contact(id, lv);
        string key = $"{id}{lv}";
        chestAwardDict.TryGetValue(key, out chestsAwardConfig);
        return chestsAwardConfig;
    }
Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs
@@ -8,13 +8,13 @@
    protected override void OnConfigParseCompleted()
    {
        m_ReplaceCfgs.Add(StringUtility.Contact(Identification, Number).ToString(), this);
        m_ReplaceCfgs.Add(StringUtility.Contact(Identification, Number.ToString()), this);
    }
    public static string GetRichReplace(string identify, int number)
    {
        RichTextMsgReplaceConfig replace = null;
        m_ReplaceCfgs.TryGetValue(StringUtility.Contact(identify, number).ToString(), out replace);
        m_ReplaceCfgs.TryGetValue(StringUtility.Contact(identify, number.ToString()), out replace);
        if (replace != null)
        {
            return replace.Content;
Main/Core/Frame/UIFrameMgr.cs
@@ -57,7 +57,7 @@
        for (int i = 1; i <= cfg.frameCnt; i++)
        {
            string spritePath = "Sprite/" + cfg.folder;
            string spriteName = StringUtility.Contact(cfg.name, "_", i);
            string spriteName = StringUtility.Contact(cfg.name, "_", i.ToString());
            
            Sprite sprite = ResManager.Instance.LoadAsset<Sprite>(spritePath, spriteName);
            if (sprite != null)
Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs
@@ -185,7 +185,7 @@
                foreach (var file in configFiles)
                {
                    var name = Path.GetFileName(file.FullName);
                    fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name));
                    fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar.ToString(), name));
                }
                foreach (var item in fileNames)
@@ -232,7 +232,7 @@
        foreach (var file in configFiles)
        {
            var name = Path.GetFileName(file.FullName);
            fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name));
            fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar.ToString(), name));
        }
        foreach (var item in fileNames)
Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs
@@ -1,11 +1,12 @@
using UnityEngine;
using System.Collections;
using UnityEngine;
using System.Collections;
// AB 05 开服庆典信息 #tagSCOSACelebrationInfo
public class DTCAB05_tagSCOSACelebrationInfo : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HAB05_tagSCOSACelebrationInfo vNetData = vNetPack as HAB05_tagSCOSACelebrationInfo;
        OSActivityManager.Instance.UpdateOSGalaData(vNetData);
    }
}
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -134,6 +134,7 @@
        Register(typeof(HB311_tagMCTalkCacheList), typeof(DTCB311_tagMCTalkCacheList));
        Register(typeof(HA319_tagMCPackDownloadRecord), typeof(DTCA319_tagMCPackDownloadRecord));
        Register(typeof(HB129_tagSCLineupRecommendInfo), typeof(DTCB129_tagSCLineupRecommendInfo));
        Register(typeof(HAB05_tagSCOSACelebrationInfo), typeof(DTCAB05_tagSCOSACelebrationInfo));
    }
    //主工程注册封包
Main/Core/NetworkPackage/NetPkgCtl.cs
@@ -72,7 +72,7 @@
                var package = packages[i];
                var line = string.Empty;
                line = StringUtility.Contact(package.type == NetPackagetType.Client ? "【发送】\t" : "【接收】\t", package.time, ":", package.name, @details ? "\r\n" : "-->" + package.fields);
                line = StringUtility.Concat(package.type == NetPackagetType.Client ? "【发送】\t" : "【接收】\t", package.time, ":", package.name, @details ? "\r\n" : "-->" + package.fields);
                if (@details && package.fieldDetails != null)
                {
Main/Core/ResModule/ScriptableObjectLoader.cs
@@ -20,10 +20,10 @@
        if (!AssetSource.isUseAssetBundle)
        {
#if UNITY_EDITOR
            var resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
            var resourcePath = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
                                                   "ScriptableObject/NewBieGuide/",
                                                   SoNewBieGuide_Suffix,
                                                   _id,
                                                   _id.ToString(),
                                                   ".asset");
            config = AssetDatabase.LoadAssetAtPath<NewBieGuideScriptableObject>(resourcePath);
@@ -31,7 +31,7 @@
        }
        else
        {
            var assetName = StringUtility.Contact(SoNewBieGuide_Suffix, _id);
            var assetName = StringUtility.Contact(SoNewBieGuide_Suffix, _id.ToString());
            var assetInfo = new AssetInfo(bundleName, assetName);
            config = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as NewBieGuideScriptableObject;
        }
Main/System/Arena/ArenaAwardCell.cs
@@ -23,7 +23,7 @@
        {
            imgRank.SetActive(true);
            txtRank.SetActive(false);
            imgRank.SetSprite(StringUtility.Contact("Rank", rank));
            imgRank.SetSprite($"Rank{rank}");
            txtRank.text = rank.ToString();
        }
        else
Main/System/AssetVersion/DownLoadWin.cs
@@ -86,11 +86,11 @@
                var downLoadedSize = Mathf.Clamp(DownloadHotMgr.Instance.DownloadedBytes, 0, DownLoadAndDiscompressHotTask.Instance.totalSize - 1);
                var downLoadedSizeString = ((float)downLoadedSize / DownLoadAndDiscompressHotTask.BYTE_PER_MILLIONBYTE).ToString("f1");
                m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSizeString, "M", "/", totalSizeString, "M"));
                m_Progress.text = Language.GetFromLocal(13, StringUtility.Concat(downLoadedSizeString, "M", "/", totalSizeString, "M"));
                if (downLoadedSize >= DownLoadAndDiscompressHotTask.Instance.totalSize)
                {
                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10), "KB/S");
                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
                }
                else
                {
Main/System/AssetVersion/InGameDownLoadProgress.cs
@@ -32,7 +32,7 @@
            else
            {
                var progress = Mathf.RoundToInt(InGameDownLoad.Instance.progress * 100);
                m_ProgressText.text = StringUtility.Contact(progress, "%");
                m_ProgressText.text = StringUtility.Contact(progress.ToString(), "%");
            }
        }
        else
@@ -113,7 +113,7 @@
            else
            {
                var progress = Mathf.RoundToInt(InGameDownLoad.Instance.progress * 100);
                m_ProgressText.text = StringUtility.Contact(Mathf.Clamp(progress, 0, 99), "%");
                m_ProgressText.text = StringUtility.Contact(Mathf.Clamp(progress, 0, 99).ToString(), "%");
            }
        }
    }
Main/System/AssetVersion/InGameDownLoadWin.cs
@@ -119,11 +119,11 @@
                var totalSizeString = ((float)InGameDownLoad.Instance.showTotalSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
                var downLoadedSize = Mathf.Clamp(InGameDownLoad.Instance.showDownLoadedSize, 0, InGameDownLoad.Instance.showTotalSize - 1);
                var downLoadedSizeString = ((float)downLoadedSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
                m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSizeString, "M", "/", totalSizeString, "M"));
                m_Progress.text = Language.GetFromLocal(13, StringUtility.Concat(downLoadedSizeString, "M", "/", totalSizeString, "M"));
                if (InGameDownLoad.Instance.showDownLoadedSize >= InGameDownLoad.Instance.showTotalSize)
                {
                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10), "KB/S");
                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
                }
                else
                {
Main/System/ChallengeTab/ChallengeTabButton.cs
@@ -68,7 +68,7 @@
        txtLockInfo.SetActive(!isOpen);
        // 设置图标和名称
        string spriteAndLangKey = StringUtility.Contact("ChallengeTab", data.Index);
        string spriteAndLangKey = StringUtility.Contact("ChallengeTab", data.Index.ToString());
        imgIcon.SetSprite(spriteAndLangKey);
        txtName.text = Language.Get(spriteAndLangKey);
Main/System/Chat/ChatManager.cs
@@ -534,19 +534,19 @@
    public string GetChatTabName(ChatTab chatTab)
    {
        return Language.Get(StringUtility.Contact("ChatTab", (int)chatTab));
        return Language.Get(StringUtility.Contact("ChatTab", ((int)chatTab).ToString()));
    }
    public string GetChatTabSelectIcon(ChatTab chatTab, bool isSelect)
    {
        return StringUtility.Contact(isSelect ? "ChatTabSelect" : "ChatTabUnSelect", (int)chatTab);
        return StringUtility.Contact(isSelect ? "ChatTabSelect" : "ChatTabUnSelect", ((int)chatTab).ToString());
    }
    #endregion
    #region 弹幕设置
    private Dictionary<ChatChannel, bool> bulletSettingDict = new Dictionary<ChatChannel, bool>();
    private string settingsKey { get { return StringUtility.Contact("BulletChatSettings_", PlayerDatas.Instance.PlayerId); } }
    private string settingsKey { get { return StringUtility.Contact("BulletChatSettings_", PlayerDatas.Instance.PlayerId.ToString()); } }
    // 设置特定频道的弹幕开关状态
    public void SetBulletSetting(ChatChannel channelType, bool isEnabled)
Main/System/CustomizedGift/CustomizedGiftChooseWin.cs
@@ -142,7 +142,7 @@
        {
            txtTitle.SetActive(true);
            txtInfo.SetActive(true);
            txtTitle.text = StringUtility.Contact(ItemConfig.Get(selectItemID).ItemName, " x", selectIemCount);
            txtTitle.text = StringUtility.Contact(ItemConfig.Get(selectItemID).ItemName, " x", selectIemCount.ToString());
            txtInfo.text = ItemConfig.Get(selectItemID).Description;
        }
        else
Main/System/FirstCharge/FirstChargeHeroInfoWin.cs
@@ -59,7 +59,7 @@
        itemCell.Init(new ItemCellModel((int)FirstChargeManager.Instance.heroItemID, true, 1));
        txtName.text = Language.Get("FirstCharge09", Language.Get("CommonQuality" + heroInfo.Quality),heroInfo.heroConfig.Name); 
        txtName.color = UIHelper.GetUIColorByFunc(heroInfo.Quality);
        txtJob.text = Language.Get("FirstCharge06",Language.Get(StringUtility.Contact("HeroClass",heroInfo.heroConfig.Class)));
        txtJob.text = Language.Get("FirstCharge06",Language.Get(StringUtility.Contact("HeroClass",heroInfo.heroConfig.Class.ToString())));
        txtDesc.text = Language.Get("FirstCharge07",heroInfo.heroConfig.Desc);
    }
    
Main/System/FirstCharge/FirstChargeManager.cs
@@ -156,12 +156,12 @@
    public bool GetLocalFail()
    {
        return LocalSave.GetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId));
        return LocalSave.GetBool(StringUtility.Concat(loaclKey + PlayerDatas.Instance.PlayerId));
    }
    public void SetLocalFail()
    {
        LocalSave.SetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId), true);
        LocalSave.SetBool(StringUtility.Concat(loaclKey + PlayerDatas.Instance.PlayerId), true);
    }
    public bool IsFuncOpen()
@@ -329,7 +329,7 @@
        OnUpdateFirstChargeInfo?.Invoke();
    }
    public string key { get { return StringUtility.Contact("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID); } }
    public string key { get { return StringUtility.Contact("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID.ToString()); } }
    /// <summary>
    /// 检查是否所有首充奖励都已领取,如果是,则将当前服务器时间保存到本地
Main/System/GeneralConfig/DayRemind.cs
@@ -69,7 +69,7 @@
        intarray[0] = TimeUtility.ServerNow.Month;
        intarray[1] = TimeUtility.ServerNow.Day;
        intarray[2] = _remind ? 1 : 0;
        LocalSave.SetIntArray(StringUtility.Contact(_remindKey, PlayerDatas.Instance.baseData.PlayerID), intarray);
        LocalSave.SetIntArray(StringUtility.Contact(_remindKey, PlayerDatas.Instance.baseData.PlayerID.ToString()), intarray);
    }
    private void GetPlayerDayRemind()
@@ -80,7 +80,7 @@
    public void SetDayRemind(string _key)
    {
        var intarray = LocalSave.GetIntArray(StringUtility.Contact(_key, PlayerDatas.Instance.baseData.PlayerID));
        var intarray = LocalSave.GetIntArray(StringUtility.Contact(_key, PlayerDatas.Instance.baseData.PlayerID.ToString()));
        if (dayRemindDic.ContainsKey(_key))
        {
            dayRemindDic[_key] = intarray;
Main/System/HeroUI/HeroUIManager.cs
@@ -168,12 +168,12 @@
    public string GetCountryIconName(int index)
    {
        return StringUtility.Contact("herocountry", index);
        return StringUtility.Contact("herocountry", index.ToString());
    }
    public string GetJobIconName(int index)
    {
        return StringUtility.Contact("herojob", index);
        return StringUtility.Contact("herojob", index.ToString());
    }
    public int GetMaxLV(int quality)
Main/System/Launch/LaunchWin.cs
@@ -151,9 +151,9 @@
                case LaunchStage.SDKInit:
                    return Language.GetFromLocal(36);
                case LaunchStage.AssetCopy:
                    return StringUtility.Contact(Language.GetFromLocal(37), "(", step, ")");
                    return StringUtility.Contact(Language.GetFromLocal(37), "(", step.ToString(), ")");
                case LaunchStage.AssetDecompress:
                    return StringUtility.Contact(Language.GetFromLocal(38), "(", step, ")");
                    return StringUtility.Contact(Language.GetFromLocal(38), "(", step.ToString(), ")");
                case LaunchStage.ClientVersion:
                    return Language.GetFromLocal(39);
                case LaunchStage.CheckAsset:
@@ -163,7 +163,7 @@
                case LaunchStage.AssetBundleInit:
                    return Language.GetFromLocal(42);
                case LaunchStage.ConfigInit:
                    return StringUtility.Contact(Language.GetFromLocal(43), "(", step, ")");
                    return StringUtility.Contact(Language.GetFromLocal(43), "(", step.ToString(), ")");
                case LaunchStage.Complete:
                    return Language.GetFromLocal(44);
                default:
Main/System/Login/LoginManager.cs
@@ -331,9 +331,9 @@
            {
                var deviceInfo = DeviceUtility.GetDeviceModel();
                deviceInfo.Replace(" ", "").Replace("=", "").Replace("%", "").Replace("-", "").Replace("|", "");
                var versionStr = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", deviceInfo);
                var versionStr = StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex.ToString(), "_", deviceInfo);
                send.Extra = StringUtility.Contact(VersionConfig.Get().SpID, "|",
                send.Extra = StringUtility.Concat(VersionConfig.Get().SpID, "|",
                                                    SDKUtils.Instance.Device.uniqueID, "|",
                                                    sdkLoginResult.token, "|",
                                                    sdkLoginResult.qkUserName, "|",
@@ -375,6 +375,6 @@
    public string GetVersionStr()
    {
        return StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", InitialFunctionConfig.Get("version").Numerical1);
        return StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex.ToString(), "_", InitialFunctionConfig.Get("version").Numerical1);
    }
}
Main/System/Login/ServerListCenter.cs
@@ -199,7 +199,7 @@
            return;
        }
        var url = StringUtility.Contact(JUMP_URL[0], "game=xssg&flag=", VersionConfig.Get().appId, "_", VersionConfig.Get().branch, "_", VersionConfig.Get().version);
        var url = StringUtility.Concat(JUMP_URL[0], "game=xssg&flag=", VersionConfig.Get().appId, "_", VersionConfig.Get().branch.ToString(), "_", VersionConfig.Get().version);
        jumpUrlIndex++;
        serverUrl = url;
        Debug.Log("http地址:serverlist  " + url);
Main/System/Mail/MailWin.cs
@@ -49,7 +49,7 @@
    {
        scrMail.m_Scorller.RefreshActiveCellViews();
        int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount, "/", MailManager.Instance.personalMailMaxLimitCount);
        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
    }
    protected override void OpenSubUIByTabIndex()
@@ -62,7 +62,7 @@
                btnClaimAll.SetActive(true);
                transCurrentMailCount.SetActive(true);
                int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
                txtCurrentMailCount.text = StringUtility.Contact(personalMailCount, "/", MailManager.Instance.personalMailMaxLimitCount);
                txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
                DisPlay();
                break;
            case 1:
@@ -148,7 +148,7 @@
            scrMail.Restart();
        }
        int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount, "/", MailManager.Instance.personalMailMaxLimitCount);
        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
    }
Main/System/Message/RichTableEvent.cs
@@ -77,7 +77,7 @@
                                                int.TryParse(_dict["count"], out count);
                                                if (count > 0)
                                                {
                                                    itemName = StringUtility.Contact(itemName, "x", count);
                                                    itemName = StringUtility.Contact(itemName, "x", count.ToString());
                                                }
                                            }
                                            var suitLabel = string.Empty;
Main/System/OSActivity/OSActivityManager.cs
@@ -13,11 +13,14 @@
    public List<int> osHeroCallGiftSortList = new List<int>();    //开服招募礼包 充值ID + 100000000
    //开服榜对应的功能ID
    Dictionary<int, int> rankTypeToFuncID = new Dictionary<int, int>()
    {
        {3, 45},
        {4, 46},
    };
    public override void Init()
    {
@@ -38,6 +41,8 @@
    void BeforePlayerDataInitialize()
    {
        osGalaScore = 0; //当前积分 累计的;消耗的是货币55
        osGalaAwardState = 0; //按位记录是否领取
    }
    void ParseConfig()
@@ -60,6 +65,9 @@
            osHeroCallGiftSortList.Add(_list[i] + 100000000);
        }
        config = FuncConfigConfig.Get("OSACelebration");
        osGalaOpenDays = int.Parse(config.Numerical1);
        osGalaScoreAwards = ConfigParse.ParseIntArray2Dict(config.Numerical2);
    }
    // 开服排行活动是否开启
@@ -187,4 +195,32 @@
                break;
        }
    }
    #region 开服庆典
    //开服庆典
    public int osGalaOpenDays = 0; //持续天数
    public Dictionary<int, int[][]> osGalaScoreAwards = new Dictionary<int, int[][]>();  // 开服庆典积分奖励
    public int osGalaScore = 0; //当前积分 累计的;消耗的是货币55
    public int osGalaAwardState = 0; //按位记录是否领取
    public event Action OnOSGalaDataChangeEvent;
    public void UpdateOSGalaData(HAB05_tagSCOSACelebrationInfo netPack)
    {
        osGalaScore = (int)netPack.PointTotal;
        osGalaAwardState = (int)netPack.PointAward;
        OnOSGalaDataChangeEvent?.Invoke();
    }
    public bool IsOpenedOSGala()
    {
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OSGala))
        {
            return false;
        }
        //结束后延迟一天关闭展示
        return TimeUtility.OpenDay <= osGalaOpenDays;
    }
    #endregion
}
Main/System/OSActivity/OSRankHeroCallAwardCell.cs
@@ -16,7 +16,7 @@
        {
            rankImg.SetActive(true);
            rankText.SetActive(false);
            rankImg.SetSprite(StringUtility.Contact("Rank", index + 1));
            rankImg.SetSprite($"Rank{index + 1}");
        }
        else
        {
Main/System/OSActivity/OSRankMainLeveAwardCell.cs
@@ -16,7 +16,7 @@
        {
            rankImg.SetActive(true);
            rankText.SetActive(false);
            rankImg.SetSprite(StringUtility.Contact("Rank", index + 1));
            rankImg.SetSprite($"Rank{index + 1}");
        }
        else
        {
Main/System/OpenServerActivity/OperationTimeHepler.cs
@@ -853,7 +853,7 @@
            }
            else if (!operation.SatisfyOpenCondition())
            {
                SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("OperationLevelLimit_", type), operation.limitLv);
                SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("OperationLevelLimit_", type.ToString()), operation.limitLv);
            }
        }
        else
@@ -987,10 +987,10 @@
    {
        if (showYear)
        {
            return StringUtility.Contact(year, "/", month, "/", day);
            return $"{year}/{month}/{day}";
        }
        return $"{month}/{day}";
        return StringUtility.Contact(month, "/", day);
        //var yearString = StringUtility.Contact(year, Language.Get("Year"));
        //return StringUtility.Contact(showYear ? yearString : string.Empty, month, Language.Get("Month"), day, Language.Get("Day"));
@@ -1032,7 +1032,7 @@
    public override string ToString()
    {
        return StringUtility.Contact(startHour.ToString("D2"), ":", startMinute.ToString("D2"),
        return StringUtility.Concat(startHour.ToString("D2"), ":", startMinute.ToString("D2"),
            "-", endHour.ToString("D2"), ":", endMinute.ToString("D2"));
    }
Main/System/PhantasmPavilion/AvatarHelper.cs
@@ -79,6 +79,6 @@
    public static string GetAvatarBgColorStr(int faceID)
    {
        int bgColor = GetAvatarBgColor(faceID);
        return StringUtility.Contact("AvatarBgColor", bgColor);
        return StringUtility.Contact("AvatarBgColor", bgColor.ToString());
    }
}
Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs
@@ -148,6 +148,6 @@
    public string GetModelBgColorStr(int id)
    {
        int bgColor = GetModelBgColor(id);
        return StringUtility.Contact("ModelBgColor", bgColor);
        return StringUtility.Contact("ModelBgColor", bgColor.ToString());
    }
}
Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
@@ -225,8 +225,8 @@
    }
    string modelkey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Model_", PlayerDatas.Instance.PlayerId); } }
    string facekey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Face_", PlayerDatas.Instance.PlayerId); } }
    string modelkey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Model_", PlayerDatas.Instance.PlayerId.ToString()); } }
    string facekey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Face_", PlayerDatas.Instance.PlayerId.ToString()); } }
    public void SaveLocal()
    {
        LocalSave.SetIntArray(modelkey, newHeroIDModelList.ToArray());
Main/System/Redpoint/MainRedDot.cs
@@ -70,8 +70,10 @@
    //自动战斗
    public const int RedPoint_AutoBattleKey = 110;
    Redpoint autoBattleRedpoint = new Redpoint(RedPoint_AutoBattleKey);
    public const int RedPoint_OSMainLevel = 111;
    public const int RedPoint_OSMainLevel = 111;    //开服榜
    public const int RedPoint_OSHeroCard = 112;
    public const int RedPoint_OSGala = 113; //开服庆典
    public const int RedPoint_Download = 116;
    //武将卡
Main/System/Store/StoreModel.cs
@@ -557,7 +557,7 @@
        int state = GetShopIDState(shopID);
        if (state == 1 || state == 3)
        {
            SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("StoreTip", state));
            SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("StoreTip", state.ToString()));
            return false;
        }
        return true;
Main/System/TianziBillborad/TianziBillboradAwardCell.cs
@@ -23,7 +23,7 @@
        {
            imgRank.SetActive(true);
            txtRank.SetActive(false);
            imgRank.SetSprite(StringUtility.Contact("Rank", rank));
            imgRank.SetSprite(StringUtility.Contact("Rank", rank.ToString()));
            txtRank.text = rank.ToString();
        }
        else
Main/System/Tip/PowerAddWin.cs
@@ -269,7 +269,7 @@
    private string DisplayState(bool isAdd)
    {
        return StringUtility.Contact(isAdd ? "FightPointUP" : "FightPointDown");
        return StringUtility.Concat(isAdd ? "FightPointUP" : "FightPointDown");
    }
    private string DisplayBasePowerNum(long basePower)
Main/Utility/EnumHelper.cs
@@ -839,6 +839,7 @@
    LLMJ = 41,  //历练秘笈
    OSMainLevl = 45, //开服关卡榜活动
    OSHeroCall = 46, //开服武将召唤榜活动
    OSGala = 47, //开服盛典活动
    FunctionPreview = 48, //功能预览
}
Main/Utility/RunTimeABLoadLog.cs
@@ -12,14 +12,14 @@
    public static void AddLog(string _abName, string _asset, string _scene)
    {
        var log = StringUtility.Contact(_scene, "\t", _abName, "\t", _asset, "\t", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
        var log = StringUtility.Concat(_scene, "\t", _abName, "\t", _asset, "\t", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
        assetBundleLoadLogs.Add(log);
    }
    [MenuItem("程序/打印资源包加载日志")]
    public static void Print()
    {
        var tile = StringUtility.Contact("场景名", "\t", "资源包名", "\t", "资源名", "\t", "时间");
        var tile = StringUtility.Concat("场景名", "\t", "资源包名", "\t", "资源名", "\t", "时间");
        assetBundleLoadLogs.Insert(0, tile);
        File.WriteAllLines(Application.dataPath + "/RunTimeABLoadLog.txt", assetBundleLoadLogs.ToArray());
    }
Main/Utility/TimeUtility.cs
@@ -249,7 +249,7 @@
        int hours = _seconds / 3600;
        int mins = _seconds % 3600 / 60;
        int seconds = _seconds % 60;
        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
    }
@@ -264,15 +264,15 @@
        int seconds = _seconds % 60;
        if (hours > 0)
        {
            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
            return StringUtility.Concat(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
        }
        else if (mins > 0)
        {
            return StringUtility.Contact(mins, Language.Get("L1073"), seconds, Language.Get("L1075"));
            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
        }
        else
        {
            return StringUtility.Contact(seconds, Language.Get("L1075"));
            return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
        }
    }
@@ -294,7 +294,7 @@
        int hours = _seconds % 86400 / 3600;
        int mins = _seconds % 3600 / 60;
        int seconds = _seconds % 60;
        return StringUtility.Contact(days > 0 ? days.ToString() : string.Empty,
        return StringUtility.Concat(days > 0 ? days.ToString() : string.Empty,
            days > 0 ? Language.Get("L1074") + " " : string.Empty, hours > 0 ? hours.ToString() : string.Empty,
            hours > 0 ? ":" : string.Empty, mins >= 0 ? mins.ToString("D2") : string.Empty,
            mins >= 0 ? ":" : string.Empty, seconds >= 0 ? seconds.ToString("D2") : string.Empty,
@@ -311,19 +311,19 @@
        int days = _seconds / 86400;
        if (days > 0)
        {
            return StringUtility.Contact(days, Language.Get("L1074"));
            return StringUtility.Contact(days.ToString(), Language.Get("L1074"));
        }
        int hours = _seconds % 86400 / 3600;
        if (hours > 0)
        {
            return StringUtility.Contact(hours, Language.Get("Hour"));
            return StringUtility.Contact(hours.ToString(), Language.Get("Hour"));
        }
        int mins = Mathf.CeilToInt(_seconds % 3600 / 60.0f);
        if (mins > 0)
        {
            return StringUtility.Contact(mins, Language.Get("Minute"));
            return StringUtility.Contact(mins.ToString(), Language.Get("Minute"));
        }
        return StringUtility.Contact(1, Language.Get("Minute"));
        return StringUtility.Contact("1", Language.Get("Minute"));
    }
@@ -364,9 +364,9 @@
        int seconds = _seconds % 60;
        if (days > 0)
        {
            return StringUtility.Contact(days, Language.Get("L1074"), " ", hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), " ", hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
        }
        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
    }
    //极简显示
@@ -384,23 +384,23 @@
        {
            if (hours == 0)
            {
                return StringUtility.Contact(days, Language.Get("L1074"));
                return StringUtility.Contact(days.ToString(), Language.Get("L1074"));
            }
            return StringUtility.Contact(days, Language.Get("L1074"), hours, Language.Get("L1072"));
            return StringUtility.Contact(days.ToString(), Language.Get("L1074"), hours.ToString(), Language.Get("L1072"));
        }
        else if (hours > 0)
        {
            if (mins == 0)
            {
                return StringUtility.Contact(hours, Language.Get("L1072"));
                return StringUtility.Contact(hours.ToString(), Language.Get("L1072"));
            }
            return StringUtility.Contact(hours, Language.Get("L1072"), mins, Language.Get("L1073"));
            return StringUtility.Contact(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"));
        }
        else if (mins > 0)
        { 
            return StringUtility.Contact(mins, Language.Get("L1073"));
            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"));
        }
        return StringUtility.Contact(seconds, Language.Get("L1075"));
        return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
    }
@@ -416,9 +416,9 @@
        int seconds = _seconds % 60;
        if (days > 0)
        {
            return StringUtility.Contact(days, Language.Get("L1074"), hours.ToString("D2"), Language.Get("L1072"), mins.ToString("D2"), Language.Get("L1073"));
            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), hours.ToString("D2"), Language.Get("L1072"), mins.ToString("D2"), Language.Get("L1073"));
        }
        return StringUtility.Contact(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
        return StringUtility.Concat(hours.ToString("D2"), ":", mins.ToString("D2"), ":", seconds.ToString("D2"));
    }
@@ -435,19 +435,19 @@
        float seconds = (float)_seconds % 60;
        if (days >= 1)
        {
            return StringUtility.Contact(Mathf.CeilToInt(days), Language.Get("L1074"));
            return StringUtility.Contact(Mathf.CeilToInt(days).ToString(), Language.Get("L1074"));
        }
        else if (hours >= 1)
        {
            return StringUtility.Contact(Mathf.CeilToInt(hours), Language.Get("L1072"));
            return StringUtility.Contact(Mathf.CeilToInt(hours).ToString(), Language.Get("L1072"));
        }
        else if (mins >= 1)
        {
            return StringUtility.Contact(mins, Language.Get("L1073"));
            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"));
        }
        else
        {
            return StringUtility.Contact(seconds, Language.Get("L1075"));
            return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
        }
    }
Main/Utility/UIHelper.cs
@@ -40,7 +40,7 @@
            if (part != 0)
            {
                if (needZero)
                    result = StringUtility.Contact(numbers[0] + result);
                    result = StringUtility.Concat(numbers[0] + result);
                result = numbers[part] + (unitPlace == 1 ? "" : units[unitPlace - 2]) + result; // 单位只在十、百、千、万内部使用
                needZero = false;
@@ -129,20 +129,20 @@
            {
                if (attrName.Length == 2)
                {
                    suitStr = StringUtility.Contact(suitStr, attrName[i], "        ");
                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString(), "        ");
                }
                else if (attrName.Length == 3)
                {
                    suitStr = StringUtility.Contact(suitStr, attrName[i], "  ");
                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString(), "  ");
                }
                else
                {
                    suitStr = StringUtility.Contact(suitStr, attrName[i]);
                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString());
                }
            }
            else
            {
                suitStr = StringUtility.Contact(suitStr, attrName[i]);
                suitStr = StringUtility.Contact(suitStr, attrName[i].ToString());
            }
        }
        return suitStr;
@@ -728,17 +728,17 @@
        {
            case TextColType.None:
            case TextColType.White:
                return StringUtility.Contact("<color=#", bright ? "ffffff" : "ffffff", ">", msg, "</color>");
                return StringUtility.Concat("<color=#", bright ? "ffffff" : "ffffff", ">", msg, "</color>");
            case TextColType.titleSelectColor:
                return StringUtility.Contact("<color=#7F4139>", msg, "</color>");
            case TextColType.titleUnSelectColor:
                return StringUtility.Contact("<color=#6E5C60>", msg, "</color>");
            case TextColType.Red:
                return StringUtility.Contact("<color=#", bright ? "ea261e" : "ea261e", ">", msg, "</color>");
                return StringUtility.Concat("<color=#", bright ? "ea261e" : "ea261e", ">", msg, "</color>");
            case TextColType.Pink:
                return StringUtility.Contact("<color=#", bright ? "f6408d" : "ff7c7c", ">", msg, "</color>");
                return StringUtility.Concat("<color=#", bright ? "f6408d" : "ff7c7c", ">", msg, "</color>");
            case TextColType.Green:
                return StringUtility.Contact("<color=#", bright ? "248B12" : "2ae337", ">", msg, "</color>");
                return StringUtility.Concat("<color=#", bright ? "248B12" : "2ae337", ">", msg, "</color>");
            case TextColType.NavyBrown:
                return StringUtility.Contact("<color=#6e4c31>", msg, "</color>");
            case TextColType.DarkGreen:
@@ -796,7 +796,7 @@
    public static string AppendColor(Color color, string msg)
    {
        return StringUtility.Contact("<color=#", ColorToHexWithHash(color), ">", msg, "</color>");
        return StringUtility.Concat("<color=#", ColorToHexWithHash(color), ">", msg, "</color>");
    }
Main/Utility/UIParamCopyTool.cs
@@ -244,8 +244,8 @@
            GUILayout.BeginHorizontal();
            var _copyTarget = _target.copyTargets[i];
            _copyTarget.ok = EditorGUILayout.Toggle("是否替换", _copyTarget.ok, GUILayout.Width(40));
            EditorGUILayout.LabelField(StringUtility.Contact("Image", _copyTarget.images.Count));
            EditorGUILayout.LabelField(StringUtility.Contact("Text", _copyTarget.texts.Count));
            EditorGUILayout.LabelField(StringUtility.Contact("Image", _copyTarget.images.Count.ToString()));
            EditorGUILayout.LabelField(StringUtility.Contact("Text", _copyTarget.texts.Count.ToString()));
            GUILayout.EndHorizontal();
        }
        GUILayout.EndScrollView();