hch
17 小时以前 acab2a61380638fd374ad2d0a5d4caff84aa7cdc
Main/System/NewBieGuidance/NewBieCenter.cs
@@ -25,7 +25,7 @@
    public bool inGuiding
    {
        // 当前有引导,并且不是暂停状态,则在引导中
        get { return currentGuide != 0 && IsNeedRecord(currentGuide); }
        get { return currentGuide != 0 && IsPauseMainBattle(currentGuide); }
    }
    List<int> allGuides = new List<int>();
@@ -203,10 +203,11 @@
            return false;
        }
        if (currentGuide != 0 && GuideConfig.Get(currentGuide).NoRecord == 0)
        int curPriority = -1;
        var curGuide = GuideConfig.Get(currentGuide);
        if (curGuide != null)
        {
            // 可重复触发的引导属于低优先级 会被新引导替换
            return false;
            curPriority = curGuide.Priority;
        }
        for (int i = 0; i < _guides.Count; i++)
@@ -216,7 +217,7 @@
            {
                continue;
            }
            var config = GuideConfig.Get(guideId);
            if (config.PreGuideId != 0 && !completeGuidesBuf.Contains(config.PreGuideId))
            {
@@ -224,8 +225,15 @@
                continue;
            }
            if (config.Priority <= curPriority)
            {
                // 高优先级才可以打断低的
                continue;
            }
            if (currentGuide != guideId && CheckGuideCondition(guideId, isOrgTrigger))
            {
                return StartNewBieGuide(guideId);
            }
        }
@@ -234,11 +242,13 @@
    }
    bool WaitGuide(int _id)
    bool WaitGuide(GuideConfig config)
    {
        var config = GuideConfig.Get(_id);
        //要引导的界面上有其他界面盖住,加入队列等待其他界面关闭的时候再触发该界面引导
        if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName))
        // 或者等待拾取装备后再引导
        if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName) ||
            (config.PauseMainBattle == 1 && PackManager.Instance.GetItems(PackType.DropItem).Count > 0
            && config.WinName != "EquipExchangeWin"))
        {
            //如果子界面是必须挂在该界面上切且没有蒙版盖住的可以增加判断
            if (!waitGuideWinNames.Contains(config.WinName))
@@ -269,7 +279,7 @@
            return false;
        }
        if (WaitGuide(_id))
        if (WaitGuide(config))
        {
            return false;
        }
@@ -313,6 +323,16 @@
    }
    public bool IsPauseMainBattle(int _id)
    {
        var config = GuideConfig.Get(_id);
        if (config == null)
        {
            return false;
        }
        return GuideConfig.Get(_id).PauseMainBattle == 1;
    }
    //非0代表 可重复引导,且优先级低会被新引导替换,且不暂停主线战斗
    public bool IsNeedRecord(int _id)
    {