yyl
22 小时以前 e2d4f9314a5097f961250b5e06b66660dc247312
Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
23个文件已修改
286 ■■■■ 已修改文件
Main/Component/UI/Core/GradientText.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Effect/EffectPlayer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Effect/EllipseMask.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Main.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/ResModule/ResManager.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Arena/ArenaBattleFailWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/BattleField.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/BattleObject.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/BattlePass/BattlePassCommonCell.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/BattlePass/BattlePassCommonWin.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FirstCharge/FirstChargeManager.cs 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroBestWin.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.OnTeam.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/ItemTip/OwnMoneyCell.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/HomeWin.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/MainLevel/MainBossEnterWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieCenter.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Settlement/BattleFailWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Settlement/BoneBattleFailWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TianziBillborad/TianziBillboradManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/UIHelper.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Core/GradientText.cs
@@ -5,7 +5,7 @@
/// <summary>
/// 支持渐变效果的文本组件
/// </summary>
public class GradientText : Text
public class GradientText : RichText
{
    [Header("渐变设置")]
    [SerializeField]
Main/Component/UI/Effect/EffectPlayer.cs
@@ -260,8 +260,8 @@
        {
            //LoadAsset 已经有缓存SkeletonDataAsset
            spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
            //为true时会有部分特效不显示 如主界面装备特效;改成伽马后不会出现BUG故注释代码
            // spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;
            //为true时会有部分特效不显示 如满级经验条;改成伽马后部分特效正常,还有部分依然要改此设置
            spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;
            spineComp.raycastTarget = false;
            spineComp.Initialize(true);
            spineComp.timeScale = speedRate;
Main/Component/UI/Effect/EllipseMask.cs
@@ -154,7 +154,7 @@
    {
        if (m_MaskMaterial == null)
        {
            Shader ellipseShader = Shader.Find("GUI/EllipseMask");
            Shader ellipseShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMask");
            if (ellipseShader != null)
            {
                m_MaskMaterial = new Material(ellipseShader);
@@ -237,7 +237,8 @@
    {
        if (graphic.material == null || !graphic.material.shader.name.Contains("EllipseMaskedContent"))
        {
            Shader maskedShader = Shader.Find("GUI/EllipseMaskedContent");
            // Shader maskedShader = Shader.Find("GUI/EllipseMaskedContent");
            Shader maskedShader = ResManager.Instance.LoadAsset<Shader>("Shader", "GUI_EllipseMaskedContent");
            if (maskedShader != null)
            {
                Material maskedMaterial = new Material(maskedShader);
Main/Main.cs
@@ -113,6 +113,8 @@
        //  前面有重新InitManagers了 这里就不在做清除
        // ReleaseMgrs();
        ClearGameData();
        //销毁所有战场
        BattleManager.Instance.DestroyAllBattleField();
    }
    private static void ReleaseMgrs()
Main/ResModule/ResManager.cs
@@ -70,7 +70,7 @@
        {typeof(Sprite), "png"},
        {typeof(Texture2D), "jpg"},
        {typeof(Texture), "jpg"},
        { typeof(Shader), "shader"},
        {typeof(Shader), "shader"},
        {typeof(TextAsset), "txt"},
        {typeof(AudioClip), "wav"},
        {typeof(Font), "ttf"},
@@ -167,7 +167,7 @@
                //外部用到的自己加后缀,内部统一去除后缀名
                name = name.Substring(0, name.LastIndexOf("."));
            }
            //TODO: 临时特殊处理打包后的路径读取
            if (directory == "UI" || directory == "UIComp" || directory.StartsWith("Sprite")
            || directory == "Battle/Prefabs" || directory == "Materials")
            {
@@ -182,6 +182,10 @@
            {
                directory = "maps/" + name;
            }
            else if (directory.Contains("Shader"))
            {
                directory = "graphic/shader";
            }
            var assetInfo = new AssetInfo(directory.ToLower(), name.ToLower());
Main/System/Arena/ArenaBattleFailWin.cs
@@ -32,6 +32,10 @@
        }
        Display();
        CreateScroller();
        if (!FirstChargeManager.Instance.GetLocalFail())
        {
            FirstChargeManager.Instance.SetLocalFail();
        }
        FirstChargeManager.Instance.TryPopWin("ArenaBattleFailWin");
    }
Main/System/Battle/BattleField/BattleField.cs
@@ -534,9 +534,21 @@
        recordPlayer.HaveRest();
        battleObjMgr.HaveRest(BattleCamp.Red);
        battleObjMgr.DestroyTeam(BattleCamp.Blue);
        SetBattleStartState();
        SetBattleMode(BattleMode.Stop);
    }
    //清场敌方但不终止战斗,用于切换主线BOSS战斗后,正常显示敌方
    public virtual void CleanBattle()
    {
        battleEffectMgr.HaveRest();
        battleTweenMgr.HaveRest();
        recordPlayer.HaveRest();
        battleObjMgr.HaveRest(BattleCamp.Blue);
        battleObjMgr.DestroyTeam(BattleCamp.Blue);
        SetBattleStartState();
    }
    public bool IsBattleEnd()
    {
        return IsBattleFinish;
Main/System/Battle/BattleManager.cs
@@ -659,4 +659,16 @@
        }
        return null;
    }
    public void DestroyAllBattleField()
    {
        foreach (var kvp in battleFields)
        {
            BattleField battleField = kvp.Value;
            if (battleField == null)
                continue;
            DestroyBattleField(battleField);
        }
    }
}
Main/System/Battle/BattleObject/BattleObject.cs
@@ -101,8 +101,15 @@
        var heroInfoBarScale = heroInfoBar.transform.localScale;
        heroInfoBarScale.x *= Camp == BattleCamp.Red ? 1 : -1;
        heroInfoBar.transform.localScale = heroInfoBarScale;
        heroInfoBar.SetActive(true);
        if (battleField is StoryBattleField && (battleField as StoryBattleField).battleState == StoryBattleState.Break)
        {
            //主线关卡休息中的不显示血条
            heroInfoBar.SetActive(false);
        }
        else
        {
            heroInfoBar.SetActive(true);
        }
        SetFront();
    }
Main/System/BattlePass/BattlePassCommonCell.cs
@@ -69,15 +69,23 @@
        var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, 1);
        for (int i = 0; i < betterAwards.Length; i++)
        {
            int itemID = config.ZLRewardItemList[i][0];
            betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1]));
            betterAwards[i].button.AddListener(() =>
            if (i < config.ZLRewardItemList.Length)
            {
                GetAward(battlePassData, betterAwardState, itemID);
            });
            betterGotRects[i].SetActive(betterAwardState == 2);
            betterCanGetAwardRects[i].SetActive(betterAwardState == 1);
            betterLockRects[i].SetActive(battlePassData.isActivite == 0);
                betterAwards[i].SetActive(true);
                int itemID = config.ZLRewardItemList[i][0];
                betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1]));
                betterAwards[i].button.AddListener(() =>
                {
                    GetAward(battlePassData, betterAwardState, itemID);
                });
                betterGotRects[i].SetActive(betterAwardState == 2);
                betterCanGetAwardRects[i].SetActive(betterAwardState == 1);
                betterLockRects[i].SetActive(battlePassData.isActivite == 0);
            }
            else
            {
                betterAwards[i].SetActive(false);
            }
        }
    }
Main/System/BattlePass/BattlePassCommonWin.cs
@@ -81,12 +81,7 @@
        var ctgID = BattlePassManager.Instance.GetCTGIDByType(battlePasstype);
        var config = CTGConfig.Get(ctgID);
        welfarePerText.text = config.Percentage + "%";
        if (!config.GainItemList.IsNullOrEmpty() && config.GainItemList.Length >= 2)
        {
            //约定第二个物品
            itemNameText.text = Language.Get("BattlePass8", config.GainItemList[1][1], ItemConfig.Get(config.GainItemList[1][0]).ItemName);
        }
        itemNameText.text = Language.Get("BattlePassAD" + battlePasstype);
        tabNameText.text = Language.Get("BattlePassTab" + battlePasstype);
        titleText.text = Language.Get("BattlePassTitle" + battlePasstype);
    }
@@ -99,6 +94,7 @@
        lockRect.SetActive(battlePassData.isActivite == 0);
        scroller.m_Scorller.RefreshActiveCellViews();
        var _rect = scroller.GetComponent<RectTransform>();
        if (battlePassData.isActivite == 0)
        {
            rechargeRect.SetActive(true);
@@ -114,11 +110,15 @@
            {
                ItemTipUtility.Show(itemID);
            });
            _rect.sizeDelta = new Vector2(_rect.rect.width, 630);
        }
        else
        {
            rechargeRect.SetActive(false);
            _rect.sizeDelta = new Vector2(_rect.rect.width, 757);
        }
    }
    void ShowTotalValueStr()
Main/System/FirstCharge/FirstChargeManager.cs
@@ -4,7 +4,8 @@
public class FirstChargeManager : GameSystemManager<FirstChargeManager>
{
    public const int FuncID = 21;
    public int taskID;
    public int nextTaskID;
    public int mainItemId { get { return GetMainItemId(); } }
    public int heroItemID;
    public int maxGiftCount
@@ -27,7 +28,7 @@
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        TaskManager.Instance.OnTaskUpdate += OnTaskUpdate;
        InitClickTabDict();
        InitRedPoint();
    }
@@ -37,21 +38,28 @@
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
        RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
        TaskManager.Instance.OnTaskUpdate -= OnTaskUpdate;
    }
    private void OnFuncStateChangeEvent(int obj)
    public event Action OnFirstChargeTaskUpdateEvent;
    int beforeMainID;
    private void OnTaskUpdate()
    {
        if (FuncID == obj)
        int currentTaskID = TaskManager.Instance.mainTask.TaskID;
        if (beforeMainID == taskID && currentTaskID == nextTaskID)
        {
            string key = $"FirstCharge_FirstTime_{FuncID}_{PlayerDatas.Instance.baseData.PlayerID}";
            string key = $"FirstCharge_FirstTime_{taskID}_{PlayerDatas.Instance.baseData.PlayerID}";
            if (!LocalSave.HasKey(key))
            {
                // 第一次开启功能
                // 第一次完成任务
                LocalSave.SetBool(key, true);
                PopupWindowsProcessor.Instance.Add("FirstChargeWin");
                OnFirstChargeTaskUpdateEvent?.Invoke();
            }
        }
        beforeMainID = currentTaskID;
    }
    public void InitClickTabDict()
@@ -108,11 +116,15 @@
    public void OnBeforePlayerDataInitializeEvent()
    {
        firstChargeInfoDict.Clear();
        FuncConfigConfig config = FuncConfigConfig.Get("FirstCharge");
        taskID = int.Parse(config.Numerical1);
        nextTaskID = int.Parse(config.Numerical2);
    }
    public void OnPlayerLoginOk()
    {
        if (FuncOpen.Instance.IsFuncOpen(FuncID) && TryGetUnBuyFirstId(out int firstId))
        if (IsFuncOpen() && TryGetUnBuyFirstId(out int firstId))
        {
            PopupWindowsProcessor.Instance.Add("FirstChargeWin");
        }
@@ -130,6 +142,8 @@
            return;
        if (battleName == "TianziBillboradBattleField")
            return;
        if (!IsFuncOpen())
            return;
        if (!TryGetUnBuyFirstId(out int firstId))
            return;
        if (!UIManager.Instance.IsOpened<FirstChargeWin>())
@@ -138,6 +152,52 @@
        }
    }
    public string loaclKey = "FirstCharge_Fail_";
    public bool GetLocalFail()
    {
        return LocalSave.GetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId));
    }
    public void SetLocalFail()
    {
        LocalSave.SetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId), true);
    }
    public bool IsFuncOpen()
    {
        if (IsBuyOne())
            return true;
        if (TaskConfig.HasKey(taskID) &&
        TaskManager.Instance.mainTask != null &&
       TaskConfig.HasKey(TaskManager.Instance.mainTask.TaskID) &&
       TaskManager.Instance.GetNeedFinishTaskCount(taskID) <= 0)
            return true;
        bool isLocalFail = GetLocalFail();
        return isLocalFail;
    }
    //  有一档被购买就返回true
    public bool IsBuyOne()
    {
        var firstChargeList = FirstChargeConfig.GetKeys();
        if (firstChargeList != null)
        {
            firstChargeList.Sort();
            foreach (int item in firstChargeList)
            {
                if (TryGetFirstChargeDataByFirstId(item, out FirstChargeData data))
                {
                    if (data.IsUnlock() && data.IsBuy())
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }
    public bool TryGetUnBuyFirstId(out int firstId)
    {
        firstId = 0;
Main/System/HeroUI/HeroBestWin.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
@@ -159,8 +160,31 @@
        RefreshFetter();
        RefreshGift();
        RefreshAwake();
        ForceRefreshLayout();
    }
    /// <summary>
    /// 强制刷新Layout,解决嵌套Layout和ContentSizeFitter的重叠问题
    /// </summary>
    async UniTask ForceRefreshLayout()
    {
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        var layouts = allAttrScroll.GetComponentsInChildren<LayoutGroup>(true);
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
    }
    void RefreshConn()
@@ -255,8 +279,10 @@
            foldImg.SetActive(true);
            unfoldImg.SetActive(false);
            attrPanel.localPosition = foldPos.localPosition;
            //禁止attrScroll滚动
            allAttrScroll.enabled = false;
            // //禁止attrScroll滚动
            // allAttrScroll.enabled = false;
            var _rect = allAttrScroll.GetComponent<RectTransform>();
            _rect.sizeDelta = new Vector2(_rect.rect.width, 197);
        }
        else
@@ -264,7 +290,9 @@
            foldImg.SetActive(false);
            unfoldImg.SetActive(true);
            attrPanel.localPosition = unfoldPos.localPosition;
            allAttrScroll.enabled = true;
            // allAttrScroll.enabled = true;
            var _rect = allAttrScroll.GetComponent<RectTransform>();
            _rect.sizeDelta = new Vector2(_rect.rect.width, 933);
        }
    }
Main/System/HeroUI/HeroUIManager.OnTeam.cs
@@ -297,9 +297,11 @@
        //推荐最多6个,存在相同heroid,则跳过
        List<string> selectHeroList = new List<string>();
        List<int> selectHeroIDList = new List<int>();
        int maxCnt = TeamConst.MaxTeamHeroCount - lockIndexList.Count;
        for (int i = 0; i < tmpList.Count; i++)
        {
            if (selectHeroList.Count >= TeamConst.MaxTeamHeroCount)
            if (selectHeroList.Count >= maxCnt)
                break;
            string guid = tmpList[i];
Main/System/ItemTip/OwnMoneyCell.cs
@@ -64,7 +64,14 @@
            // Debug.LogError("moneyType == 0");
            return;
        }
        numText.text = UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(moneyType));
        double count = UIHelper.GetMoneyCnt(moneyType);
        int decimalPlaces = 1;
        if (moneyType == 99)
        {
            count = count / 100.0;
            decimalPlaces = 2;
        }
        numText.text = UIHelper.ReplaceLargeNum(count, decimalPlaces);
        if (resetIcon)
        { 
            moneyIcon.SetIconWithMoneyType(moneyType);
Main/System/Main/HomeWin.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
@@ -13,6 +14,8 @@
    //经验区
    [SerializeField] Text playerLevelText;
    [SerializeField] SmoothSlider expSlider;
    [SerializeField] UIEffectPlayer fullEffect;
    [SerializeField] UIEffectPlayer headEffect;
    [SerializeField] Button officialUpBtn;
    [SerializeField] Transform officialTip;
@@ -150,6 +153,8 @@
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
        FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent += OnFirstChargeTaskUpdateEvent;
        OfficialRankManager.Instance.RealmMissionRefreshEvent += OnOfficialCanLVUpEvent;
        Display();
        DisplayFirstChargeBtn();
@@ -173,7 +178,8 @@
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
        FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent -= OnFirstChargeTaskUpdateEvent;
        OfficialRankManager.Instance.RealmMissionRefreshEvent -= OnOfficialCanLVUpEvent;
        //  关闭的时候把战斗界面也给关了 虽然是在外面开的
        UIManager.Instance.CloseWindow<BattleWin>();
    }
@@ -211,6 +217,8 @@
                {
                    lastLV = PlayerDatas.Instance.baseData.LV;
                    lvUPEffect.Play();
                    fullEffect.Play(closePMA: true);
                    headEffect.Stop();
                }
                playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
                break;
@@ -260,15 +268,21 @@
    private void UpdatePlayerInfo()
    {
        playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
        ShowExp();
        headEffect.transform.localPosition = new Vector3(400 * expSlider.value - 200 - 24, 0, 0);
        ShowExp(false);
    }
    void ShowExp()
    void ShowExp(bool showEffect = true)
    {
        var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
        expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP;
        expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP;
        if (showEffect)
        {
            headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f);
            headEffect.Play(closePMA:true);
        }
    }
@@ -313,6 +327,7 @@
            getReward.RewardType = 66;
            getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
            GameNetSystem.Instance.SendInfo(getReward);
            return;
        }
        
        TaskManager.Instance.ClickTask();
@@ -428,7 +443,7 @@
    private void DisplayFirstChargeBtn()
    {
        bool isFirstChargeFuncOpen = FuncOpen.Instance.IsFuncOpen(FirstChargeManager.FuncID);
        bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
        if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
        FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
        {
@@ -438,16 +453,16 @@
        {
            FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
        }
    }
    private void OnFirstChargeTaskUpdateEvent()
    {
        DisplayFirstChargeBtn();
    }
    private void OnFuncStateChange(int funcId)
    {
        if (funcId == FirstChargeManager.FuncID)
        {
            DisplayFirstChargeBtn();
        }
        else if (funcId == GeneralDefine.mainRightFuncOpenFuncID)
        if (funcId == GeneralDefine.mainRightFuncOpenFuncID)
        {
            funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
        }
Main/System/MainLevel/MainBossEnterWin.cs
@@ -137,6 +137,7 @@
        if (MainLevelManager.Instance.CanChallengeBoss())
        {
            BattleManager.Instance.SendTurnFight(2);
            BattleManager.Instance.storyBattleField.CleanBattle();
            AutoFightModel.Instance.isPause = true;
        }
        CloseWindow();
Main/System/NewBieGuidance/NewBieCenter.cs
@@ -95,6 +95,15 @@
                }
            }
        }
        if (_ui.name == "StoryBossBattleWin")
        {
            var guides = GuideConfig.GetGuideListByType((int)GuideTriggerType.PassMainBoss);
            if (guides != null)
            {
                TryStartNewBieGuides(guides, true);
            }
        }
    }
    void OnTaskUpdateEvent()
@@ -470,6 +479,8 @@
                    return TaskManager.Instance.GetMainTaskType() == config.Condition && TaskManager.Instance.GetMainTaskState() != 2;
                }
                return false;
            case GuideTriggerType.PassMainBoss:
                return PlayerDatas.Instance.baseData.ExAttr1/100 >= config.Condition;
            default:
                return false;
        }
@@ -550,5 +561,6 @@
    OpenWindow = 5,     //打开界面的时机 如装备替换界面
    Level = 6,      //等级满足条件
    Realm = 7,  //官职所有任务完成时触发引导,如6升7,6的任务全部完成,配置6
    PassMainBoss = 8, //通关主线BOSS,在关闭界面StoryBossBattleWin时触发,触发条件为通关后的关卡如201
}
Main/System/NewBieGuidance/NewBieWin.cs
@@ -111,6 +111,9 @@
            CloseWindow();
            return;
        }
        Debug.Log($"引导ID:{NewBieCenter.Instance.currentGuide} 引导步骤:{step}");
        lastShowTime = Time.time;
        if (config.WinName != "EquipExchangeWin" && UIManager.Instance.IsOpened<EquipExchangeWin>())
Main/System/Settlement/BattleFailWin.cs
@@ -28,6 +28,10 @@
    protected override void OnPreOpen()
    {
        if (!FirstChargeManager.Instance.GetLocalFail())
        {
            FirstChargeManager.Instance.SetLocalFail();
        }
        FirstChargeManager.Instance.TryPopWin("BattleFailWin");
    }
Main/System/Settlement/BoneBattleFailWin.cs
@@ -30,6 +30,10 @@
    {
        int funcId = BoneFieldManager.Instance.funcId;
        txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
        if (!FirstChargeManager.Instance.GetLocalFail())
        {
            FirstChargeManager.Instance.SetLocalFail();
        }
        FirstChargeManager.Instance.TryPopWin("BoneBattleFailWin");
    }
Main/System/TianziBillborad/TianziBillboradManager.cs
@@ -349,7 +349,7 @@
            for (int i = 0; i < jsonData["itemInfo"].Count; i++)
            {
                JsonData itemData = jsonData["itemInfo"][i];
                Item itemInfo = new Item((int)itemData["ItemID"], (long)itemData["ItemID"]);
                Item itemInfo = new Item((int)itemData["ItemID"], (long)itemData["Count"]);
                itemInfos.Add(itemInfo);
            }
        }
Main/Utility/UIHelper.cs
@@ -226,7 +226,7 @@
    /// 大数值转化 格式 最多两个小数 ,向下取整
    /// K -千,M -百萬,B-十億,T -萬億
    /// </summary>
    public static string ReplaceLargeNum(double num)
    public static string ReplaceLargeNum(double num, int decimalPlaces = 1)
    {
        const long K = 10000;    //国内为万,海外为千
        const long M = K * 10000;
@@ -243,15 +243,15 @@
        }
        else if (num >= M)
        {
            return StringUtility.Contact(FormatWithoutRounding(num / M, 1), Language.Get("L1070"));
            return StringUtility.Contact(FormatWithoutRounding(num / M, decimalPlaces), Language.Get("L1070"));
        }
        else if (num >= K)
        {
            return StringUtility.Contact(FormatWithoutRounding(num / K, 1), Language.Get("L1071"));
            return StringUtility.Contact(FormatWithoutRounding(num / K, decimalPlaces), Language.Get("L1071"));
        }
        else
        {
            return FormatWithoutRounding(num, 1);
            return FormatWithoutRounding(num, decimalPlaces);
        }
    }