553 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			553 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Lua
		
	
--- 管理游戏所有功能的开关状态
 | 
						||
--- Created by Steven.
 | 
						||
--- DateTime: 2019/5/9 16:07
 | 
						||
 | 
						||
ActTimeCtrlManager = {};
 | 
						||
local this = ActTimeCtrlManager
 | 
						||
local AllActSetConfig = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
 | 
						||
local censorshipConfig = ConfigManager.GetConfig(ConfigName.MainLevelConfig)
 | 
						||
local gameSetConfig = ConfigManager.GetConfig(ConfigName.GameSetting)
 | 
						||
local vipConfig = ConfigManager.GetConfig(ConfigName.VipLevelConfig)
 | 
						||
local GuideConfig = ConfigManager.GetConfig(ConfigName.GuideConfig)
 | 
						||
 | 
						||
-- 整数的服务器时间
 | 
						||
this.serTime = 0
 | 
						||
local lastTime
 | 
						||
local count = 0
 | 
						||
local sendTime = 0
 | 
						||
--时间间隔
 | 
						||
local fixedTime = 1
 | 
						||
local noVersion = {}
 | 
						||
 | 
						||
-- 服务数据
 | 
						||
this.serData = {}
 | 
						||
 | 
						||
function this.Initialize()
 | 
						||
    lastTime = this.serTime
 | 
						||
    this.hasSendMsg = false
 | 
						||
 | 
						||
    -- 工坊等级提升
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.WorkShow.WorkShopLvChange, function()
 | 
						||
        local lv =  WorkShopManager.WorkShopData.lv
 | 
						||
        this.CheckFuncActiveByType(3, lv)
 | 
						||
    end)
 | 
						||
    -- 等级提升
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.Player.OnLevelChange, function()
 | 
						||
        local lv = PlayerManager.level
 | 
						||
        this.CheckFuncActiveByType(2, lv)
 | 
						||
    end)
 | 
						||
    -- 关卡解锁
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.Mission.OnOpenFight, function(fightId)
 | 
						||
        --Log("关卡通关,id = "..fightId)
 | 
						||
        this.CheckFuncActiveByType(1, fightId)
 | 
						||
    end)
 | 
						||
end
 | 
						||
 | 
						||
-- 当功能解锁条件变化时检测
 | 
						||
function this.CheckFuncActiveByType(activeType, params)
 | 
						||
    local ids = {}
 | 
						||
    for id, funcData in pairs(this.serData) do
 | 
						||
        local funcInfo = ConfigManager.GetConfigData(ConfigName.GlobalSystemConfig, id)
 | 
						||
        if funcInfo.OpenRules[1] == activeType then
 | 
						||
            local typeId = funcInfo.IsIDdSame
 | 
						||
            local isActive = this.SingleFuncState(typeId)
 | 
						||
            --Log("检测功能是否已解锁,id = "..id..", isActive = "..tostring(isActive))
 | 
						||
            local aGuideId = AllActSetConfig[typeId].GuideId
 | 
						||
            if AllActSetConfig[aGuideId] and AllActSetConfig[aGuideId].IsOpen and AllActSetConfig[aGuideId].IsOpen> 0 then
 | 
						||
                if ActivityGiftManager.IsActivityTypeOpen(ActivityGiftManager.GetActivityTypeFromId(GuideConfig[aGuideId].IsOpen)) then
 | 
						||
                    table.insert(ids,typeId)
 | 
						||
                end
 | 
						||
            elseif not funcData.isActive and isActive then
 | 
						||
                --Log(">>>>>>功能解锁:id = "..funcInfo.Id..", name = "..funcInfo.Name)
 | 
						||
                -- 未解锁,但是判断已解锁
 | 
						||
                --Game.GlobalEvent:DispatchEvent(GameEvent.FunctionCtrl.OnFunctionOpen, typeId)
 | 
						||
                table.insert(ids,typeId)
 | 
						||
            elseif funcData.isActive and not isActive then
 | 
						||
                --Log(">>>>>>功能关闭:id = "..funcInfo.Id..", name = "..funcInfo.Name)
 | 
						||
                -- 已解锁但是判断未解锁
 | 
						||
                --Game.GlobalEvent:DispatchEvent(GameEvent.FunctionCtrl.OnFunctionClose, typeId)
 | 
						||
                table.insert(ids,typeId)
 | 
						||
            end
 | 
						||
            -- 保存状态
 | 
						||
            funcData.isActive = isActive
 | 
						||
        end
 | 
						||
    end
 | 
						||
    table.sort(ids,function(a,b)
 | 
						||
        local aGuideId = AllActSetConfig[a].GuideId
 | 
						||
        local bGuideId = AllActSetConfig[b].GuideId
 | 
						||
        if (GuideConfig[aGuideId] and GuideConfig[bGuideId]) then
 | 
						||
            return GuideConfig[aGuideId].Sort < GuideConfig[bGuideId].Sort
 | 
						||
        elseif (not GuideConfig[aGuideId] and not GuideConfig[aGuideId]) then
 | 
						||
            return a < b
 | 
						||
        else
 | 
						||
            return GuideConfig[aGuideId] and not GuideConfig[bGuideId]
 | 
						||
        end
 | 
						||
    end)
 | 
						||
    
 | 
						||
    for i = 1 ,#ids do
 | 
						||
        Game.GlobalEvent:DispatchEvent(GameEvent.FunctionCtrl.OnFunctionOpen, ids[i])
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 初始化服务器数据
 | 
						||
function this.InitMsg(msg)
 | 
						||
    if #msg.functionOfTime == 0 then Log(Language[10765]) return end
 | 
						||
    for i = 1, #msg.functionOfTime do
 | 
						||
        local t = msg.functionOfTime[i]
 | 
						||
        local id = t.functionId
 | 
						||
        local startTime = t.startTime
 | 
						||
        local endTime = t.endTime
 | 
						||
        local restTime = t.interval
 | 
						||
        local switch = t.switch
 | 
						||
 | 
						||
 | 
						||
        this.serData[id] = {}
 | 
						||
        this.serData[id].id = id
 | 
						||
        this.serData[id].startTime = startTime
 | 
						||
        this.serData[id].endTime = endTime
 | 
						||
        this.serData[id].restTime = restTime
 | 
						||
        this.serData[id].switch = switch
 | 
						||
 | 
						||
        Log(
 | 
						||
               string.format("--- 功能解锁数据 id = %s, startTime = %s, endTime = %s, switch = %s",
 | 
						||
                       id, startTime, endTime, switch))
 | 
						||
 | 
						||
        -- 用于标记是否解锁使用
 | 
						||
        local typeId = AllActSetConfig[id].IsIDdSame
 | 
						||
        this.serData[id].isActive = this.SingleFuncState(typeId)
 | 
						||
    end
 | 
						||
    this.WatchFuncState()
 | 
						||
end
 | 
						||
 | 
						||
-- 根据活动类型获取当前活动表数据
 | 
						||
local ActTypeConfigList = {}    -- 做一个缓存避免重复遍历表数据
 | 
						||
function this.GetTableDataByTypeId(typeId)
 | 
						||
    if not ActTypeConfigList[typeId] then
 | 
						||
        ActTypeConfigList[typeId] = ConfigManager.GetAllConfigsDataByKey(ConfigName.GlobalSystemConfig, "IsIDdSame", typeId)
 | 
						||
    end
 | 
						||
    return ActTypeConfigList[typeId]
 | 
						||
end
 | 
						||
-- 根据活动类型获取当前活动得数据
 | 
						||
function this.GetSerDataByTypeId(typeId)
 | 
						||
    local configList = this.GetTableDataByTypeId(typeId)
 | 
						||
    for _, config in ipairs(configList) do
 | 
						||
        local actId = config.Id
 | 
						||
        if this.serData[actId] then
 | 
						||
            return this.serData[actId]
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- ////////////////////////////////////////////////////////////////////////////
 | 
						||
-- 根据服务器时间更新
 | 
						||
function this.Updata()
 | 
						||
    if this.serTime ~= lastTime then
 | 
						||
        lastTime = this.serTime
 | 
						||
        this.FixedUpDate()
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 1秒更新一次
 | 
						||
function this.FixedUpDate()
 | 
						||
    count = count + 1
 | 
						||
    this.WatchFuncState()
 | 
						||
 | 
						||
    if count == fixedTime then -- 每fixedTime更新一次
 | 
						||
        count = 0
 | 
						||
        -- do something
 | 
						||
    end
 | 
						||
 | 
						||
    if this.hasSendMsg then
 | 
						||
        sendTime = sendTime  + 1
 | 
						||
        if sendTime >= 5 then
 | 
						||
            sendTime = 0
 | 
						||
            this.hasSendMsg = false
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- ///////////////////////////////////////////////////////////////////////////
 | 
						||
-- 监测所有活动状态
 | 
						||
function this.WatchFuncState()
 | 
						||
    for i, v in pairs(this.serData) do
 | 
						||
        local typeId = AllActSetConfig[i].IsIDdSame
 | 
						||
        if this.IsQualifiled(typeId) then
 | 
						||
 | 
						||
            local timeType = ""
 | 
						||
            if this.serTime >= v.startTime and this.serTime < v.endTime then
 | 
						||
                --活动结束倒计时
 | 
						||
                local closeTime = v.endTime - this.serTime
 | 
						||
                --local showStr = os.date("%d天%H时%M分%S秒",closeTime)
 | 
						||
                local showStr = FormatSecond(closeTime)
 | 
						||
                timeType = Language[10766] .. showStr
 | 
						||
            else
 | 
						||
                local openTime = 0
 | 
						||
                openTime = v.startTime - this.serTime
 | 
						||
 | 
						||
                if openTime > 0 then
 | 
						||
                    --local showStr = os.date("%Y年%M月%d日%H时%M分%S秒", 30)
 | 
						||
                    local showStr = FormatSecond(openTime)
 | 
						||
                    timeType = Language[10767] .. showStr
 | 
						||
                end
 | 
						||
            end
 | 
						||
            this.serData[i].countDown = timeType -- 活动计时文字
 | 
						||
            this.serData[i].isOpen = this.SingleFuncState(typeId) -- 活动开启状态
 | 
						||
 | 
						||
            -- 活动开启前同步一次状态
 | 
						||
            if this.serTime == v.startTime + 1 then
 | 
						||
                if not this.hasSendMsg then
 | 
						||
                    this.hasSendMsg = true
 | 
						||
                    NetManager.GetAllFunState(function ()
 | 
						||
                        Log("服务器返回活动消息")
 | 
						||
                        Game.GlobalEvent:DispatchEvent(GameEvent.FunctionCtrl.OnFunctionOpen, typeId)
 | 
						||
                    end)
 | 
						||
                end
 | 
						||
            end
 | 
						||
            -- 活动结束前同步一次状态
 | 
						||
            if this.serTime == v.endTime + 1 then
 | 
						||
                if not this.hasSendMsg then
 | 
						||
                    this.hasSendMsg = true
 | 
						||
                    NetManager.GetAllFunState(function ()
 | 
						||
                        Log("服务器返回活动消息")
 | 
						||
                        Game.GlobalEvent:DispatchEvent(GameEvent.FunctionCtrl.OnFunctionClose, typeId)
 | 
						||
                    end)
 | 
						||
                end
 | 
						||
            end
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- ///////////////////////////////////////////////////////////////////////////
 | 
						||
--  检测某一活动开启与否
 | 
						||
function this.FuncTimeJudge(id)
 | 
						||
    local isActive = false
 | 
						||
    local serData = this.GetSerDataByTypeId(id)
 | 
						||
    if serData then
 | 
						||
        local startTime = serData.startTime
 | 
						||
        local endTime = serData.endTime
 | 
						||
 | 
						||
        if this.serTime >= startTime and this.serTime <= endTime then
 | 
						||
            isActive = true
 | 
						||
        else
 | 
						||
            isActive = false
 | 
						||
        end
 | 
						||
    else
 | 
						||
        --Log("服务器不存在活动类型 = "..id.."的活动数据")
 | 
						||
    end
 | 
						||
    return isActive
 | 
						||
end
 | 
						||
 | 
						||
-- 活动状态, 返回提示文字
 | 
						||
function this.GetFuncTip(id)
 | 
						||
    local tip = ""
 | 
						||
    local qualifiled = this.IsQualifiled(id)
 | 
						||
    local isActive = this.FuncTimeJudge(id)
 | 
						||
    if noVersion[id] then
 | 
						||
        tip = Language[10768]
 | 
						||
        return tip
 | 
						||
    end
 | 
						||
    if not qualifiled then
 | 
						||
        -- 相同活动类型解锁数据相同,所以只用第一个进行判断
 | 
						||
        local data = this.GetTableDataByTypeId(id)[1]
 | 
						||
        local rules = data.OpenRules
 | 
						||
        if rules[1] == 1 then
 | 
						||
            tip = string.format(Language[10769], GetLanguageStrById(censorshipConfig[rules[2]].Name))
 | 
						||
        elseif rules[1] == 2 then
 | 
						||
            tip = string.format(Language[10279], rules[2])
 | 
						||
        elseif rules[1] == 3 then
 | 
						||
            tip = string.format(Language[10771], rules[2])
 | 
						||
        end
 | 
						||
    else
 | 
						||
        if not isActive then
 | 
						||
            if id == FUNCTION_OPEN_TYPE.ARENA then
 | 
						||
                tip = Language[10772]
 | 
						||
            else
 | 
						||
                tip = Language[10773]
 | 
						||
            end
 | 
						||
        end
 | 
						||
    end
 | 
						||
 | 
						||
    return tip
 | 
						||
end
 | 
						||
 | 
						||
-- 活动总状态
 | 
						||
function this.SingleFuncState(id)
 | 
						||
    local isOpen = false
 | 
						||
    local qualifiled = this.IsQualifiled(id)
 | 
						||
    local isOpen = this.IsSwitchOpen(id)
 | 
						||
    local isActive = this.FuncTimeJudge(id)
 | 
						||
    if isOpen and qualifiled and isActive then
 | 
						||
        isOpen = true
 | 
						||
    else
 | 
						||
        isOpen = false
 | 
						||
    end
 | 
						||
    return isOpen
 | 
						||
end
 | 
						||
 | 
						||
-- 传入活动的ID, 显示活动期间文字
 | 
						||
function this.ShowActText(id)
 | 
						||
    local serData = this.GetSerDataByTypeId(id)
 | 
						||
    if not serData then return end
 | 
						||
    -- 如果活动正在进行,返回活动开启结束文字
 | 
						||
    if this.FuncTimeJudge(id)then
 | 
						||
        local beginStr = os.date(Language[10774],this.serData[id].startTime)
 | 
						||
        local endStr = os.date(Language[10774],this.serData[id].endTime)
 | 
						||
        return beginStr, endStr
 | 
						||
    else
 | 
						||
        return Language[10775]
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 玩家是否有资格开启
 | 
						||
function this.IsQualifiled(id)
 | 
						||
    -- 相同类型活动解锁类型相同,所以只判断第一个
 | 
						||
    local data = this.GetTableDataByTypeId(id)[1]
 | 
						||
    if not data then return false end
 | 
						||
    if data.IsOpen == 0 then
 | 
						||
        --Log("此功能不在版本范围内!")
 | 
						||
        noVersion[id] = true
 | 
						||
        return false
 | 
						||
    else
 | 
						||
        noVersion[id] = false
 | 
						||
    end
 | 
						||
 | 
						||
    -- 当前玩家等级
 | 
						||
    local qualifiled = false
 | 
						||
    local playerLv = PlayerManager.level
 | 
						||
    local openRule = data.OpenRules
 | 
						||
    if openRule[1] == 1 then  -- 关卡开启
 | 
						||
        qualifiled = FightPointPassManager.IsFightPointPass(openRule[2])
 | 
						||
    elseif openRule[1] == 2 then                      -- 等级开启
 | 
						||
        qualifiled = playerLv >= openRule[2]
 | 
						||
    elseif openRule[1] == 3 then    -- 工坊等级开启
 | 
						||
        qualifiled = WorkShopManager.WorkShopData.lv >= openRule[2]
 | 
						||
    end
 | 
						||
    return qualifiled
 | 
						||
end
 | 
						||
 | 
						||
-- 判断功能是否真的开放
 | 
						||
function this.IsSwitchOpen(id)
 | 
						||
    local serData = this.GetSerDataByTypeId(id)
 | 
						||
    if serData then
 | 
						||
        return serData.switch == 0
 | 
						||
    end
 | 
						||
    return false
 | 
						||
end
 | 
						||
-- 
 | 
						||
local SwitchOpenStr = {
 | 
						||
    [1] = "创角第%s天",
 | 
						||
    [2] = "开服第%s天"
 | 
						||
}
 | 
						||
function this.GetSwitchOpenTip(id)
 | 
						||
    local data = this.GetTableDataByTypeId(id)[1]
 | 
						||
    if data then
 | 
						||
        if data.IfOpen then
 | 
						||
            local t = data.IfOpen[1]
 | 
						||
            return string.format(SwitchOpenStr[t], data.IfOpen[2])
 | 
						||
        end
 | 
						||
    end
 | 
						||
    return 
 | 
						||
end
 | 
						||
 | 
						||
--传入需要锁上的功能, state 为true,需要置灰
 | 
						||
function this.SetFuncLockState(obj, id, state,isWorkShop)
 | 
						||
    local isOpen = this.SingleFuncState(id)
 | 
						||
    if(isWorkShop==true) then
 | 
						||
        if not isOpen then
 | 
						||
            if state then
 | 
						||
                Util.GetGameObject(obj.transform, "maskImage"):SetActive(true)
 | 
						||
                local data = this.GetTableDataByTypeId(id)[1]
 | 
						||
                local rules = data.OpenRules
 | 
						||
                Util.GetGameObject(obj.transform, "maskImage/unLockText"):GetComponent("Text").text=string.format(Language[10771], rules[2])
 | 
						||
            else
 | 
						||
                obj:SetActive(false)
 | 
						||
            end
 | 
						||
        else
 | 
						||
            obj:SetActive(true)
 | 
						||
            Util.GetGameObject(obj.transform, "maskImage"):SetActive(false)
 | 
						||
        end
 | 
						||
    else
 | 
						||
        if not isOpen then
 | 
						||
            if state then
 | 
						||
                Util.SetGray(obj, true)
 | 
						||
            else
 | 
						||
                obj:SetActive(false)
 | 
						||
            end
 | 
						||
        else
 | 
						||
            obj:SetActive(true)
 | 
						||
            Util.SetGray(obj, false)
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- ==================== 编队设置 ===============
 | 
						||
-- 最大上阵人数
 | 
						||
function this.MaxArmyNum()
 | 
						||
    local num = 0
 | 
						||
    local formatData = GetLanguageStrById(gameSetConfig[1].HeroLocation)
 | 
						||
    for i = 1, #formatData do
 | 
						||
        local judgeType = formatData[i][1]
 | 
						||
        local value = formatData[i][2]
 | 
						||
        if judgeType == 1 then -- 关卡判断
 | 
						||
            local isPass = FightPointPassManager.IsFightPointPass(value)
 | 
						||
            if isPass then
 | 
						||
                num = num + 1
 | 
						||
            end
 | 
						||
        elseif judgeType == 2 then -- 等级判断
 | 
						||
            local isPass = PlayerManager.level >= value
 | 
						||
            if isPass then
 | 
						||
                num = num + 1
 | 
						||
            end
 | 
						||
        end
 | 
						||
    end
 | 
						||
    return num
 | 
						||
end
 | 
						||
 | 
						||
-- 上阵位置解锁条件
 | 
						||
function this.UnLockCondition(index)
 | 
						||
    local tip = Language[10776]
 | 
						||
    local formatData = GetLanguageStrById(gameSetConfig[1].HeroLocation)
 | 
						||
    local judgeType = formatData[index][1]
 | 
						||
    local value = formatData[index][2]
 | 
						||
    if judgeType == 1 then -- 关卡判断
 | 
						||
        tip = Language[10309] .. GetLanguageStrById(censorshipConfig[value].Name)
 | 
						||
    elseif judgeType == 2 then -- 等级判断
 | 
						||
        tip = Language[10777] .. tostring(value) .. Language[10065]
 | 
						||
    end
 | 
						||
    return tip
 | 
						||
end
 | 
						||
 | 
						||
-- 下一个解锁可上阵的条件
 | 
						||
function this.NextArmCondition()
 | 
						||
    -- 当前已经解锁的数量
 | 
						||
    local nextIndex = this.MaxArmyNum() + 1
 | 
						||
    if nextIndex>= this.MaxArmyNum() then
 | 
						||
        nextIndex= this.MaxArmyNum()
 | 
						||
    end
 | 
						||
    local formatData = GetLanguageStrById(gameSetConfig[1].HeroLocation)
 | 
						||
    local judgeType = formatData[nextIndex][1]
 | 
						||
    local value = formatData[nextIndex][2]
 | 
						||
    local nextTip = Language[10778]
 | 
						||
    if judgeType == 1 then -- 关卡判断
 | 
						||
        nextTip = Language[10309] .. GetLanguageStrById(censorshipConfig[value].Name) .. Language[10779]
 | 
						||
    elseif judgeType == 2 then -- 等级判断
 | 
						||
        nextTip = Language[10777] .. tostring(value) .. Language[10780]
 | 
						||
    end
 | 
						||
    return nextTip
 | 
						||
end
 | 
						||
 | 
						||
-- 获取某模块剩余开放时间  -1 表示未开放/已关闭
 | 
						||
function this.GetActLeftTime(typeId)
 | 
						||
    -- 检测数据正确性
 | 
						||
    local serData = this.GetSerDataByTypeId(typeId)
 | 
						||
    if not typeId or not serData then return -1 end
 | 
						||
    -- 判断时间戳
 | 
						||
    local curTimeStamp = GetTimeStamp()---毫秒
 | 
						||
    if curTimeStamp < serData.startTime then    --- 时间未到
 | 
						||
        return -1
 | 
						||
    end
 | 
						||
    -- 计算剩余时间
 | 
						||
    local leftTime = math.floor(serData.endTime - curTimeStamp)
 | 
						||
    return leftTime
 | 
						||
end
 | 
						||
 | 
						||
 | 
						||
function this.GetActOpenTime(id)
 | 
						||
    local serData = this.GetSerDataByTypeId(id)
 | 
						||
    if not serData then return end
 | 
						||
    if this.SingleFuncState(id) then return end
 | 
						||
    local openTime = serData.startTime - this.serTime
 | 
						||
    local str = FormatSecond(openTime)
 | 
						||
    return str
 | 
						||
end
 | 
						||
 | 
						||
-- 最大上阵异妖数量
 | 
						||
function this.MaxDemonNum()
 | 
						||
    local maxNum = 0
 | 
						||
    local gameSettingConFig = ConfigManager.GetConfigData(ConfigName.GameSetting,1).DifferLocation
 | 
						||
    for i = 1, #gameSettingConFig do
 | 
						||
        if gameSettingConFig[i][1] == 1 then--关卡判断
 | 
						||
            if FightPointPassManager.IsFightPointPass(gameSettingConFig[i][2]) then
 | 
						||
                maxNum = maxNum + 1
 | 
						||
            end
 | 
						||
        elseif gameSettingConFig[i][1] == 2 then--等级判断
 | 
						||
            if PlayerManager.level >= gameSettingConFig[i][2] then
 | 
						||
                maxNum = maxNum + 1
 | 
						||
            end
 | 
						||
        end
 | 
						||
    end
 | 
						||
    return maxNum
 | 
						||
end
 | 
						||
 | 
						||
-- 开启下一个位置需要的VIP等级, 只有未解锁的才有用
 | 
						||
function this.DemonNeedVipLv(index,srtType)
 | 
						||
    local gameSettingConFig = ConfigManager.GetConfigData(ConfigName.GameSetting,1).DifferLocation
 | 
						||
    for i = 1, #gameSettingConFig do
 | 
						||
        if i == index then
 | 
						||
            if gameSettingConFig[i][1] == 1 then--关卡判断
 | 
						||
                local str = ""
 | 
						||
                if srtType == 1 then
 | 
						||
                    str = Language[10309]..string.gsub(GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.MainLevelConfig,gameSettingConFig[i][2]).Name),"-","|")
 | 
						||
                else
 | 
						||
                    str = Language[10309]..GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.MainLevelConfig,gameSettingConFig[i][2]).Name)
 | 
						||
                end
 | 
						||
                return str
 | 
						||
            elseif gameSettingConFig[i][1] == 2 then--等级判断
 | 
						||
                return Language[10781]..gameSettingConFig[i][2]
 | 
						||
            end
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 异妖上阵数量提示内容
 | 
						||
function this.TipText(index)
 | 
						||
    local tip = this.DemonNeedVipLv(index,2) .. Language[10782]
 | 
						||
    return tip
 | 
						||
end
 | 
						||
 | 
						||
 | 
						||
-- 恶心的副本的单独提示
 | 
						||
function this.CarbonOpenTip()
 | 
						||
    local minFight = 99999
 | 
						||
    local minLevel = 99999
 | 
						||
    local openRuleList = {}
 | 
						||
    -- table.insert(openRuleList, AllActSetConfig[17].OpenRules)
 | 
						||
    -- table.insert(openRuleList, AllActSetConfig[18].OpenRules)
 | 
						||
    -- table.insert(openRuleList, AllActSetConfig[30].OpenRules)
 | 
						||
    -- table.insert(openRuleList, AllActSetConfig[46].OpenRules)
 | 
						||
    table.insert(openRuleList, AllActSetConfig[67].OpenRules)
 | 
						||
 | 
						||
    for i = 1, #openRuleList do
 | 
						||
        local openRule = openRuleList[i][1]
 | 
						||
        local openValue = openRuleList[i][2]
 | 
						||
        if openRule == 1 then
 | 
						||
            minFight = minFight < openValue and minFight or openValue
 | 
						||
        elseif openRule == 2 then
 | 
						||
            minLevel = minLevel < openRule and minLevel or openValue
 | 
						||
        end
 | 
						||
    end
 | 
						||
 | 
						||
    local str = ""
 | 
						||
    if minLevel < 99999 and minFight ~= 99999 then
 | 
						||
        str = string.format(Language[10783], GetLanguageStrById(censorshipConfig[minFight].Name), minLevel)
 | 
						||
    elseif minLevel == 99999 then
 | 
						||
        str = string.format(Language[10784], GetLanguageStrById(censorshipConfig[minFight].Name))
 | 
						||
    elseif minFight == 99999 then
 | 
						||
        str = string.format(Language[10785], minLevel)
 | 
						||
    end
 | 
						||
 | 
						||
    return str
 | 
						||
end
 | 
						||
 | 
						||
--系统开启规则提示 type 开启系统类型
 | 
						||
function this.SystemOpenTip(type)
 | 
						||
    local str=""
 | 
						||
    if AllActSetConfig[type].OpenRules[1]==1 then
 | 
						||
        str=string.format(Language[10786],GetLanguageStrById(censorshipConfig[AllActSetConfig[type].OpenRules[2]].Name))
 | 
						||
    elseif AllActSetConfig[type].OpenRules[1]==2 then
 | 
						||
        str=string.format(Language[10787],AllActSetConfig[type].OpenRules[2])
 | 
						||
    end
 | 
						||
    return str
 | 
						||
end
 | 
						||
 | 
						||
return this |