zhaoyang 2 жил өмнө
parent
commit
a2ce444d74

+ 14 - 2
GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs

@@ -72,7 +72,8 @@ namespace GFGGame
 
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
             if (cfg == null || GuideDataManager.currentGuideId != 0 && GuideDataManager.currentGuideId != cfg.id) return false;
-            if (guideKey == ConstGuideId.ARENA_OPEN && (InstanceZonesDataManager.CheckLevelPass(cfg.storyLevelId) || ArenaDataManager.Instance.IsArenaClearing))
+            bool isPass = InstanceZonesDataManager.CheckLevelPass(cfg.storyLevelId);
+            if (guideKey == ConstGuideId.ARENA_OPEN && (isPass || ArenaDataManager.Instance.IsArenaClearing))
             {
                 return false;//竞技场结算中或已通关指定开启关卡,不引导
             }
@@ -86,6 +87,12 @@ namespace GFGGame
             bool isCfgChapterOpen = MainStoryDataManager.CheckLevelUnlock(cfg.storyLevelId, false);//引导配置关卡已开启
             bool isCfgChapter = MainStoryDataManager.currentLevelCfgId == 0 || MainStoryDataManager.currentLevelCfgId == cfg.storyLevelId;//无选择(进入游戏时无选择)或当前所选择为配置关卡
 
+            if (isStoryLevelGuide && isPass && !isFinishCurId)
+            {
+                GuideDataManager.currentGuideId = cfg.id;
+                TryCompleteGuide(guideKey);
+                return false;
+            }
             bool isRoleLvGuide = cfg.roleLv > 0;
             bool iscurRoleLv = RoleDataManager.lvl >= cfg.roleLv;
 
@@ -177,8 +184,13 @@ namespace GFGGame
             bool result = false;
             if (cfg == null) return;
             if (!GuideDataManager.CheckAllIndexFinish(cfg.id, count)) return;
+            TryCompleteGuide(guideKey);
 
-            result = await GuideDataManager.TryCompleteGuide(cfg.id);
+        }
+        private static async void TryCompleteGuide(string guideKey)
+        {
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+            bool result = await GuideDataManager.TryCompleteGuide(cfg.id);
             if (result)
             {
                 if (targetList != null && targetList.scrollPane != null)

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs

@@ -57,6 +57,7 @@ namespace GFGGame
                 subType = (int)(this.viewData as object[])[0];
             }
             _ui.m_listType.selectedIndex = subType;
+            _ui.m_listChapter.touchable = false;
             UpdateList();
             Timers.inst.AddUpdate(CheckGuide);
         }
@@ -197,6 +198,7 @@ namespace GFGGame
             {
                 Timers.inst.Remove(CheckGuide);
             }
+            _ui.m_listChapter.touchable = true;
         }
 
         protected override void UpdateToCheckGuide(object param)