XFunctionalSkipManagerCreator = function() local XFunctionalSkipManager = {} local DormDrawGroudId = CS.XGame.ClientConfig:GetInt("DormDrawGroudId") -- 跳转打开界面选择标签页类型6 function XFunctionalSkipManager.SkipSystemWidthArgs(skipDatas) if not skipDatas then return end local param1 = (skipDatas.CustomParams[1] ~= 0) and skipDatas.CustomParams[1] or nil local param2 = (skipDatas.CustomParams[2] ~= 0) and skipDatas.CustomParams[2] or nil local param3 = (skipDatas.CustomParams[3] ~= 0) and skipDatas.CustomParams[3] or nil if skipDatas.UiName == "UiTask" and XLuaUiManager.IsUiShow("UiTask") then XEventManager.DispatchEvent(XEventId.EVENT_TASK_TAB_CHANGE, param1) elseif skipDatas.UiName == "UiActivityBriefBase" and XLuaUiManager.IsUiShow("UiActivityBriefBase") then XEventManager.DispatchEvent(XEventId.EVENT_BRIEF_CHANGE_TAB, param1) elseif skipDatas.UiName == "UiPuzzleActivity" then XDataCenter.FubenActivityPuzzleManager.OpenPuzzleGame(param1) else XLuaUiManager.Open(skipDatas.UiName, param1, param2, param3) end end -- 跳转副本类型7 function XFunctionalSkipManager.SkipCustom(skipDatas) if not skipDatas then return end if XFunctionalSkipManager[skipDatas.UiName] then XFunctionalSkipManager[skipDatas.UiName](skipDatas) end end -- 跳转宿舍类型8 function XFunctionalSkipManager.SkipDormitory(skipDatas) if not skipDatas or not XPlayer.Id then return end if XFunctionalSkipManager[skipDatas.UiName] then XFunctionalSkipManager[skipDatas.UiName](skipDatas) end end -- 前往宿舍房间 function XFunctionalSkipManager.SkipDormRoom(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil -- 该房间未激活 if (param1 == nil) or (not XDataCenter.DormManager.IsDormitoryActive(param1)) then if not XHomeDormManager.InDormScene() then XHomeDormManager.EnterDorm(XPlayer.Id, nil, false) end return end -- 房间已激活 if XHomeDormManager.InDormScene() then if XLuaUiManager.IsUiShow("UiDormTask") then XLuaUiManager.Close("UiDormTask") end if not XHomeDormManager.IsInRoom(param1) then if not XLuaUiManager.IsUiShow("UiDormSecond") then XLuaUiManager.Open("UiDormSecond", XDormConfig.VisitDisplaySetType.MySelf, param1) else XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP, param1) end XHomeDormManager.SetSelectedRoom(param1, true) end else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() if not XLuaUiManager.IsUiShow("UiDormSecond") then XLuaUiManager.Open("UiDormSecond", XDormConfig.VisitDisplaySetType.MySelf, param1) else XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP, param1) end XHomeDormManager.SetSelectedRoom(param1, true) end) end end -- 前往宿舍主界面 function XFunctionalSkipManager.SkipDormMain() if XLuaUiManager.IsUiLoad("UiDormTask") then XLuaUiManager.Remove("UiDormTask") end if not XHomeDormManager.InDormScene() then XHomeDormManager.EnterDorm(XPlayer.Id, nil, false) elseif XHomeDormManager.InAnyRoom() then local roomId = XHomeDormManager.GetCurrentRoomId() if roomId then XHomeDormManager.SetSelectedRoom(roomId, false) if XLuaUiManager.IsUiLoad("UiDormSecond") then XLuaUiManager.Remove("UiDormSecond") end end end XLuaUiManager:ShowTopUi() end -- 前往宿舍访问 function XFunctionalSkipManager.SkipDormVisit(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 if XHomeDormManager.InDormScene() then XLuaUiManager.Open("UiDormVisit", nil, param1) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiDormVisit", nil, param1) end) end end -- 前往宿舍任务 function XFunctionalSkipManager.SkipDormTask(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 if XHomeDormManager.InDormScene() then XLuaUiManager.Open("UiDormTask", param1) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiDormTask", param1) end) end end -- 前往宿舍仓库界面 function XFunctionalSkipManager.SkipDormWarehouse(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 if XHomeDormManager.InDormScene() then XLuaUiManager.Open("UiDormBag", param1) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiDormBag", param1) end) end end -- 前往宿舍成员界面 function XFunctionalSkipManager.SkipDormMember() if XHomeDormManager.InDormScene() then XLuaUiManager.Open("UiDormPerson") else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiDormPerson") end) end end -- 前往宿舍打工界面 function XFunctionalSkipManager.SkipDormWork() if XHomeDormManager.InDormScene() then if not XLuaUiManager.IsUiShow("UiDormWork") then XLuaUiManager.Open("UiDormWork") else XEventManager.DispatchEvent(XEventId.EVENT_DORM_SKIP) end else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiDormWork") end) end end -- 前往宿舍商店界面 function XFunctionalSkipManager.SkipDormShop(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] if XHomeDormManager.InDormScene() then if XLuaUiManager.IsUiShow("UiShop") then return end XLuaUiManager.Open("UiShop", XShopManager.ShopType.Dorm, nil, param1) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() if XLuaUiManager.IsUiShow("UiShop") then return end XLuaUiManager.Open("UiShop", XShopManager.ShopType.Dorm, nil, param1) end) end end -- 前往宿舍研发界面 function XFunctionalSkipManager.SkipDormDraw() if XHomeDormManager.InDormScene() then XDataCenter.DrawManager.GetDrawGroupList( function() local info = XDataCenter.DrawManager.GetDrawGroupInfoByGroupId(DormDrawGroudId) if not info then return end XDataCenter.DrawManager.GetDrawInfoList(DormDrawGroudId, function() XLuaUiManager.Open("UiDraw", DormDrawGroudId, function() XHomeSceneManager.ResetToCurrentGlobalIllumination() end, info.UiBackGround) end) end ) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XDataCenter.DrawManager.GetDrawGroupList( function() local info = XDataCenter.DrawManager.GetDrawGroupInfoByGroupId(DormDrawGroudId) if not info then return end XDataCenter.DrawManager.GetDrawInfoList(DormDrawGroudId, function() XLuaUiManager.Open("UiDraw", DormDrawGroudId, function() XHomeSceneManager.ResetToCurrentGlobalIllumination() end, info.UiBackGround) end) end ) end) end end -- 前往宿舍建造界面 function XFunctionalSkipManager.SkipDormFurnitureBuild(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 if XHomeDormManager.InDormScene() then XLuaUiManager.Open("UiFurnitureBuild", param1) else XHomeDormManager.EnterDorm(XPlayer.Id, nil, false, function() XLuaUiManager.Open("UiFurnitureBuild", param1) end) end end -- 前往巴别塔 function XFunctionalSkipManager.OnOpenBabelTower() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.BabelTower) then return end local currentActivityNo = XDataCenter.FubenBabelTowerManager.GetCurrentActivityNo() if not currentActivityNo or not XDataCenter.FubenBabelTowerManager.IsInActivityTime(currentActivityNo) then XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime")) return end XDataCenter.FubenBabelTowerManager.OpenBabelTowerCheckStory() end -- 前往新角色教学活动 function XFunctionalSkipManager.OnOpenNewCharActivity(list) if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.NewCharAct) then return end local actId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 -- 活动时间限制 if not XDataCenter.FubenNewCharActivityManager.IsOpen(actId) then XUiManager.TipText("RougeLikeNotInActivityTime") return end local newCharType = XFubenNewCharConfig.GetNewCharType(actId) local uiName if newCharType == XFubenNewCharConfig.NewCharType.YinMianZheGuang then uiName = "UiNewCharActivity" elseif newCharType == XFubenNewCharConfig.NewCharType.KoroChar then uiName = "UiFunbenKoroTutorial" elseif newCharType == XFubenNewCharConfig.NewCharType.WeiLa then uiName = "UiFunbenWeiLaTutorial" end XLuaUiManager.Open(uiName, actId) end -- 前往赏金任务 function XFunctionalSkipManager.OnOpenUiMoneyReward() if XDataCenter.MaintainerActionManager.IsStart() then XUiManager.TipText("MaintainerActionEventOver") XDataCenter.FunctionalSkipManager.OnOpenMaintainerAction() else if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.BountyTask) then return end XDataCenter.BountyTaskManager.SetBountyTaskLastRefreshTime() XLuaUiManager.Open("UiMoneyReward") end end -- 前往协同作战 function XFunctionalSkipManager.OnOpenUiOnlineBoss(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 --开启时间限制 if not XDataCenter.FubenBossOnlineManager.CheckNormalBossOnlineInTime() then local tipText = XDataCenter.FubenBossOnlineManager.GetNotInTimeTip() XUiManager.TipError(tipText) return end XDataCenter.FubenBossOnlineManager.OpenBossOnlineUi(param1) end -- 前往活动协同作战 function XFunctionalSkipManager.OnOpenUiOnlineBossActivity(list) local functionId = XFunctionManager.FunctionName.FubenActivityOnlineBoss local isOpen = XFunctionManager.JudgeCanOpen(functionId) and XDataCenter.FubenBossOnlineManager.GetIsActivity() if not isOpen then XUiManager.TipText("ActivityBossOnlineOver") return end local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 XDataCenter.FubenBossOnlineManager.OpenBossOnlineUi(param1) end -- 前往特训关 function XFunctionalSkipManager.OnOpenUiSpecialTrainActivity(list) if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpecialTrain) then return end if XLuaUiManager.IsUiShow("UiSummerTaskReward") then return end local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or 1 local param3 = (list.CustomParams[3] ~= 0) and list.CustomParams[3] or 0 if XDataCenter.FubenSpecialTrainManager.CheckActivityTimeout(param1, true) then return end XLuaUiManager.Open("UiSummerEpisodeNew", param1, param2, param3) end -- 被感染的守林人 function XFunctionalSkipManager.OnOpenUiActivityBranch(list) -- 开启时间限制 if not XDataCenter.FubenActivityBranchManager.IsOpen() then XUiManager.TipText("ActivityBranchNotOpen") return end local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil if param1 == XDataCenter.FubenActivityBranchManager.BranchType.Difficult then if not XDataCenter.FubenActivityBranchManager.IsStatusEqualChallengeBegin() then XUiManager.TipText("ActivityBranchNotOpen") return end end if XFunctionalSkipManager.IsStageLock(param2) then return end local sectionId = XDataCenter.FubenActivityBranchManager.GetCurSectionId() XLuaUiManager.Open("UiActivityBranch", sectionId, param1, param2) end -- 前往格式塔 function XFunctionalSkipManager.OnOpenUiActivityBossSingle(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local sectionId = XDataCenter.FubenActivityBossSingleManager.GetCurSectionId() or 1 -- 活动时间限制 if not XDataCenter.FubenActivityBossSingleManager.IsOpen() then XUiManager.TipText("RougeLikeNotInActivityTime") return end if (not param1) or (not XDataCenter.FubenActivityBossSingleManager.IsChallengeUnlock(param1)) then XLuaUiManager.Open("UiActivityBossSingle", sectionId) else XLuaUiManager.Open("UiActivityBossSingleDetail", param1) end end -- 前往纷争战区 function XFunctionalSkipManager.OnOpenUiArena() local arenaChapters = XFubenConfigs.GetChapterBannerByType(XDataCenter.FubenManager.ChapterType.ARENA) XDataCenter.ArenaManager.RequestSignUpArena(function() XLuaUiManager.Open("UiArena", arenaChapters) end) end -- 前往幻痛囚笼 function XFunctionalSkipManager.OnOpenUiFubenBossSingle() if XDataCenter.FubenBossSingleManager.CheckNeedChooseLevelType() then XLuaUiManager.Open("UiFubenBossSingleChooseLevelType") return end XDataCenter.FubenBossSingleManager.OpenBossSingleView() end -- 前往资源副本 function XFunctionalSkipManager.OnOpenUiFubenDaily(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] if param1 == nil or param1 == 0 then XLuaUiManager.Open("UiFuben", XDataCenter.FubenManager.StageType.Resource) return end XLuaUiManager.OpenWithCallback("UiFubenDaily", function() CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_RESOURCE_AUTOSELECT, param2) end, XDailyDungeonConfigs.GetDailyDungeonRulesById(param1)) end -- 前往前传 function XFunctionalSkipManager.OnOpenUiPrequel(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] local covers = XDataCenter.PrequelManager.GetListCovers() if covers then local index = 0 for k, v in pairs(covers) do if v.CoverId == param1 then index = k break end end if covers[index] then if covers[index].IsAllChapterLock and (not covers[index].IsActivity) then XUiManager.TipMsg(XDataCenter.PrequelManager.GetChapterUnlockDescription(covers[index].ShowChapter)) return end XLuaUiManager.Open("UiPrequel", covers[index], nil, param2) end end -- XLuaUiManager.OpenWithCallback("UiFuben", function() -- CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_PREQUEL_AUTOSELECT, param1, param2) -- end, 1) end -- 是否能前往前传 function XFunctionalSkipManager.IsCanOpenUiPrequel(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] local covers = XDataCenter.PrequelManager.GetListCovers() if covers then local index = 0 for k, v in pairs(covers) do if v.CoverId == param1 then index = k break end end if covers[index] then if covers[index].IsAllChapterLock and (not covers[index].IsActivity) then return false end return true end end return false end -- 前往剧情简章主界面-- 前往据点战主界面 function XFunctionalSkipManager.OnOpenMainlineSubtab(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or 1 XLuaUiManager.Open("UiFuben", 1, nil, param1) end -- 前往隐藏关卡主界面 function XFunctionalSkipManager.OnOpenMainlineWithDifficuty() XLuaUiManager.OpenWithCallback("UiFuben", function() CsXGameEventManager.Instance:Notify(XEventId.EVENT_FUBEN_MAINLINE_DIFFICUTY_SELECT) end, 1) end -- 前往展示厅,有参数时打开某个角色 function XFunctionalSkipManager.OnOpenExhibition(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil XLuaUiManager.OpenWithCallback("UiExhibition", function() CsXGameEventManager.Instance:Notify(XEventId.EVENT_CHARACTER_EXHIBITION_AUTOSELECT, param1) end, true, list.CustomParams[2]) end -- 前往具体的抽卡 function XFunctionalSkipManager.OnOpenDrawDetail(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil XDataCenter.DrawManager.GetDrawGroupList(function() local drawGroupInfos = XDataCenter.DrawManager.GetDrawGroupInfos() for _, info in pairs(drawGroupInfos or {}) do if param1 and info.Id == param1 then XDataCenter.DrawManager.GetDrawInfoList(info.Id, function() XLuaUiManager.Open(info.UiPrefab, info.Id, nil, info.UiBackGround) end) break end end end) end -- 跳转节日活动 function XFunctionalSkipManager.OnOpenFestivalActivity(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil if not XDataCenter.FubenFestivalActivityManager.IsFestivalInActivity(param1) then XUiManager.TipText("FestivalActivityNotInActivityTime") return end if param2 then if XFunctionalSkipManager.IsStageLock(param2) then return end XLuaUiManager.Open("UiFubenChristmasMainLineChapter", param1, param2) else XLuaUiManager.Open("UiFubenChristmasMainLineChapter", param1) end end -- 复刷本 function XFunctionalSkipManager.OnOpenRepeatChallengeActivity(list) local param = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil if not XDataCenter.FubenRepeatChallengeManager.IsOpen() then XUiManager.TipMsg(CS.XTextManager.GetText("FubenRepeatNotInActivityTime")) return end if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.RepeatChallenge) then return end XLuaUiManager.Open("UiFubenRepeatchallenge", param) end -- 爬塔活动 function XFunctionalSkipManager.OnOpenRogueLikeActivity() local activityId = XDataCenter.FubenRogueLikeManager.GetRogueLikeActivityId() if activityId == nil or activityId <= 0 then XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime")) return end local activityConfig = XFubenRogueLikeConfig.GetRogueLikeConfigById(activityId) if not activityConfig then return end if not XDataCenter.FubenRogueLikeManager.IsInActivity() then XUiManager.TipMsg(CS.XTextManager.GetText("RougeLikeNotInActivityTime")) return end if activityConfig.FunctionalOpenId > 0 and (not XFunctionManager.DetectionFunction(activityConfig.FunctionalOpenId)) then return end XDataCenter.FubenRogueLikeManager.OpenRogueLikeCheckStory() end -- 打开主线、隐藏线、据点战 function XFunctionalSkipManager.OnOpenMainLineStage(list) local stageId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local param2 = (list.CustomParams[2] ~= 0) and list.CustomParams[2] or nil local openStageDetail = param2 == 1 if not stageId then return end local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId) if stageInfo.Difficult == XDataCenter.FubenManager.DifficultHard and (not XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.FubenDifficulty)) then local openTips = XFunctionManager.GetFunctionOpenCondition(XFunctionManager.FunctionName.FubenDifficulty) XUiManager.TipMsg(openTips) return end if stageInfo.Type == XDataCenter.FubenManager.StageType.Bfrt then if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenNightmare) then return end end if XFunctionalSkipManager.IsStageLock(stageId) then return end local chapter = XDataCenter.FubenMainLineManager.GetChapterCfg(stageInfo.ChapterId) if not XDataCenter.FubenMainLineManager.CheckChapterCanGoTo(chapter.ChapterId) then XUiManager.TipMsg(CS.XTextManager.GetText("FubenMainLineNoneOpen")) return end if openStageDetail then CsXUiManager.Instance:Open("UiFubenMainLineChapter", chapter, stageId) else CsXUiManager.Instance:Open("UiFubenMainLineChapter", chapter) end end -- 狙击战跳转 function XFunctionalSkipManager.OnOpenUnionKill() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenUnionKill) then return end local unionInfo = XDataCenter.FubenUnionKillManager.GetUnionKillInfo() if not unionInfo or not unionInfo.Id or unionInfo.Id <= 0 then XUiManager.TipMsg(CS.XTextManager.GetText("UnionKillMainNotInActivity")) return end if not XFubenUnionKillConfigs.UnionKillInActivity(unionInfo.Id) then XUiManager.TipMsg(CS.XTextManager.GetText("UnionKillMainNotInActivity")) return end XLuaUiManager.Open("UiUnionKillMain") end -- 公会 function XFunctionalSkipManager.OnOpenGuild() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Guild) then return end XDataCenter.GuildManager.EnterGuild() end -- 跳转巴别塔勋章 function XFunctionalSkipManager.OnOpenMedal(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local selectIndex = 4 XLuaUiManager.Open("UiPlayer", nil, selectIndex, nil, param1) end -- 跳转图鉴 function XFunctionalSkipManager.OnOpenArchive(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil if param1 == XArchiveConfigs.SubSystemType.Monster then XLuaUiManager.Open("UiArchiveMonster") elseif param1 == XArchiveConfigs.SubSystemType.Weapon then XLuaUiManager.Open("UiArchiveWeapon") elseif param1 == XArchiveConfigs.SubSystemType.Awareness then XLuaUiManager.Open("UiArchiveAwareness") elseif param1 == XArchiveConfigs.SubSystemType.Story then XLuaUiManager.Open("UiArchiveStory") elseif param1 == XArchiveConfigs.SubSystemType.CG then XLuaUiManager.Open("UiArchiveCG") elseif param1 == XArchiveConfigs.SubSystemType.NPC then XLuaUiManager.Open("UiArchiveNpc") elseif param1 == XArchiveConfigs.SubSystemType.Email then XLuaUiManager.Open("UiArchiveEmail") elseif param1 == XArchiveConfigs.SubSystemType.Partner then XLuaUiManager.Open("UiArchivePartner") end end -- 跳转gacha function XFunctionalSkipManager.OnOpenGacha(list) local gachaId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local IsOpen = gachaId and XDataCenter.GachaManager.CheckGachaIsOpenById(gachaId, true) or false if not IsOpen then return end XDataCenter.GachaManager.GetGachaRewardInfoRequest(gachaId, function() local gachaRule = XGachaConfigs.GetGachaRuleCfgById(gachaId) XLuaUiManager.Open(gachaRule.UiName, gachaId) end) end -- 跳转gacha组 function XFunctionalSkipManager.OnOpenGachaOrganize(list) local organizeId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil local IsOpen = organizeId and XDataCenter.GachaManager.CheckGachaOrganizeIsOpen(organizeId, true) or false if not IsOpen then return end XDataCenter.GachaManager.GetGachaOrganizeInfoRequest(organizeId, function(gachaId) local organizeRule = XGachaConfigs.GetOrganizeRuleCfg(organizeId) if not organizeRule then return end -- 'gachaId'为卡池组里最新解锁的卡池Id,由服务器下发,打开界面时默认选中 XLuaUiManager.Open(organizeRule.UiName, organizeId, gachaId, organizeRule) end) end -- 跳转活动材料商店 function XFunctionalSkipManager.OnOpenActivityBriefShop(list) local isOpen, desc = XActivityBrieIsOpen.Get(XActivityBriefConfigs.ActivityGroupId.ActivityBriefShop) if isOpen then XLuaUiManager.Open("UiActivityBriefShop", nil, nil) else XUiManager.TipMsg(desc) end end -- 跳转世界Boss function XFunctionalSkipManager.OnOpenWorldBoss() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.WorldBoss) then return end if not XDataCenter.WorldBossManager.IsInActivity() then XUiManager.TipMsg(CS.XTextManager.GetText("WorldBossNotInActivityTime")) return end XDataCenter.WorldBossManager.OpenWorldMainWind() end -- 跳转大富翁 function XFunctionalSkipManager.OnOpenMaintainerAction() local ret, msg = XDataCenter.MaintainerActionManager.CheckIsOpen() if not ret then XUiManager.TipMsg(msg) return end XDataCenter.MaintainerActionManager.OpenMaintainerActionWind() end -- 跳转师徒系统 function XFunctionalSkipManager.OnOpenMentorSystem() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.MentorSystem) then return end XLuaUiManager.Open("UiMentorMain") end -- 区域联机 function XFunctionalSkipManager.OnOpenAreanOnlineChapter() XDataCenter.ArenaOnlineManager.SetCurChapterId() XLuaUiManager.Open("UiArenaOnlineChapter") end -- 检查stageId是否开启 function XFunctionalSkipManager.IsStageLock(stageId) if not stageId then return false end local stageInfo = XDataCenter.FubenManager.GetStageInfo(stageId) if not stageInfo then return false end if not stageInfo.Unlock then XUiManager.TipMsg(XDataCenter.FubenManager.GetFubenOpenTips(stageId)) return true end return false end -- 跳转到番外关卡 function XFunctionalSkipManager.ExtraChapter(jumpData) if not jumpData then return end if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Extra) then local extraManager = XDataCenter.ExtraChapterManager if not jumpData.CustomParams then extraManager.JumpToExtraBanner() end local chapterId = jumpData.CustomParams[1] if chapterId then extraManager.JumpToExtraStage(chapterId, jumpData.CustomParams[2]) else extraManager.JumpToExtraBanner() end end end function XFunctionalSkipManager.FubenInfesotorExplore() if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenInfesotorExplore) then if XDataCenter.FubenInfestorExploreManager.IsInSectionOne() or XDataCenter.FubenInfestorExploreManager.IsInSectionTwo() then local openCb = function() XLuaUiManager.Open("UiInfestorExploreRank") end XDataCenter.FubenInfestorExploreManager.OpenEntranceUi(openCb) elseif XDataCenter.FubenInfestorExploreManager.IsInSectionEnd() then XUiManager.TipText("InfestorExploreEnterSectionEnd") end end end --跳转到尼尔彩蛋界面 function XFunctionalSkipManager.OnNieREasterEgg() XDataCenter.NieRManager.OpenNieRDataSaveUi() end --跳转到尼尔复刷界面 function XFunctionalSkipManager.OnUiFubenNierRepeat(jumpData) XLuaUiManager.Open("UiFubenNierRepeat", jumpData.ParamId) end --跳转到尼尔任务界面 function XFunctionalSkipManager.OnUiFubenNierTask(jumpData) XLuaUiManager.Open("UiNierTask", jumpData.ParamId) end --跳转到尼尔主界面 function XFunctionalSkipManager.OnUiFubenNierEnter() if XDataCenter.NieRManager.GetIsActivityEnd() then XUiManager.TipText("NieREnd") else XLuaUiManager.Open("UiFubenNierEnter") end end function XFunctionalSkipManager.Expedition() XDataCenter.ExpeditionManager.JumpToExpedition() end function XFunctionalSkipManager.RpgTower() XDataCenter.RpgTowerManager.JumpTo() end function XFunctionalSkipManager.SuperTowerJumpTo() XDataCenter.SuperTowerManager.JumpTo() end function XFunctionalSkipManager.SkipTRPGMain() XDataCenter.TRPGManager.SkipTRPGMain() end --跳转到口袋战双主界面 function XFunctionalSkipManager.SkipToPokemonMainUi() XDataCenter.PokemonManager.OpenPokemonMainUi() end --跳转到追击玩法主界面 function XFunctionalSkipManager.SkipToPursuit() if XChessPursuitConfig.GetChessPursuitInTimeMapGroup() then XLuaUiManager.Open("UiChessPursuitMain") else XUiManager.TipText("ChessPursuitNotInTime") end end function XFunctionalSkipManager.SkipToSpringFestivalActivity() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then return end XDataCenter.SpringFestivalActivityManager.OpenActivityMain() end function XFunctionalSkipManager.SkipToSpringFestivalActivityWithClose() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then return end XDataCenter.SpringFestivalActivityManager.OpenMainWithClose() end function XFunctionalSkipManager.SkipToSpringFestivalSmashEggs() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then return end if XDataCenter.SpringFestivalActivityManager.IsOpen() then XLuaUiManager.PopThenOpen("UiSpringFestivalSmashEggs") end end function XFunctionalSkipManager.SkipToSpringFestivalCollectWord() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SpringFestivalActivity) then return end if XDataCenter.SpringFestivalActivityManager.IsOpen() then XLuaUiManager.PopThenOpen("UiSpringFestivalCollectCard") end end --跳转至2021端午活动主界面 function XFunctionalSkipManager.SkipToRpgMakerGameMain() XDataCenter.RpgMakerGameManager.RequestRpgMakerGameEnter() end --================ --跳转到组合小游戏 --================ function XFunctionalSkipManager.JumpToComposeGame(skipDatas) XDataCenter.ComposeGameManager.JumpTo(skipDatas.CustomParams[1]) end --超级据点主界面 function XFunctionalSkipManager.SkipToStrongholdMain() XDataCenter.StrongholdManager.EnterUiMain() end --================ --跳转到白色情人节约会小游戏 --================ function XFunctionalSkipManager.JumpToWhiteValentineGame() XDataCenter.WhiteValentineManager.JumpTo() end -- 跳转到涂装返场商店 function XFunctionalSkipManager.SkipToSpecialShop(skipData) XShopManager.GetShopInfo(skipData.ParamId, function() XLuaUiManager.Open("UiSpecialFashionShop", skipData.ParamId) end) end --================ --跳转到猜拳小游戏 --================ function XFunctionalSkipManager.JumpToFingerGuessing() XDataCenter.FingerGuessingManager.JumpTo() end -- 跳转模拟作战 function XFunctionalSkipManager.SkipToSimulatedCombat(list) if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenSimulatedCombat) then return end local mode, childUiType = list.CustomParams[1], list.CustomParams[2] local isOpen, desc = XDataCenter.FubenSimulatedCombatManager.CheckModeOpen(mode) if not isOpen then XUiManager.TipMsg(desc) return end XLuaUiManager.Remove("UiSimulatedCombatMain") XLuaUiManager.Open("UiSimulatedCombatMain", mode, childUiType) end function XFunctionalSkipManager.SkipToMoeWar() XDataCenter.MoeWarManager.OnOpenMain() end function XFunctionalSkipManager.SkipToFubenHack(list) if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenHack) then return end local isEnd, isNotOpen = XDataCenter.FubenHackManager.GetIsActivityEnd() if isNotOpen then XUiManager.TipText("CommonActivityNotStart") elseif isEnd then XUiManager.TipText("ActivityMainLineEnd") else XLuaUiManager.Open("UiFubenHack") end end function XFunctionalSkipManager.SkipToMineSweeping() XDataCenter.MineSweepingManager.OpenMineSweeping() end function XFunctionalSkipManager.SkipToFubenCoupleCombat(list) if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.FubenCoupleCombat) then return end if XDataCenter.FubenCoupleCombatManager.GetIsActivityEnd() then XUiManager.TipText("ActivityMainLineEnd") end local mode = list.CustomParams[1] local isOpen, desc = XDataCenter.FubenCoupleCombatManager.CheckModeOpen(mode) if not isOpen then XUiManager.TipMsg(desc) return end XLuaUiManager.Open("UiCoupleCombatMain", mode) end function XFunctionalSkipManager.SkipToMovieAssemble(skipDatas) XLuaUiManager.Open("UiMovieAssemble", skipDatas.CustomParams[1]) end function XFunctionalSkipManager.SkipToPartnerTeachingChapter(skipData) local isUnlock, lockTip = XDataCenter.PartnerTeachingManager.WhetherUnLockChapter(skipData.CustomParams[1]) if isUnlock then XLuaUiManager.Open("UiPartnerTeachingChapter", skipData.CustomParams[1]) else XUiManager.TipMsg(lockTip) end end function XFunctionalSkipManager.SkipToReformActivity() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Reform) then return end if not XDataCenter.ReformActivityManager.GetIsOpen() then XUiManager.TipError(CS.XTextManager.GetText("FunctionNotDuringOpening")) return end XDataCenter.ReformActivityManager.EnterRequest(function() XLuaUiManager.Open("UiReform") end) end function XFunctionalSkipManager.SkipToSuperTowerTier() XDataCenter.SuperTowerManager.SkipToSuperTowerTier() end function XFunctionalSkipManager.SkipToPokerGuessing() if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.PokerGuessing) and (not XDataCenter.PokerGuessingManager.IsOpen()) then return end XDataCenter.PokerGuessingManager.OnOpenMain() end function XFunctionalSkipManager.SkipToFashionStory(skipData) XDataCenter.FashionStoryManager.OpenFashionStoryMain(skipData.CustomParams[1]) end function XFunctionalSkipManager.OnOpenSlotmachine(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil XDataCenter.SlotMachineManager.OpenSlotMachine(param1) end function XFunctionalSkipManager.SkipToKillZone() XDataCenter.KillZoneManager.EnterUiMain() end function XFunctionalSkipManager.UiDrawNewYear( skipData ) local isOpen = true local desc if skipData.CustomParams[3] then isOpen, desc = XConditionManager.CheckCondition(skipData.CustomParams[3]) end if not isOpen then XUiManager.TipError(desc) else XDataCenter.GachaManager.GetGachaRewardInfoRequest(skipData.CustomParams[1], function() XLuaUiManager.Open("UiDrawNewYear", skipData.CustomParams[1], skipData.CustomParams[2]) end) end end function XFunctionalSkipManager.OnOpenSlotmachine(list) local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil XDataCenter.SlotMachineManager.OpenSlotMachine(param1) end return XFunctionalSkipManager end