PGRData/Script/matrix/xmanager/XFunctionalSkipManager.lua

1227 lines
No EOL
47 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 == "UiPuzzleActivity" then
XDataCenter.FubenActivityPuzzleManager.OpenPuzzleGame(param1)
elseif skipDatas.UiName == "UiChristmasTreeMain" then
XFunctionalSkipManager.SkipToChristmasTree(skipDatas.UiName, 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)
else
XLog.Error("跳转不存在", skipDatas.UiName);
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
local isOpenSkin = list.CustomParams[2] and (list.CustomParams[2] ~= 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
or newCharType == XFubenNewCharConfig.NewCharType.LuoLan
or newCharType == XFubenNewCharConfig.NewCharType.Pulao
or newCharType == XFubenNewCharConfig.NewCharType.Selena
or newCharType == XFubenNewCharConfig.NewCharType.Qishi
or newCharType == XFubenNewCharConfig.NewCharType.Hakama
or newCharType == XFubenNewCharConfig.NewCharType.SuperKarenina then
uiName = "UiFunbenWeiLaTutorial"
elseif newCharType == XFubenNewCharConfig.NewCharType.Liv then
uiName = "UiLifuActivityMain"
end
XLuaUiManager.Open(uiName, actId, isOpenSkin)
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
local config = XFubenSpecialTrainConfig.GetActivityConfigById(param1)
if config.Type == XFubenSpecialTrainConfig.Type.Music then
XLuaUiManager.Open("UiSpecialTrainMusic")
elseif config.Type == XFubenSpecialTrainConfig.Type.Photo then
XLuaUiManager.Open("UiSummerEpisodeNew", param1, param2, param3)
elseif config.Type == XFubenSpecialTrainConfig.Type.Snow then
XLuaUiManager.Open("UiFubenSnowGame")
elseif config.Type == XFubenSpecialTrainConfig.Type.Rhythm then
XLuaUiManager.Open("UiFubenYuanXiao")
elseif config.Type == XFubenSpecialTrainConfig.Type.Breakthrough then
XLuaUiManager.Open("UiSpecialTrainBreakthroughMain")
else
XLuaUiManager.Open("UiSummerEpisode", param1, param2, param3)
end
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
XLuaUiManager.Open("UiFubenMainLineChapter", chapter, stageId)
else
XLuaUiManager.Open("UiFubenMainLineChapter", chapter)
end
end
function XFunctionalSkipManager.OpenMainLine3DStage(list)
local chapterId = list.CustomParams[1]
local stageId = list.CustomParams[2]
local mainCfg = XDataCenter.FubenMainLineManager.GetChapterMainTemplate(XDataCenter.FubenMainLineManager.MainLine3DId)
local chapterIndex, stageIndex
for i, cId in pairs(mainCfg.ChapterId) do
if chapterId == cId then
chapterIndex = i
if not XDataCenter.FubenMainLineManager.CheckChapterCanGoTo(cId) then
XUiManager.TipMsg(CS.XTextManager.GetText("FubenMainLineNoneOpen"))
return
end
end
local chapterCfg = XDataCenter.FubenMainLineManager.GetChapterCfg(cId)
for j, sId in pairs(chapterCfg.StageId) do
if sId == stageId then stageIndex = j end
end
end
XLuaUiManager.Open("UiFubenMainLine3D", chapterIndex, stageIndex, stageId)
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.OpenGuildBoss()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Guild) then
return
end
if not XDataCenter.GuildManager.IsJoinGuild() then
return
end
XDataCenter.GuildBossManager.OpenGuildBossHall()
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")
elseif param1 == XArchiveConfigs.SubSystemType.PV then
XLuaUiManager.Open("UiArchivePV")
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 selectedShopId = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
local isOpen, desc = XActivityBrieIsOpen.Get(XActivityBriefConfigs.ActivityGroupId.ActivityBriefShop)
if isOpen then
XLuaUiManager.Open("UiActivityBriefShop", nil, nil, selectedShopId)
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.ShortStoryChapter(jumpData)
if not jumpData then return end
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.ShortStory) then
local extraManager = XDataCenter.ShortStoryChapterManager
if not jumpData.CustomParams then extraManager.JumpToShortStoryBanner() end
local chapterId = jumpData.CustomParams[1]
if chapterId then extraManager.JumpToShortStoryStage(chapterId, jumpData.CustomParams[2])
else extraManager.JumpToShortStoryBanner() 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("FubenRepeatNotInActivityTime")
return
end
XLuaUiManager.Open("UiCoupleCombatChapter")
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.SkipToKillZone()
XDataCenter.KillZoneManager.EnterUiMain()
end
function XFunctionalSkipManager.SkipToSameColorGame()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.SameColor) then
return
end
XDataCenter.SameColorActivityManager.OpenMainUi()
end
-- 跳转圣诞活动
function XFunctionalSkipManager.SkipToChristmasTree(uiName, actId)
local actTemplate = XDataCenter.ChristmasTreeManager.Reset(actId);
local _, endTimeSecond = XFunctionManager.GetTimeByTimeId(actTemplate.TimeId)
if not endTimeSecond then
XUiManager.TipError(CSXTextManagerGetText("ActivityMainLineEnd"))
end
local time = XTime.GetServerNowTimestamp()
if time > endTimeSecond then
XUiManager.TipError(CSXTextManagerGetText("ActivityMainLineEnd"))
return
end
XLuaUiManager.Open(uiName, actId)
end
function XFunctionalSkipManager.SkipToTheatre()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Theatre) then
return
end
XDataCenter.TheatreManager.CheckAutoPlayStory()
end
-- 跳转战斗通行证
function XFunctionalSkipManager.OnOpenPassport()
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.Passport) then
return
end
XDataCenter.PassportManager.OpenMainUi()
end
function XFunctionalSkipManager.SkipToPickFlipRewardActivity(skipData)
XDataCenter.PickFlipManager.OpenMainUi(skipData.CustomParams[1])
end
--================
--跳转到超限乱斗
--================
function XFunctionalSkipManager.SkipToSuperSmashBros()
XDataCenter.SuperSmashBrosManager.JumpTo()
end
--================
--跳转到打地鼠
--================
function XFunctionalSkipManager.SkipToHitMouse()
XDataCenter.HitMouseManager.JumpTo()
end
---跳转到投骰子小游戏(元旦预热)
function XFunctionalSkipManager.SkipToDiceGame()
XDataCenter.DiceGameManager.OpenDiceGame()
end
--跳转到全服决战
function XFunctionalSkipManager.SkipToAreaWar()
XDataCenter.AreaWarManager.EnterUiMain()
end
--跳转到周年意识营救战
function XFunctionalSkipManager.SkipToMemorySave()
XDataCenter.MemorySaveManager.EnterUiMain()
end
--跳转到末日生存(模拟经营)
function XFunctionalSkipManager.SkipToDoomsday()
XDataCenter.DoomsdayManager.EnterUiMain()
end
--跳转到元旦奖券小游戏
function XFunctionalSkipManager.SkipToNewYearLuck()
XDataCenter.NewYearLuckManager.OpenMainUi()
end
function XFunctionalSkipManager.SkipToFubenMaverick()
local notInActivity, notStart = XDataCenter.MaverickManager.IsActivityEnd()
if notStart then
XUiManager.TipText("MaverickNotStart")
return
end
if notInActivity then
XUiManager.TipText("MaverickEnd")
return
end
XLuaUiManager.Open("UiFubenMaverickMain")
end
--跳转到大逃杀玩法主界面
function XFunctionalSkipManager.SkipToEscapeMain()
XDataCenter.EscapeManager.OnOpenMain()
end
--跳转到枢纽作战
function XFunctionalSkipManager.SkipToPivotCombat()
XDataCenter.PivotCombatManager.JumpTo()
end
--跳转到哈卡玛小游戏
function XFunctionalSkipManager.SkipToBodyCombineGame()
XDataCenter.BodyCombineGameManager.JumpTo()
end
function XFunctionalSkipManager.OpenLotto(list)
local groupId = tonumber(list.CustomParams[1])
XDataCenter.LottoManager.OpenLottoUi(groupId)
end --跳转到黄金矿工
function XFunctionalSkipManager.SkipToGoldenMiner()
XDataCenter.GoldenMinerManager.OnOpenMain()
end
--跳转到动作塔防
function XFunctionalSkipManager.SkipToDoubleTowers()
XDataCenter.DoubleTowersManager.OnOpenMain()
end
--登录弹窗提示,跳转到周任务挑战
function XFunctionalSkipManager.SkipToWeekChallenge()
XDataCenter.WeekChallengeManager.OnAutoWindowOpen()
end
--跳转到累消活动
function XFunctionalSkipManager.SkipToConsumeActivityMain()
XDataCenter.AccumulatedConsumeManager.OnOpenActivityMain()
end
--跳转到福袋抽卡
function XFunctionalSkipManager.SkipToConsumeActivityLuckyBag()
XDataCenter.AccumulatedConsumeManager.OnOpenLuckyBag()
end
--跳转到福行商店
function XFunctionalSkipManager.SkipToConsumeActivityShop()
XDataCenter.AccumulatedConsumeManager.OpenActivityShop()
end
--跳转到音游
function XFunctionalSkipManager.OnOpenTaikoMaster()
XDataCenter.TaikoMasterManager.OpenUi()
end
--跳转到多维跳转
function XFunctionalSkipManager.SkipToMultiDimMain()
XDataCenter.MultiDimManager.OnOpenMain()
end
--跳转到520送礼, 28分支单独处理增加TimeId判断
function XFunctionalSkipManager.SkipToFavorabilityNew(skipData)
local uiName = skipData.UiName
if not uiName then return end
if XLuaUiManager.IsUiShow(uiName) then
return
end
local timeId = skipData.TimeId
local isOpen = XFunctionManager.CheckInTimeByTimeId(timeId)
if not isOpen then
XUiManager.TipText("ActivityBaseTaskSkipNotInDuring")
return
end
XLuaUiManager.Open("UiFavorabilityNew")
end
function XFunctionalSkipManager.OnOpenSlotmachine(list)
local param1 = (list.CustomParams[1] ~= 0) and list.CustomParams[1] or nil
XDataCenter.SlotMachineManager.OpenSlotMachine(param1)
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
return XFunctionalSkipManager
end