705 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			705 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Lua
		
	
 ---
 | 
						||
---  红点系统使用方法:
 | 
						||
---     1、注册:
 | 
						||
---         在   RedPointType  中注册相应的红点枚举
 | 
						||
---     2、设置红点关系:
 | 
						||
---         在   RedPotManager.InitRedPointAllRelate 设置红点的层级关系(树结构)
 | 
						||
---            如: RPData:SetParent(rpType1, rpType2)
 | 
						||
---             参数:     rpType1     子红点
 | 
						||
---                        rpType2     父红点
 | 
						||
---     3、注册红点的检测方法:
 | 
						||
---         在   RedPotManager.RegisterRedCheckFunc  注册红点的检测方法,要求方法返回是否显示红点,显示返回 true
 | 
						||
---            如:RPData:AddCheckFunc(rpType, func, funcType)
 | 
						||
---             参数:     rpType       红点类型
 | 
						||
---                        func         红点检测方法(返回  true 显示,false 不显示)
 | 
						||
---                        funcType     红点对应的功能解锁类型(用于判断红点对应的功能是否已经解锁, 可为空,空则不判断)
 | 
						||
---             *****注:只有没有子红点的红点才能注册红点检测方法,父红点的状态由所有的子红点决定*****
 | 
						||
---
 | 
						||
---     4、注册红点对象:
 | 
						||
---         使用全局方法 BindRedPointObject 进行红点枚举与红点对象的绑定
 | 
						||
---         使用全局方法 ClearRedPointObject  清楚红点枚举上绑定的所有物体(*******请在界面关闭时务必清理绑定的红点)
 | 
						||
---
 | 
						||
---     5、刷新红点状态
 | 
						||
---         使用全局方法  CheckRedPointStatus  主动刷新红点的状态,在红点状态可能改变时调用此方法进行红点状态检测,
 | 
						||
---      参数为无子红点的红点枚举,此方法会自动检测红点状态,并向父级递归设置父级的状态
 | 
						||
---
 | 
						||
---     *6、强制设置红点状态(此方法为预留方法,会使红点状态脱离管理,谨慎使用)
 | 
						||
---         使用全局方法  ChangeRedPointStatus  强制设置红点状态,并向父级递归设置状态
 | 
						||
---
 | 
						||
---     7、服务器红点
 | 
						||
---         1> 与服务器约定,并按第1、2步注册红点枚举、设置红点关系,服务器会在登录和需要时将红点推送到前端,并自动设置红点状态。
 | 
						||
---         2> 在下面 ServerRedType 中声明服务器红点枚举。
 | 
						||
---         3> 服务器红点无法注册检测方法(服务器和本地检测都需要的红点,请拆分为两个子红点),但可以注册功能解锁类型
 | 
						||
---         4> 按第4步注册红点绑定的物体
 | 
						||
---         5> 服务器红点无法刷新,在无需显示改红点时,请调用全局方法 ResetServerRedPointStatus 将服务器红点状态重置为隐藏状态。
 | 
						||
---
 | 
						||
---
 | 
						||
require "Message/MessageTypeProto_pb"
 | 
						||
require "Message/PlayerInfoProto_pb"
 | 
						||
 | 
						||
RedpotManager = {}
 | 
						||
local this = RedpotManager
 | 
						||
 | 
						||
local RPData = require("Modules/Player/RedPointData")
 | 
						||
local BindObjs = {}
 | 
						||
 | 
						||
-- 声明服务器红点类型
 | 
						||
local ServerRedType = {
 | 
						||
    RedPointType.Mail_Server,
 | 
						||
    RedPointType.SecretTer_Boss,
 | 
						||
    RedPointType.Arena_Record,
 | 
						||
    RedPointType.Guild_Apply,
 | 
						||
}
 | 
						||
 | 
						||
function this.Initialize()
 | 
						||
    -- 清除绑定物体
 | 
						||
    BindObjs = {}
 | 
						||
 | 
						||
    -- 初始化数据
 | 
						||
    this.SetServerRedPointData()
 | 
						||
    this.InitRedPointAllRelate()
 | 
						||
    this.RegisterRedCheckFunc()
 | 
						||
 | 
						||
    -- 监听功能开启,结束事件
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.FunctionCtrl.OnFunctionOpen, this.RefreshRedpotByFunctionOpenType)
 | 
						||
    Game.GlobalEvent:AddEvent(GameEvent.FunctionCtrl.OnFunctionClose, this.RefreshRedpotByFunctionOpenType)
 | 
						||
 | 
						||
    this.isDirty = false
 | 
						||
    this.refreshList = {}
 | 
						||
    this.LateUpdateTime = Time.realtimeSinceStartup
 | 
						||
end
 | 
						||
 | 
						||
-- 红点事件分帧刷新
 | 
						||
function this.LateUpdate()
 | 
						||
    
 | 
						||
    if this.isDirty and Time.realtimeSinceStartup - this.LateUpdateTime > 0.1 then
 | 
						||
        if this.refreshList[1] then
 | 
						||
            local rpType = table.remove(this.refreshList, 1)
 | 
						||
            -- 判断是否需要刷新红点显示
 | 
						||
            if RPData:CheckRedPoint(rpType) then
 | 
						||
                this.RefreshRedObjectStatus(rpType)
 | 
						||
            end
 | 
						||
        end
 | 
						||
        -- 没有红点要刷新
 | 
						||
        if not this.refreshList[1] then
 | 
						||
            this.isDirty = false
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 根据功能
 | 
						||
function this.RefreshRedpotByFunctionOpenType(openType)
 | 
						||
    -- 本地红点
 | 
						||
    local checkList = RPData:GetCheckList()
 | 
						||
    for rpType, checkData in pairs(checkList) do
 | 
						||
        if checkData.openType == openType then
 | 
						||
            this.CheckRedPointStatus(rpType)
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 初始化红点关系
 | 
						||
function this.InitRedPointAllRelate()
 | 
						||
    RPData:SetParent(RedPointType.OrdinaryExplore, RedPointType.ExploreMain)
 | 
						||
    RPData:SetParent(RedPointType.HeroExplore, RedPointType.ExploreMain)
 | 
						||
    RPData:SetParent(RedPointType.EpicExplore, RedPointType.ExploreMain)
 | 
						||
    RPData:SetParent(RedPointType.LegendExplore, RedPointType.ExploreMain)
 | 
						||
 | 
						||
    RPData:SetParent(RedPointType.People_Mirror, RedPointType.Vientiane)
 | 
						||
    RPData:SetParent(RedPointType.Trial, RedPointType.Vientiane)
 | 
						||
    -- RPData:SetParent(RedPointType.TrialReward, RedPointType.Trial)
 | 
						||
    RPData:SetParent(RedPointType.EndLess, RedPointType.Vientiane)
 | 
						||
    RPData:SetParent(RedPointType.EndlessPanel, RedPointType.EndLess)
 | 
						||
    RPData:SetParent(RedPointType.LuckyCat_GetReward, RedPointType.LuckyCat)
 | 
						||
    -- 充值
 | 
						||
        --(24暂时关闭)放开这里就行
 | 
						||
    -- RPData:SetParent(RedPointType.Shop_Page_Recharge, RedPointType.Recharge)
 | 
						||
    RPData:SetParent(RedPointType.VIP_SHOP_DETAIL, RedPointType.Shop_Page_Recharge)
 | 
						||
    -- RPData:SetParent(RedPointType.DailyGift, RedPointType.Recharge)
 | 
						||
    -- RPData:SetParent(RedPointType.GrowthPackage, RedPointType.Recharge)--成长礼包
 | 
						||
    -- 主界面商店
 | 
						||
    RPData:SetParent(RedPointType.Shop_Page_General, RedPointType.Shop)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Page_Coin, RedPointType.Shop)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Page_Play, RedPointType.Shop)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Page_Roam, RedPointType.Shop)
 | 
						||
    -- === 商店小页签
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_General, RedPointType.Shop_Page_General)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_Soul, RedPointType.Shop_Page_General)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_Secret, RedPointType.Shop_Page_Coin)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_Arena, RedPointType.Shop_Page_Play)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_Guild, RedPointType.Shop_Page_Play)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Tab_Roam, RedPointType.Shop_Page_Roam)
 | 
						||
    -- ====== 商店功能
 | 
						||
    RPData:SetParent(RedPointType.Shop_General_Check, RedPointType.Shop_Tab_General)
 | 
						||
    RPData:SetParent(RedPointType.Shop_General_Refresh, RedPointType.Shop_Tab_General)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Soul_Refresh, RedPointType.Shop_Tab_Soul)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Secret_Check, RedPointType.Shop_Tab_Secret)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Arena_Check, RedPointType.Shop_Tab_Arena)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Guild_Check, RedPointType.Shop_Tab_Guild)
 | 
						||
    RPData:SetParent(RedPointType.Shop_Roam_Check, RedPointType.Shop_Tab_Roam)
 | 
						||
 | 
						||
    --竞技场
 | 
						||
    RPData:SetParent(RedPointType.Arena_Type_Normal, RedPointType.Arena)
 | 
						||
    RPData:SetParent(RedPointType.Arena_Record, RedPointType.Arena_Type_Normal)
 | 
						||
    -- RPData:SetParent(RedPointType.Arena_Shop, RedPointType.Arena_Type_Normal)
 | 
						||
    RPData:SetParent(RedPointType.Arena_Reward, RedPointType.Arena_Type_Normal)
 | 
						||
    RPData:SetParent(RedPointType.Arena_Free, RedPointType.Arena_Type_Normal)
 | 
						||
 | 
						||
    --工坊
 | 
						||
    RPData:SetParent(RedPointType.Refining_Weapon, RedPointType.Refining)
 | 
						||
    RPData:SetParent(RedPointType.Refining_Armor, RedPointType.Refining)
 | 
						||
 | 
						||
    -- 邮件
 | 
						||
    RPData:SetParent(RedPointType.Mail_Local, RedPointType.Mail)
 | 
						||
    RPData:SetParent(RedPointType.Mail_Server, RedPointType.Mail)
 | 
						||
 | 
						||
    -- 秘境
 | 
						||
    RPData:SetParent(RedPointType.CourtesyDress_Online, RedPointType.SecretTer)
 | 
						||
    RPData:SetParent(RedPointType.CourtesyDress_Chapter, RedPointType.SecretTer)
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_FindTreasure, RedPointType.SecretTer)
 | 
						||
    RPData:SetParent(RedPointType.DailyTask, RedPointType.DailyTaskMain)
 | 
						||
    RPData:SetParent(RedPointType.QinglongSerectTreasure, RedPointType.DailyTaskMain)
 | 
						||
    RPData:SetParent(RedPointType.QinglongSerectTreasureTrail, RedPointType.DailyTaskMain)
 | 
						||
    RPData:SetParent(RedPointType.FightLevel, RedPointType.SecretTer)
 | 
						||
    -- RPData:SetParent(RedPointType.QinglongSerectTreasure, RedPointType.TreasureOfSl)
 | 
						||
    -- RPData:SetParent(RedPointType.QinglongSerectTreasureTrail, RedPointType.TreasureOfSl)
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_MaxBoxReward, RedPointType.SecretTer)
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_HaveFreeTime, RedPointType.SecretTer)
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_IsCanFight, RedPointType.SecretTer)
 | 
						||
    --逍遥游
 | 
						||
    RPData:SetParent(RedPointType.XiaoYaoYouRedPoint, RedPointType.SecretTer)
 | 
						||
    -- 外敌
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_Boss, RedPointType.Alien)
 | 
						||
    RPData:SetParent(RedPointType.SecretTer_CallAlianInvasionTime, RedPointType.Alien)
 | 
						||
    -- --剧情副本
 | 
						||
    -- RPData:SetParent(RedPointType.NormalExplore_OpenMap, RedPointType.OrdinaryExplore)
 | 
						||
    -- RPData:SetParent(RedPointType.NormalExplore_GetStarReward, RedPointType.OrdinaryExplore)
 | 
						||
    -- --试炼副本
 | 
						||
    -- RPData:SetParent(RedPointType.EpicExplore_OpenCarbon, RedPointType.EpicExplore)
 | 
						||
    -- RPData:SetParent(RedPointType.EpicExplore_GetReward, RedPointType.EpicExplore)
 | 
						||
    RPData:SetParent(RedPointType.EpicExplore_LevleReward, RedPointType.EpicExplore)
 | 
						||
    RPData:SetParent(RedPointType.EpicExplore_MoppingUp, RedPointType.EpicExplore)
 | 
						||
    -- --精英副本
 | 
						||
    -- RPData:SetParent(RedPointType.HeroExplore_OpenMap, RedPointType.HeroExplore)
 | 
						||
    -- RPData:SetParent(RedPointType.HeroExplore_Feats, RedPointType.HeroExplore)
 | 
						||
    --秘盒红点
 | 
						||
    RPData:SetParent(RedPointType.SecretBox_Red1, RedPointType.SecretBox)
 | 
						||
    --角色招募红点
 | 
						||
    -- RPData:SetParent(RedPointType.Recruit_Red, RedPointType.Recruit)
 | 
						||
    --普通召唤红点
 | 
						||
    RPData:SetParent(RedPointType.Recruit_Normal, RedPointType.Recruit)
 | 
						||
    -- --运营红点
 | 
						||
    -- RPData:SetParent(RedPointType.GrowthGift, RedPointType.Operating)
 | 
						||
    -- RPData:SetParent(RedPointType.CumulativeSignIn, RedPointType.Operating)
 | 
						||
    -- RPData:SetParent(RedPointType.WeekGiftPage, RedPointType.Operating)
 | 
						||
    -- RPData:SetParent(RedPointType.MonthGiftPage, RedPointType.Operating)
 | 
						||
    -- --RPData:SetParent(RedPointType.MonthCard, RedPointType.Operating)
 | 
						||
 | 
						||
    --主题活动
 | 
						||
    RPData:SetParent(RedPointType.TimeLimited, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.TimeLimitWish, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.QianKunBox, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.DynamicActTask, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.DynamicActRecharge, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.Celebration, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.LingShouBaoGe, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.ShengXingYouLi, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.XiangYaoDuoBao, RedPointType.DynamicActivity)
 | 
						||
    RPData:SetParent(RedPointType.XinJiangLaiXi, RedPointType.DynamicActivity)
 | 
						||
 | 
						||
    -- 好友红点
 | 
						||
    RPData:SetParent(RedPointType.Friend_GetAllReward, RedPointType.Friend_Reward)
 | 
						||
    RPData:SetParent(RedPointType.Friend_Reward, RedPointType.Friend)
 | 
						||
    RPData:SetParent(RedPointType.Friend_Application, RedPointType.Friend)
 | 
						||
    -- 设置界面红点
 | 
						||
    RPData:SetParent(RedPointType.Setting_Head, RedPointType.Setting)
 | 
						||
    RPData:SetParent(RedPointType.Setting_Ride, RedPointType.Setting)
 | 
						||
    RPData:SetParent(RedPointType.Setting_Title, RedPointType.Setting)
 | 
						||
    -- 头像界面红点
 | 
						||
    RPData:SetParent(RedPointType.HeadChange_Frame, RedPointType.Setting_Head)
 | 
						||
    RPData:SetParent(RedPointType.HeadChange_Head, RedPointType.Setting_Head)
 | 
						||
 | 
						||
    --限时活动(达人)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_FastExplore, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_AreaExper, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_UpStarExper, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_EquipExper, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_GoldExper, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_FightExper, RedPointType.Expert)
 | 
						||
    --RPData:SetParent(RedPointType.Expert_EnergyExper, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_AccumulativeRecharge, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_Talisman, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_SoulPrint, RedPointType.Expert)
 | 
						||
    --RPData:SetParent(RedPointType.LuckyCat, RedPointType.Expert)
 | 
						||
    --RPData:SetParent(RedPointType.Expert_WeekCard, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.HERO_STAR_GIFT, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_FindTreasure, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_LuckyTurn, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_Recruit, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_SecretBox, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_UpLv, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.ContinuityRecharge, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_Expedition, RedPointType.Expert)
 | 
						||
    -- RPData:SetParent(RedPointType.Expert_Slhj, RedPointType.Expert)
 | 
						||
    RPData:SetParent(RedPointType.Expert_LimitExchange, RedPointType.DynamicActivity)
 | 
						||
    --战力排行
 | 
						||
    RPData:SetParent(RedPointType.WarPowerSort_Sort, RedPointType.WarPowerSort)
 | 
						||
    --背包
 | 
						||
    RPData:SetParent(RedPointType.Bag_HeroDebris, RedPointType.Bag)
 | 
						||
    RPData:SetParent(RedPointType.Bag_BoxAndBlueprint, RedPointType.Bag)
 | 
						||
    -- 公会
 | 
						||
    RPData:SetParent(RedPointType.Guild_House, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_House_Apply, RedPointType.Guild_House)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Apply, RedPointType.Guild_House_Apply)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Shop, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Boss, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_RedPacket, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Fete, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Aid, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_AidMy, RedPointType.Guild_Aid)
 | 
						||
    RPData:SetParent(RedPointType.Guild_AidGuild, RedPointType.Guild_Aid)
 | 
						||
    RPData:SetParent(RedPointType.Guild_AidBox, RedPointType.Guild_Aid)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Transcript, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_Skill, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guild_DeathPos, RedPointType.Guild)
 | 
						||
    RPData:SetParent(RedPointType.Guid_SendPackage, RedPointType.Guild_RedPacket)
 | 
						||
    RPData:SetParent(RedPointType.Guid_GetPackage, RedPointType.Guild_RedPacket)
 | 
						||
    RPData:SetParent(RedPointType.Chat_Friend, RedPointType.Chat)
 | 
						||
    -- 东海寻仙
 | 
						||
    RPData:SetParent(RedPointType.FindFairy_OneView, RedPointType.FindFairy)
 | 
						||
    RPData:SetParent(RedPointType.FindFairy_ThreeView, RedPointType.FindFairy)
 | 
						||
    RPData:SetParent(RedPointType.FindFairy_FourView, RedPointType.FindFairy)
 | 
						||
    -- 成就
 | 
						||
    RPData:SetParent(RedPointType.Achievement_Main, RedPointType.DailyTaskMain)
 | 
						||
    --灵兽
 | 
						||
    -- RPData:SetParent(RedPointType.Pokemon_UpLv, RedPointType.PokemonMainCity)--嫌烦去掉
 | 
						||
    RPData:SetParent(RedPointType.Pokemon_UpStar, RedPointType.PokemonMainCity)
 | 
						||
    RPData:SetParent(RedPointType.Pokemon_CanUpZhen, RedPointType.PokemonMainCity)
 | 
						||
    RPData:SetParent(RedPointType.Pokemon_Fetter, RedPointType.PokemonMainCity)
 | 
						||
    RPData:SetParent(RedPointType.Pokemon_Recruit, RedPointType.PokemonMainCity)
 | 
						||
    RPData:SetParent(RedPointType.Pokemon_ChipCompound, RedPointType.PokemonMainCity)
 | 
						||
 | 
						||
    --鸿蒙阵
 | 
						||
    RPData:SetParent(RedPointType.HongMeng_Evory,RedPointType.HongMeng)
 | 
						||
    RPData:SetParent(RedPointType.HongMeng_OpenBox,RedPointType.HongMeng)
 | 
						||
    RPData:SetParent(RedPointType.HongMeng_UpTower,RedPointType.HongMeng)
 | 
						||
 | 
						||
    RPData:SetParent(RedPointType.Hero_Fetter,RedPointType.TianShuMiJuan)
 | 
						||
    RPData:SetParent(RedPointType.SoulPrint_Fetter,RedPointType.TianShuMiJuan)
 | 
						||
    RPData:SetParent(RedPointType.TianShuPokemon_Fetter,RedPointType.TianShuMiJuan)
 | 
						||
 | 
						||
    --牛气冲天
 | 
						||
    RPData:SetParent(RedPointType.NiuQiChongTian_1,RedPointType.NiuQiChongTian)
 | 
						||
    RPData:SetParent(RedPointType.NiuQiChongTian_2,RedPointType.NiuQiChongTian)
 | 
						||
    RPData:SetParent(RedPointType.NiuQiChongTian_3,RedPointType.NiuQiChongTian)
 | 
						||
    RPData:SetParent(RedPointType.NiuQiChongTian_4,RedPointType.NiuQiChongTian)
 | 
						||
 | 
						||
    RPData:SetParent(RedPointType.LimitExchange_GoExchange,RedPointType.Expert_LimitExchange)
 | 
						||
    --十五日登录
 | 
						||
    RPData:SetParent(RedPointType.FifteenDayGift_1,RedPointType.FifteenDayGift)
 | 
						||
    --化虚坛
 | 
						||
    RPData:SetParent(RedPointType.Huaxutan_CompoundHero,RedPointType.Huaxutan)
 | 
						||
    --主角修行
 | 
						||
    RPData:SetParent(RedPointType.Practice_upgrade,RedPointType.Practice)
 | 
						||
    RPData:SetParent(RedPointType.Practice_imprint,RedPointType.Practice)
 | 
						||
    --主界面右上角
 | 
						||
    RPData:SetParent(RedPointType.FirstRecharge,RedPointType.RightUp2)
 | 
						||
    RPData:SetParent(RedPointType.DailyRecharge,RedPointType.RightUp2)
 | 
						||
    for k,v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityGroups)) do
 | 
						||
        if v.RpType > 0 and v.RpTypeParent > 0 then
 | 
						||
            RPData:SetParent(v.RpType,v.RpTypeParent)
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 注册红点检测方法
 | 
						||
function this.RegisterRedCheckFunc()
 | 
						||
    -- 服务器红点注册解锁类型
 | 
						||
    RPData:AddCheckFunc(RedPointType.Mail_Server, nil, FUNCTION_OPEN_TYPE.EMAIL)
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_Boss, nil, FUNCTION_OPEN_TYPE.FIGHT_ALIEN)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Arena_Record, nil, FUNCTION_OPEN_TYPE.ARENA)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Apply, nil, FUNCTION_OPEN_TYPE.GUILD)
 | 
						||
 | 
						||
    -- 普通红点检测方法注册
 | 
						||
    RPData:AddCheckFunc(RedPointType.CourtesyDress_SevenDay,ActivityGiftManager.CheckSevenDayRed)
 | 
						||
    RPData:AddCheckFunc(RedPointType.CourtesyDress_Chapter, ActivityGiftManager.CheckChapterRed)
 | 
						||
    RPData:AddCheckFunc(RedPointType.CourtesyDress_Online, ActivityGiftManager.CheckOnlineRed)
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_FindTreasure, FindTreasureManager.RefreshFindTreasureRedPoint)
 | 
						||
    
 | 
						||
    RPData:AddCheckFunc(RedPointType.DailyTask, RedPointManager.GetRedPointMissionDaily)
 | 
						||
    RPData:AddCheckFunc(RedPointType.LuckyCat_GetReward,LuckyCatManager.CheckIsShowRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.DiffMonster, DiffMonsterManager.GetDiffMonsterRedPointStatus, FUNCTION_OPEN_TYPE.DIFFER_DEMONS)
 | 
						||
 | 
						||
    --RPData:AddCheckFunc(RedPointType.TreasureOfSl, TreasureOfSomebodyManagerV2.GetTreasureRedPointState)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.Mail_Local, MailManager.GetMailRedPointState)
 | 
						||
    -- 
 | 
						||
    RPData:AddCheckFunc(RedPointType.Role, HeroManager.GetFormationHeroRedPoint)
 | 
						||
 | 
						||
    --竞技场部分红点
 | 
						||
    RPData:AddCheckFunc(RedPointType.Arena_Free, ArenaManager.FreeBattleRedCheck, FUNCTION_OPEN_TYPE.ARENA)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Arena_Reward, ArenaManager.RewardBoxRedCheck, FUNCTION_OPEN_TYPE.ARENA)
 | 
						||
 | 
						||
    ---=== 商店相关红点
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.Arena_Shop, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_General_Check, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_General_Refresh, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_Soul_Refresh, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_Secret_Check, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_Arena_Check, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_Roam_Check, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Shop_Guild_Check, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Shop, ShopManager.ShopRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Transcript, GuildTranscriptManager.GetRedPointState)
 | 
						||
    RPData:AddCheckFunc(RedPointType.VIP_SHOP_DETAIL, VipManager.CheckRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.VipPrivilege, VipManager.CheckNewVipRP)
 | 
						||
    RPData:AddCheckFunc(RedPointType.GrowthGift, OperatingManager.GetGrowthRedPointState)
 | 
						||
    RPData:AddCheckFunc(RedPointType.FirstRecharge, FirstRechargeManager.GetFirstRechargeRedPointStatus)
 | 
						||
    RPData:AddCheckFunc(RedPointType.DailyGift, ShopManager.HaveFreeBaby)
 | 
						||
    RPData:AddCheckFunc(RedPointType.GrowthPackage, VipManager.CheckGrowthPackagePointStatus)--成长礼包
 | 
						||
 | 
						||
    --工坊
 | 
						||
    RPData:AddCheckFunc(RedPointType.Refining_Weapon, WorkShopManager.GetWorkShopRedPointState)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Refining_Armor, WorkShopManager.GetWorkShopRedPointState)
 | 
						||
    --好友
 | 
						||
    RPData:AddCheckFunc(RedPointType.Friend_GetAllReward, GoodFriendManager.FriendRewardRedPointShow,FUNCTION_OPEN_TYPE.GOODFRIEND)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Friend_Application, GoodFriendManager.FriendApplicationRedPointShow,FUNCTION_OPEN_TYPE.GOODFRIEND)
 | 
						||
    --秘境
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_MaxBoxReward, AdventureManager.BoxMaxReward,FUNCTION_OPEN_TYPE.ADVENTURE)
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_HaveFreeTime, AdventureManager.HaveFreeTime,FUNCTION_OPEN_TYPE.ADVENTURE)
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_IsCanFight, FightPointPassManager.IsShowFightRP)
 | 
						||
    -- 外敌
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretTer_CallAlianInvasionTime, AdventureManager.HaveCallAlianInvasionTime,FUNCTION_OPEN_TYPE.FIGHT_ALIEN)
 | 
						||
    -- --普通副本
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.NormalExplore_OpenMap, CarbonManager.CarbonRedShow,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.NormalExplore_GetStarReward, CarbonManager.CarbonGetRewardRedShow,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    -- --试炼副本
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.EpicExplore_OpenCarbon, CarbonManager.CarbonTrialOpen,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.EpicExplore_GetReward, CarbonManager.CheckTrialRedPoint,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    -- --精英本
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.HeroExplore_OpenMap, CarbonManager.CarbonHeroRedShow,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.HeroExplore_Feats, CarbonManager.CheckHeroRedPoint,FUNCTION_OPEN_TYPE.NORMALCARBON)
 | 
						||
    --秘盒红点
 | 
						||
    RPData:AddCheckFunc(RedPointType.SecretBox_Red1, SecretBoxManager.CheckSecretRedPoint,FUNCTION_OPEN_TYPE.SECRETBOX)
 | 
						||
    --角色招募红点
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.Recruit_Red, RecruitManager.CheckRecuritRedPoint,FUNCTION_OPEN_TYPE.RECURITY)
 | 
						||
    --普通召唤红点
 | 
						||
    RPData:AddCheckFunc(RedPointType.Recruit_Normal, RecruitManager.GetAllRecruitBtnRedpoint)--RecruitManager.CheckRecuritNormalPoint,FUNCTION_OPEN_TYPE.RECURITY)
 | 
						||
    --七日狂欢红点
 | 
						||
    RPData:AddCheckFunc(RedPointType.SevenDayCarnival, SevenDayCarnivalManager.GetSevenDayCarnivalRedPoint)
 | 
						||
    --每日首充
 | 
						||
    RPData:AddCheckFunc(RedPointType.DailyRecharge, DailyRechargeManager.CheckRedPoint, FUNCTION_OPEN_TYPE.DailyRecharge)
 | 
						||
    --累计签到
 | 
						||
    RPData:AddCheckFunc(RedPointType.CumulativeSignIn,OperatingManager.GetSignInRedPointStatus)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Setting_Ride,PlayerManager.GetPlayerRideRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Setting_Title,PlayerManager.GetPlayerTitleRedPoint)
 | 
						||
    --月卡
 | 
						||
    --(24暂时关闭)放开这里就行
 | 
						||
    RPData:AddCheckFunc(RedPointType.MonthCard,OperatingManager.AllRefreshMonthCardRedPoint)
 | 
						||
    --连续充值
 | 
						||
    RPData:AddCheckFunc(RedPointType.ContinuityRecharge,ActivityGiftManager.GetContinuityRechargeRedPoint)
 | 
						||
    -- 头像红点
 | 
						||
    RPData:AddCheckFunc(RedPointType.HeadChange_Frame, HeadManager.CheckHeadRedPot)
 | 
						||
    RPData:AddCheckFunc(RedPointType.HeadChange_Head, HeadManager.CheckHeadRedPot)
 | 
						||
    --限时活动
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_FastExplore, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_AreaExper, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_UpStarExper, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_EquipExper,ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_GoldExper, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_FightExper, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    --RPData:AddCheckFunc(RedPointType.Expert_EnergyExper, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    --RPData:AddCheckFunc(RedPointType.Expert_AccumulativeRecharge, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_FindTreasure, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_LuckyTurn, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_Recruit, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_SecretBox, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_UpLv, ActivityGiftManager.ExperyUpLvActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_Talisman, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_SoulPrint, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.LuckyTurn, LuckyTurnTableManager.ReturnRedPointState)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_WeekCard, ActivityGiftManager.WeedCardActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_Expedition, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_Slhj, ActivityGiftManager.ExpterActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expert_YunYouMan, ActivityGiftManager.CheckYunYouManRedPoint)
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.HERO_STAR_GIFT, OperatingManager.IsHeroStarGiftActive)
 | 
						||
    --战力排行
 | 
						||
    RPData:AddCheckFunc(RedPointType.WarPowerSort_Sort, ActivityGiftManager.WarPowerSortActivityIsShowRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.RankingSort, RankingManager.RefreshRedPoint)
 | 
						||
    --背包
 | 
						||
    RPData:AddCheckFunc(RedPointType.Bag_HeroDebris, BagManager.GetBagRedPointIsCanCompoundDebris)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Bag_BoxAndBlueprint, BagManager.GetBagRedPointIsCanOpenBoxAndBlueprint)
 | 
						||
 | 
						||
    -- upView
 | 
						||
    RPData:AddCheckFunc(RedPointType.UpView_Gold, ShopManager.CheckGoldIsFree)
 | 
						||
 | 
						||
    -- chatview
 | 
						||
    RPData:AddCheckFunc(RedPointType.Chat_Friend, FriendChatManager.CheckRedPotShow)
 | 
						||
 | 
						||
    -- 剑影仙踪
 | 
						||
    RPData:AddCheckFunc(RedPointType.SupremeHero, ActivityGiftManager.CheckSupremeHeroRedPoint)
 | 
						||
    -- 东海寻仙
 | 
						||
    RPData:AddCheckFunc(RedPointType.FindFairy_OneView, FindFairyManager.CheckRedPoint)
 | 
						||
    -- RPData:AddCheckFunc(RedPointType.FindFairy_ThreeView, FindFairyManager.CheckFindFairyUpStarRedPoint)--(不用了)
 | 
						||
    RPData:AddCheckFunc(RedPointType.FindFairy_FourView, FindFairyManager.CheckFindFairyCeremonyRedPoint)
 | 
						||
    -- 公会boss
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Boss, GuildBossManager.CheckGuildBossRedPoint, FUNCTION_OPEN_TYPE.GUILD_BOSS)
 | 
						||
    --公会车迟
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_CarDeleay, GuildCarDelayManager.RefreshAllRedPoint)
 | 
						||
    --公会援助
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_AidMy, MyGuildManager.GetMyGuildHelpRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_AidGuild, MyGuildManager.GetMyAidOtherGuildHelpRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_AidBox, MyGuildManager.GetGuildHelpBoxRedPoint)
 | 
						||
    --公会技能
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Skill, GuildSkillManager.RefreshAllGuildSkillRedPoint)
 | 
						||
    -- 公会红包
 | 
						||
    --RPData:AddCheckFunc(RedPointType.Guild_RedPacket,GuildRedPacketManager.CheckGuildRedPacketRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guid_SendPackage,GuildRedPacketManager.CheckGuildRedPacketRedPoint,FUNCTION_OPEN_TYPE.GUILD)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guid_GetPackage,GuildRedPacketManager.CheckIsCanGetPackage)
 | 
						||
    --公会祭祀
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_Fete,MyGuildManager.CheckGuildFeteRedPoint)
 | 
						||
    --公会十绝阵
 | 
						||
    RPData:AddCheckFunc(RedPointType.Guild_DeathPos,DeathPosManager.CheckDeathPosRedPoint)
 | 
						||
    -- 成就
 | 
						||
    RPData:AddCheckFunc(RedPointType.Achievement_Main,TaskManager.GetAchievementState)
 | 
						||
    --天宫秘宝
 | 
						||
    RPData:AddCheckFunc(RedPointType.Expedition_Treasure,TreasureOfHeavenManger.RedPoint)
 | 
						||
    --主题活动
 | 
						||
    RPData:AddCheckFunc(RedPointType.TimeLimited,OperatingManager.GetTimeLimitRedPointStatus)
 | 
						||
    RPData:AddCheckFunc(RedPointType.TimeLimitWish,OperatingManager.GetWishDrawRedPointStatus)
 | 
						||
    RPData:AddCheckFunc(RedPointType.QianKunBox,OperatingManager.GetQiankunBoxRedPointStatus)
 | 
						||
    RPData:AddCheckFunc(RedPointType.DynamicActTask, OperatingManager.CheckDynamicActTaskRed)
 | 
						||
    RPData:AddCheckFunc(RedPointType.DynamicActRecharge, OperatingManager.CheckLeiJiChongZhiRedData)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Celebration, DynamicActivityManager.SheJiCheckRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.LingShouBaoGe, DynamicActivityManager.LingShouUpCheckRed)
 | 
						||
    RPData:AddCheckFunc(RedPointType.ShengXingYouLi, DynamicActivityManager.CheckShengXingYouLiRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.XiangYaoDuoBao, DynamicActivityManager.CheckXiangYaoDuoBaoRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.XinJiangLaiXi, DynamicActivityManager.CheckXinJiangLaiXiRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.OrdinaryExplore, CarbonManager.CarbonRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.HeroExplore, CarbonManager.CarbonRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.EpicExplore_LevleReward, CarbonManager.CarbonRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.EpicExplore_MoppingUp, MonsterCampManager.CarbonRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.LegendExplore, CarbonManager.CarbonRedCheck)
 | 
						||
 | 
						||
    --万象境副本
 | 
						||
    RPData:AddCheckFunc(RedPointType.People_Mirror, XuanYuanMirrorManager.CarbonRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Trial, MapTrialManager.TrialRedCheck)
 | 
						||
    RPData:AddCheckFunc(RedPointType.TrialReward, MapTrialManager.TrialRewardRedPointCheck)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.QinglongSerectTreasure, QinglongSerectTreasureManager.GetQinglongSerectTreasureRedPot)
 | 
						||
    RPData:AddCheckFunc(RedPointType.QinglongSerectTreasureTrail, QinglongSerectTreasureManager.GetSerectTreasureTrailRedPot)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.FightLevel, FightLevelManager.GetChapterRewardBoxRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.WeekGiftPage,OperatingManager.CheckWeekGiftPageRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.MonthGiftPage,OperatingManager.CheckMonthGiftPageRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.XiaoYaoYouRedPoint, XiaoYaoManager.CheckRedPoint2)
 | 
						||
    --灵兽
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_UpLv,PokemonManager.RefreshPokemonUpLvRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_UpStar,PokemonManager.RefreshPokemonUpStarRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_CanUpZhen,PokemonManager.RefreshPokemonCanUpZhenRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_Fetter,PokemonManager.RefreshPokemonFetterRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_Recruit,PokemonManager.RefreshPokemonRecruitRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_ChipCompound,PokemonManager.PokemonChipCompoundRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.Pokemon_Fetter,PokemonManager.RefreshPokemonFetterRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Hero_Fetter,TianShuMiJuanManger.CheckRedPointType)
 | 
						||
    RPData:AddCheckFunc(RedPointType.SoulPrint_Fetter,TianShuMiJuanManger.CheckRedPointType)
 | 
						||
    RPData:AddCheckFunc(RedPointType.TianShuPokemon_Fetter,TianShuMiJuanManger.CheckRedPointType)
 | 
						||
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.HongMeng_Evory,HarmonyManager.RefreshEnvoyPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.HongMeng_OpenBox,HarmonyManager.RefreshOpenBoxPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.HongMeng_UpTower,HarmonyManager.RefreshUpTowerPoint)
 | 
						||
 | 
						||
    --牛气冲天
 | 
						||
    RPData:AddCheckFunc(RedPointType.NiuQiChongTian_1,NiuQiChongTianManager.CheckNiuQiChongTianRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.NiuQiChongTian_2,NiuQiChongTianManager.CheckNiuQiChongTianRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.NiuQiChongTian_3,NiuQiChongTianManager.CheckNiuQiChongTianRedPoint)
 | 
						||
    RPData:AddCheckFunc(RedPointType.NiuQiChongTian_4,NiuQiChongTianManager.CheckNiuQiChongTianRedPoint)
 | 
						||
 | 
						||
    --福星高照
 | 
						||
    RPData:AddCheckFunc(RedPointType.FuXingGaoZhao,FuXingGaoZhaoManager.CheckRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.LimitExchange_GoExchange,ActivityGiftManager.IsExchangeRedShow)
 | 
						||
    --十五日登陆
 | 
						||
    RPData:AddCheckFunc(RedPointType.FifteenDayGift_1,FifteenDayGiftManager.CheckRedPoint)
 | 
						||
 | 
						||
    RPData:AddCheckFunc(RedPointType.wujinBianDui,EndLessMapManager.CheckCanUseHeroNew)
 | 
						||
    RPData:AddCheckFunc(RedPointType.wujinTreasure,EndLessMapManager.CheckoutRedPointTreasure)
 | 
						||
    RPData:AddCheckFunc(RedPointType.wujinMission,EndLessMapManager.CheckoutRedPointMission)
 | 
						||
    RPData:AddCheckFunc(RedPointType.EndlessPanel, EndLessMapManager.ChecRedPointEndLess)
 | 
						||
    --化虚坛英雄合成
 | 
						||
    RPData:AddCheckFunc(RedPointType.Huaxutan_CompoundHero,HeroManager.GetAllHeroCompoundRedPoint)
 | 
						||
    --主角修行
 | 
						||
    RPData:AddCheckFunc(RedPointType.Practice_upgrade,PracticeManager.PracticeCheckUpgrade,FUNCTION_OPEN_TYPE.PRACTICE)
 | 
						||
    RPData:AddCheckFunc(RedPointType.Practice_imprint,PracticeManager.PracticeCheckImprint,FUNCTION_OPEN_TYPE.PRACTICE)
 | 
						||
    RPData:AddCheckFunc(RedPointType.chaofanrushengRed,ActivityGiftManager.CheckRedPointChaofanRuSheng)
 | 
						||
end
 | 
						||
 | 
						||
 | 
						||
-- 向红点绑定物体
 | 
						||
function this.BindObject(rpType, rpObj)    
 | 
						||
    if not rpObj then      
 | 
						||
        return
 | 
						||
    end
 | 
						||
    BindObjs[rpType] = BindObjs[rpType] or {}
 | 
						||
    table.insert(BindObjs[rpType], rpObj)
 | 
						||
    --Log("红点类型 = "..rpType..", 绑定了新物体,当前绑定的物体数量为 = "..#BindObjs[rpType])
 | 
						||
    -- 根据状态设置红点现隐
 | 
						||
    rpObj:SetActive(this.GetRedPointStatus(rpType) == RedPointStatus.Show)
 | 
						||
end
 | 
						||
 | 
						||
-- 解绑物体
 | 
						||
function this.ClearObject(rpType, rpObj)
 | 
						||
    if rpObj then
 | 
						||
        local indexToKill = nil
 | 
						||
        if not BindObjs or not BindObjs[rpType] then
 | 
						||
            return
 | 
						||
        end
 | 
						||
        for index, obj in pairs(BindObjs[rpType]) do
 | 
						||
            if rpObj == obj then
 | 
						||
                indexToKill = index
 | 
						||
                break
 | 
						||
            end
 | 
						||
        end
 | 
						||
        if indexToKill then
 | 
						||
            table.remove(BindObjs[rpType], indexToKill)
 | 
						||
            --Log("红点类型 = "..rpType..", 解绑了一个物体,当前绑定的物体数量为 = "..#BindObjs[rpType])
 | 
						||
        else
 | 
						||
            LogRed("红点类型 ".. rpType .. ",在该红点绑定物体中没有找到要解除绑定的物体,请检查")
 | 
						||
        end
 | 
						||
    else
 | 
						||
        if BindObjs then
 | 
						||
            BindObjs[rpType] = {}
 | 
						||
        end
 | 
						||
        LogRed("红点类型 = "..rpType..", 解绑了所有物体,当前绑定的物体数量为 = "..#BindObjs[rpType])
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
-- 设置服务器红点数据
 | 
						||
function this.SetServerRedPointData(list)
 | 
						||
    local serverList = {}
 | 
						||
    for _, rpType in ipairs(ServerRedType) do
 | 
						||
        serverList[rpType] = 0
 | 
						||
    end
 | 
						||
    -- list中保存要显示的红点
 | 
						||
    if list then
 | 
						||
        for _, rpType in ipairs(list) do
 | 
						||
            Log("服务器红点数据::::" .. rpType)
 | 
						||
            serverList[rpType] = 1
 | 
						||
        end
 | 
						||
    end
 | 
						||
    RPData:SetServerRedData(serverList)
 | 
						||
end
 | 
						||
 | 
						||
--- 获取红点状态
 | 
						||
function this.GetRedPointStatus(rpType)
 | 
						||
    local value = RPData:GetRedValue(rpType)
 | 
						||
    if not value then
 | 
						||
        return RedPointStatus.Hide
 | 
						||
    end
 | 
						||
    if value == 0 then
 | 
						||
        return RedPointStatus.Hide
 | 
						||
    end
 | 
						||
    return RedPointStatus.Show
 | 
						||
end
 | 
						||
 | 
						||
--- 设置红点状态
 | 
						||
function this.SetRedPointStatus(rpType, status)
 | 
						||
    local value = status == RedPointStatus.Show and 1 or 0
 | 
						||
    local result = RPData:SetRedValue(rpType, value)
 | 
						||
    -- 判断是否设置成功
 | 
						||
    if result then
 | 
						||
        this.RefreshRedObjectStatus(rpType)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
--- 设置服务器红点状态
 | 
						||
function this.SetServerRedPointStatus(rpType, status)
 | 
						||
    local value = status == RedPointStatus.Show and 1 or 0
 | 
						||
    local result = RPData:SetServerRed(rpType, value)
 | 
						||
    -- 判断是否设置成功
 | 
						||
    if result then
 | 
						||
        this.CheckRedPointStatus(rpType)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
--- 检测红点状态
 | 
						||
function this.CheckRedPointStatus(rpType)
 | 
						||
    function _CheckRepeat(rpType)
 | 
						||
        
 | 
						||
    end
 | 
						||
 | 
						||
 | 
						||
    if this.isDirty then
 | 
						||
        if not table.indexof(this.refreshList, rpType) then
 | 
						||
            table.insert(this.refreshList, rpType)
 | 
						||
        end
 | 
						||
    else
 | 
						||
        --
 | 
						||
        this.isDirty = true
 | 
						||
        this.LateUpdateTime = Time.realtimeSinceStartup
 | 
						||
        -- 
 | 
						||
        if not table.indexof(this.refreshList, rpType) then
 | 
						||
            table.insert(this.refreshList, rpType)
 | 
						||
        end
 | 
						||
    end
 | 
						||
    -- -- 判断是否需要刷新红点显示
 | 
						||
    -- if RPData:CheckRedPoint(rpType) then
 | 
						||
    --     this.RefreshRedObjectStatus(rpType)
 | 
						||
    -- end
 | 
						||
end
 | 
						||
 | 
						||
--- 检测所有红点状态
 | 
						||
function this.CheckAllRedPointStatus()
 | 
						||
    -- 服务器红点
 | 
						||
    local serverList = RPData:GetServerRedData()
 | 
						||
    for rpType, _ in pairs(serverList) do
 | 
						||
        this.CheckRedPointStatus(rpType)
 | 
						||
    end
 | 
						||
    -- 本地红点
 | 
						||
    local checkList = RPData:GetCheckList()
 | 
						||
    for rpType, _ in pairs(checkList) do
 | 
						||
        this.CheckRedPointStatus(rpType)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
--- 刷新对应物体的显示
 | 
						||
function this.RefreshRedObjectStatus(rpType)
 | 
						||
    -- 检测红点状态
 | 
						||
    local state = this.GetRedPointStatus(rpType)
 | 
						||
    if BindObjs[rpType] then
 | 
						||
        table.walk(BindObjs[rpType], function(bindObj)
 | 
						||
            if bindObj and bindObj.gameObject then
 | 
						||
                bindObj.gameObject:SetActive(state == RedPointStatus.Show)
 | 
						||
            else
 | 
						||
                Log("红点类型 ".. rpType ..", 对应红点对象已销毁,但未清除绑定,请检查代码")
 | 
						||
            end
 | 
						||
        end)
 | 
						||
    end
 | 
						||
 | 
						||
    -- 向父级递归
 | 
						||
    local parent = RPData:GetRedParent(rpType)
 | 
						||
    if parent then
 | 
						||
        this.RefreshRedObjectStatus(parent)
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
function this.ClearNullReference()
 | 
						||
    for _, objs in pairs(BindObjs) do
 | 
						||
        local indexToKill = {}
 | 
						||
        for k, obj in pairs(objs) do
 | 
						||
            if IsNull(obj) then
 | 
						||
                table.insert(indexToKill, k)
 | 
						||
            end
 | 
						||
        end
 | 
						||
        for _, index in ipairs(indexToKill) do
 | 
						||
            objs[index] = nil
 | 
						||
        end
 | 
						||
    end
 | 
						||
end
 | 
						||
 | 
						||
return this |