|
|
- CustomActivityModel = CustomActivityModel or BaseClass(BaseModel)
-
- --定制活动主类型(对应后台配置)
- CustomActivityModel.CustomActBaseType = {
- LIMIT_GIFT = 3, --限购礼包
- MONEY_COPY = 5, --彩钻复制机
- DAILY_RECHARGE = 6, --每日累充
- KFACTIVITY_RECHARGE = 7, --开服累充
- RUSH_RANK = 10, --开服冲榜
- POWER_TURNTABLE = 11, --源能转盘
- HOPE_GIFT = 19, --臻享礼包
- SAKURA_GIFT = 20, --源樱之礼
- ACC_CONSUME = 30, --累计消费
- ZERO_GIFT = 36, --0元礼包
- RECHARGE_RANK = 33, --充值排行
- SERVER_CONSUME = 39, --本服消费
- SINGLE_RECHARGE = 48, --单笔充值
- MAINLAND_JOURNEY = 50, --大陆征途
- FORTUNE_CAT = 64, --招财猫
- KFACTIVITY_LIMIT_SHOP = 65, --抢购商城
- GUILD_SPEED = 66, --社团竞榜
- FOSTER_STAGE = 67, --开服进阶
- CONTINUE_RECHARGE = 68, --连充豪礼
- MERCENARY_SUPPLY = 69, --佣兵补给
- KF_GROUP_BUYING = 70, --开服团购
- MOBILIZATION = 71, --全民动员
- MONOPOLY = 72, --大富翁
- ADVERTISEMENT = 73, --活动宣传
- CONTRACT = 74, --万物宝典
- INVEST_ACT = 75, --投资活动
- LIMIT_SECKILL = 76, --限时秒杀
- DISCOUNT_FULL_CUT = 77, --折扣满减
- HAPPY_RED_BAG = 78, --惊喜红包
- COM_RANK = 79, --通用排行
- LOGIN_PASS = 80, --登录通行证
- LIVELY_PASS = 81, --活跃通行证
- HIGH_EXCHANGE = 82, --嗨点兑换
-
- --主题活动相关
- OPERATE_ACTIVITY = 99, --主题活动
- REWARD_SHOW = 100, --资源展示
- BOSS_DROP = 101, --BOSS本服掉落
- DUN_MUL_DROP = 102, --副本多倍掉落
- SINGLE_DAY_RECHARGE = 103, --单日充值
- BOSS_TREASURE = 104, --幻魔宝典
- HIGH_POINT = 105, --嗨点
- E_DAY_LOGIN = 106, --每日登录
- LUCKY_TURNTABLE = 107, --幸运轮盘
- SCRAPING_CRAD = 108, --刮刮卡
- GET_LUCKY_BAG = 109, --抢福袋
- GET_RED_BAG = 110, --抢红包
- TAROT = 111, --塔罗牌
- COLLECT_ZI = 112, --集字兑换
- ADVENTURE = 113, --冒险征途
- STAGE_EXCHANGE = 114, --阶段兑换
- REVERSI = 115, --黑白棋抽奖
- JIGSAW = 116, --活跃拼图
- FESTIVAL_BOSS = 117, --节日幻魔
- AMUSING_JIGSAW_PUZZLE = 118,--眼疾手快趣味拼图
- THREE_FIGHT = 119, --三日作战
- PRAY_TREE = 120, --人参果树
- JUMP_ONE = 121, --跳一跳
- COMPOSE_ROBOT = 122, --合成机
- SUPER_AWARD = 123, --超能大奖
- MATERIAL_SUBMIT = 124, --材料提交
- ACT_GUIDE = 998, --活动引导
- ACTIVITY_ICON_DESC = 999, --活动图标说明
- SELECT_EGG = 125, --自选扭蛋
-
-
- --这里需要将一些非定制活动加入到开发活动中 这边创建一个标识 好分辨
- COPETING = 8989, --竞榜活动
- SEVEN_DAYS_LOGIN = 17500, -- 七日登录
-
-
- --以下是旧版活动
- -- CHARM_RANK = 1, --魅力榜
- -- CROSS_CHARM_RANK = 2, --跨服魅力榜
- -- MARRY_RANK = 3, --结婚榜
- -- KF_JI_ZI = 4, --开服集字
- -- SEVEN_RECHARGE = 7, --七日累充
- -- GOOD_GIFT = 11, --好评礼包
- -- THROW_EGG = 13, --砸蛋
- -- RECHARGE_GIFT = 14, --充值有礼
- -- LOGIN_GIFT = 15, --连续登录
- -- DUN_MUL_EXP = 16, --副本多倍经验
- -- DISCOUNT_SHOP = 17, --特惠商城
- -- CLOUD_SHOPPING = 18, --云购
- -- EUDEMONS_ATTACK = 19, --幻兽入侵
- -- BRAVE_GUILD = 24, --勇者盟约
- -- PERFECT_LOVER = 25, --完美恋人
- -- KILL_BOSS_FIRST = 26, --BOSS首杀
- -- GUILD_COMPETE = 27, --社团争霸
- -- ACT_BOSS = 20, --活动boss
- -- ACTIVITY_EXCHANGE = 21, --活动兑换
- -- ACT_RED_BAG = 29, --活动红包
- -- LUCKY_ACC = 31, --幸运鉴宝
- -- I_LOVE_GODDESS = 32, --我爱女神
- -- KING_AND_QUEEN = 34, --充值消费
- -- ZERO_GIFT = 36, --0元豪礼
-
- -- KF_YG_ZS = 37, --跨服云购(消耗彩钻)
- -- KF_YG_BZ = 38, --跨服云购(消耗红钻)
- -- CONTINUE_CONSUME = 40, --连续消费
- -- FUNC_CONSUMABLE = 41, --巨折献礼
- -- BOUTIQUE_SALE = 42, --精品特卖
- -- LUCKY_CARD = 35, --幸运翻牌
- -- ACTIVE_TURNPLATE = 43, --活跃转盘
- -- COMBINE_GUILD_COMPETE = 44, --合服社团争霸
- -- PIGEON_LETTER = 45, --白鸽送信
- -- VALUE_INVEST = 46, --超值投资
- -- NEW_DAILY_RECHARGE = 47, --每日累充
- -- SINGLE_RECHARGE = 48, --每日单笔充值
- -- KF_EARN = 49, --开服赚赚
- -- QIXI_TURNTABLE = 50, --七夕转盘
- -- QIXI_TICKET = 51, --七夕抽奖
- -- ONLINE_TIME = 54, --累计在线
- -- EVERYDAY_LIVELY = 56, --每日活跃
- -- FIREWORKS = 22, --烟花盛典
- -- HAPPYTURNTABLE = 55, --周一大放送
- -- Repeat_Recharge = 57, --重复充值领奖
- -- Recharge_Dial = 58, --充值转盘活动
- -- EVERYDAY_TARGET = 59, --每日目标
- -- GROWTH_INTEGRAL = 60, --成长积分
- -- JOY_WISH = 61, --欢乐许愿
- -- HONOUR_WAR = 62, --荣耀战神
- -- VIP_SALE = 63, --vip特惠
- }
-
- CustomActivityModel.CustomIconActType = {
- KfAct = 1,--开服活动
- JcAct = 3,--精彩活动
- OpAct = 6,--主题活动
- GiftAct = 7,--礼包活动
- }
- --云购类型
- CustomActivityModel.CloudShoppingType = {
- BenFu = 0, --本服
- KuaFu = 1, --跨服
- }
-
- --通用活动红点类型
- CustomActivityModel.ComActRedType = {
- Day = 1, --每日
- Once = 2, --每次活动一次
- }
-
- CustomActivityModel.FIRST_RECHARGE_TIP_TASK_ID = 10180--首充tip弹窗
- CustomActivityModel.FIRST_RECHARGE_TASK_ID = 11456--首充弹窗
- CustomActivityModel.CAT_FOTANA_TASK_ID = 10330--招财猫
- CustomActivityModel.SEVEN_LOGIN_TASK_ID = 10760--七日登陆
- CustomActivityModel.VIP_EX_CARD_TASK_ID = 11210--VIP体验卡任务ID
- CustomActivityModel.VIP_THREE_TASK_ID_LIST = {10800,11535}--V3弹窗
- CustomActivityModel.ZERO_GIFT_OPEN_lEVEL = {{1,72},{2,155}}--0元礼包{活动子类型sub_type,等级level}
-
-
- CustomActivityModel.PROTO_CCMD_EVENT = "PROTO_CCMD_EVENT" --发送协议
- CustomActivityModel.UPDATE_ACTIVITY_INFO = "CustomActivityModel.UPDATE_ACTIVITY_INFO"--更新活动信息
- CustomActivityModel.UPDATE_ACTIVITY_RED_AWARD_INFO = "CustomActivityModel.UPDATE_ACTIVITY_RED_AWARD_INFO"--更新活动红点奖励信息
-
- function CustomActivityModel:__init()
- CustomActivityModel.Instance = self
- self:ResetInfo()
- end
-
- function CustomActivityModel:getInstance()
- if CustomActivityModel.Instance == nil then
- CustomActivityModel.New()
- end
- return CustomActivityModel.Instance
- end
-
- --初始化信息
- function CustomActivityModel:ResetInfo()
- self.act_reward_list = {}
- self.act_list = {}
- self.bool_now_throw_egg = false
- self.acc_consume_list = {} --累计消费信息
- self.cache_chuanwen = {} --传闻缓存列表
- self.fly_in_goods_cache = {}--飞入物品缓存
- self.act_com_red_award_info = {}--活动奖励数据
- self.online_time_mul = 1 --累计在线奖励倍数
- self.can_fly_goods = true
- self.pellet_validation_data = nil -- 弹珠机数据验证缓存
- end
-
- function CustomActivityModel:__delete()
- self:ResetInfo()
- end
-
- --解析活动图标位置信息
- function CustomActivityModel:ParseIconPosCfg( pos_cfg )
- local new_cfg = DeepCopy(pos_cfg)
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- if new_cfg.day_change and new_cfg.day_change<=open_day then
- new_cfg = new_cfg.day_pos_cfg
- end
- return new_cfg
- end
-
- --处理协议进来的数据
- function CustomActivityModel:handleActVo(vo, bool_reset,is_preview)
- local pos_list = Config.ConfigFunctionIcon.ActPosIndex
- if bool_reset then
- --初始化数据
- self.act_list = {}
- -- OperateActivityModel:getInstance():clearOperateAllActRedDotShow()
- -- KfActivityModel:getInstance():clearKfAllActRedDotShow()
- end
- KfActivityModel:getInstance():ResetActGuideCache()
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- local level = RoleManager.Instance.mainRoleInfo.level
- local close_level = 9999
- for i,v in pairs(vo.list) do
- v.condition_list = ErlangParser:GetInstance():Parse(v.condition)
- if v.base_type == CustomActivityModel.CustomActBaseType.ZERO_GIFT
- or v.base_type == CustomActivityModel.CustomActBaseType.LIMIT_GIFT
- then--0元礼包要提前修改活动类型
- for kk,vv in pairs(v.condition_list) do
- if vv[1] == "act_type" then
- if vv[2] and vv[2][2] then
- if open_day >= tonumber(vv[2][2][1]) and open_day <= tonumber(vv[2][2][2]) then
- v.act_type = tonumber(vv[2][1])
- end
- end
- if vv[3] and vv[3][2] then
- if open_day >= tonumber(vv[3][2][1]) and open_day <= tonumber(vv[3][2][2]) then
- v.act_type = tonumber(vv[3][1])
- end
- end
- end
- end
- end
- if v.base_type == CustomActivityModel.CustomActBaseType.OPERATE_ACTIVITY then
- for kk,vv in pairs(v.condition_list) do
- if vv[1] == "close_lv" then
- close_level = tonumber(vv[2])
- end
- end
- end
-
- self:setActToList(v)
- --处理请求奖励状态[通用]
- self:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33104, v.base_type, v.sub_type)
- --每个活动各自处理
- if v.base_type == CustomActivityModel.CustomActBaseType.LIMIT_GIFT then--限购礼包现在和开服活动一样了 只有一个图标
- -- local icon_data = {vo = v, module_id = 331,sub_id = 3,icon_res_repath = nil,name = "限购礼包"}
- -- self:CreateIconCfg(icon_data)
- -- LimitGiftModel:getInstance():Fire(LimitGiftModel.REQUEST_INFO,33172, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.FORTUNE_CAT then -- 招财猫
- local pos_cfg = self:ParseIconPosCfg(pos_list[64])
- local icon_data = {vo = v, module_id = 331, sub_id = 64, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_64", name = "招财猫"}
- self:CreateIconCfg(icon_data)
- FortuneCatModel:getInstance():Fire(FortuneCatModel.REQUEST_CCMD_EVENT, 33219)
- FortuneCatModel:getInstance():Fire(FortuneCatModel.REQUEST_CCMD_EVENT, 33220, v.base_type, v.sub_type)
- FortuneCatModel:getInstance():Fire(FortuneCatModel.REQUEST_CCMD_EVENT, 33222, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.RUSH_RANK then -- 开服冲榜
- local rank_type_list = KfActivityModel:getInstance():GetTodayRankType()
- for n,l in pairs(rank_type_list) do
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 22501, l, v.sub_type)
- end
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 22502, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.SINGLE_RECHARGE then--单笔充值
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.GUILD_SPEED then -- 社团竞榜
- GuildSpeedModel:getInstance():CheckIconBoolOpen()
- GuildSpeedModel:getInstance():Fire(GuildSpeedModel.REQUEST_INFO,40700)
- GuildSpeedModel:getInstance():Fire(GuildSpeedModel.REQUEST_INFO,40701)
- GuildSpeedModel:getInstance():Fire(GuildSpeedModel.REQUEST_INFO,40703)
- for i=1,4 do
- GuildSpeedModel:getInstance():Fire(GuildSpeedModel.REQUEST_INFO,40704,i)
- end
- elseif v.base_type == CustomActivityModel.CustomActBaseType.ZERO_GIFT then--0元礼包
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO,33185,v.base_type,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.MOBILIZATION then--全民动员
- local icon_res_repath = "icon_331_71"
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- if open_day>= 8 then
- icon_res_repath = "icon_331_71_2"
- end
- local pos_cfg = self:ParseIconPosCfg(pos_list[71])
- local icon_data = {vo = v, module_id = 331, sub_location = 3, sub_id = 71, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_71", name = "全民动员"}
- self:CreateIconCfg(icon_data)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.KF_GROUP_BUYING then--团购活动
- MobilizationModel:getInstance():Fire(MobilizationModel.UPDATE_MOBILIZATION_VIEW,nil,true)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.DAILY_RECHARGE then--每日累充
- local pos_cfg = self:ParseIconPosCfg(pos_list[6])
- local icon_data = {vo = v, module_id = 331, sub_id = 6,sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_6", name = "每日累充", effect_name = "ui_bianqiang"}
- self:CreateIconCfg(icon_data)
- RechargeActivityModel:getInstance():Fire(RechargeActivityModel.REQUEST_CCMD_EVENT, 15955, v.sub_type)
- RechargeActivityModel:getInstance():Fire(RechargeActivityModel.REQUEST_CCMD_EVENT, 15956, v.sub_type)
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33180)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.ADVERTISEMENT then -- 活动广告
- AdvertisementModel:getInstance():CheckAd(v)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.MONOPOLY then --大富翁
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO,33228,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.CONTRACT then --万物宝典
- ContractModel:getInstance():Fire(ContractConst.REQ_BASIC_DATA,v.sub_type)
- ContractModel:getInstance():Fire(ContractConst.REQ_TASK_PROCESS,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.OPERATE_ACTIVITY then --主题活动
- local pos_index = 99000 + v.sub_type
- local pos_cfg = self:ParseIconPosCfg(pos_list[pos_index] or {line = 3,row_index = 9 + v.sub_type/10})
- local icon_data = {vo = v, module_id = 331, sub_id = 99, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_154_2", name = "活动图标", effect_name = "ui_bianqiang",}
- self:CreateIconCfg(icon_data)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.HIGH_POINT then --嗨点活动
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33140,v.base_type,v.sub_type)--这里放在33104后面请求
- elseif v.base_type == CustomActivityModel.CustomActBaseType.BOSS_TREASURE then --幻魔宝典
- KfBossTreasureModel:getInstance():Fire(KfBossTreasureConst.REQ_BASIC_DATA,v.sub_type)
- KfBossTreasureModel:getInstance():Fire(KfBossTreasureConst.REQ_TASK_PROCESS,v.sub_type)
- KfBossTreasureModel:getInstance():Fire(KfBossTreasureConst.REQ_REWARD_INFO,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.INVEST_ACT then -- 投资活动
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33141, v.sub_type)
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.LUCKY_TURNTABLE then --幸运转盘
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33202, v.sub_type, 1)
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33202, v.sub_type, 2)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.SCRAPING_CRAD then --刮刮乐
- OperateActivityModel:getInstance():ScrapingCardInitCfg(v)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.LIMIT_SECKILL then --限时秒杀
- KfActivityModel:getInstance().is_open_limit_seckill_view = false
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33141, v.sub_type)
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33187, v.sub_type)
- KfActivityModel:getInstance():IsNeedRed(KfActivityModel.TabID.LimitSeckill,nil,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.GET_LUCKY_BAG or
- v.base_type == CustomActivityModel.CustomActBaseType.GET_RED_BAG then --抢红包/福袋
- KfActivityModel:getInstance():SetLuckyBagData(v.base_type, v.condition_list)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.HAPPY_RED_BAG then--惊喜红包
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33250, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.DISCOUNT_FULL_CUT then--折扣满减
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33126, v.sub_type)
- if v.is_first_open then
- KfActivityModel:getInstance():AddKfDiscountFullCutNewOpenRedDot(v.sub_type,true)
- end
- elseif v.base_type == CustomActivityModel.CustomActBaseType.TAROT then --塔罗牌
- OperateActivityModel:getInstance():SetTarotCfg(v)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.COM_RANK then--通用排行
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33169, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.STAGE_EXCHANGE then --阶段兑换
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33260, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.ADVENTURE then --冒险征途
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33263, v.sub_type)
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33265, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.MONEY_COPY then --彩钻复制机
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33131, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.REVERSI then --黑白棋抽奖
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33266, v.sub_type)
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33268, v.sub_type)
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33269, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.FESTIVAL_BOSS then --节日幻魔
- BossModel:GetInstance():Fire(BossConst.REQ_DESERTED_BOSS_SCMD, 46026)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.JIGSAW then -- 活跃拼图
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33153, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.THREE_FIGHT then -- 三日作战
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33275, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.LOGIN_PASS then -- 登陆通行证
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33283, v.base_type, v.sub_type)
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33286, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.LIVELY_PASS then -- 活跃通行证
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33283, v.base_type, v.sub_type)
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO, 33286, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.COMPOSE_ROBOT then -- 合成机
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33294, v.sub_type)
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33296, v.sub_type)
- --活动开了之后给一次红点,点开之后取消红点,所以这里要记录一个红点状态
- OperateActivityModel:getInstance():SetComposeRobotActFirstRed(v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.SELECT_EGG then --自选扭蛋
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33600, v.sub_type)
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.JUMP_ONE then --跳一跳
- local pos_cfg = self:ParseIconPosCfg(pos_list[121])
- local icon_data = {vo = v, module_id = 331, sub_id = 121, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_459_0", name = "跳一跳"}
- self:CreateIconCfg(icon_data)
- JumpOneModel.getInstance():SetActCfg(v)
- JumpOneModel:getInstance():Fire(JumpOneModel.REQUEST_INFO, 45901, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.MAINLAND_JOURNEY then--大陆征途
- local pos_cfg = self:ParseIconPosCfg(pos_list[50])
- local icon_data = {vo = v, module_id = 331, sub_id = 50, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_50", name = "大陆征途"}
- self:CreateIconCfg(icon_data)
- --logWarn('=======Msh:CustomActivityModel.lua[296]=======')
- --PrintTable(v)
- MainlandJourneyModel:getInstance():CheckIconBoolOpen()
- MainlandJourneyModel:getInstance():InitConfigJourneyAward(v.stime)
- MainlandJourneyModel:getInstance():InitActData(v)
- MainlandJourneyModel:getInstance():Fire(MainlandJourneyConst.REQUEST_CCMD_EVENT, 13800, v.sub_type, 0)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.MATERIAL_SUBMIT then--材料上交
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 14100, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.ACTIVITY_ICON_DESC then--活动图标说明
- ActivityIconManager:getInstance():SetActivityIconCustomDescInfo(v)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.SAKURA_GIFT then --源樱之礼
- local pos_cfg = self:ParseIconPosCfg(pos_list[20])
- local icon_data = {vo = v, module_id = 331, sub_id = 20, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_20", name = "源樱之礼"}
- self:CreateIconCfg(icon_data)
- SakuraGiftModel:getInstance():Fire(SakuraGiftModel.REQUEST_CCMD_EVENT,33400, v.sub_type)
- SakuraGiftModel:getInstance():Fire(SakuraGiftModel.REQUEST_CCMD_EVENT,33403, v.sub_type)
- SakuraGiftModel:getInstance():CheckIconBoolOpen(v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.CONTINUE_RECHARGE then --连充豪礼
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO,33145,v.sub_type)
- CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, v.base_type, v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.POWER_TURNTABLE then --源能转盘
- local pos_cfg = self:ParseIconPosCfg(pos_list[11])
- local icon_data = {vo = v, module_id = 331, sub_id = 11, sub_location = pos_cfg.line, pos_index = pos_cfg.row_index, icon_res_repath = "icon_331_11", name = "源能转盘"}
- self:CreateIconCfg(icon_data)
- PowerTurnTableModel:getInstance():Fire(PowerTurnTableModel.REQUEST_INFO,33501,v.sub_type)
- PowerTurnTableModel:getInstance():Fire(PowerTurnTableModel.REQUEST_INFO,33502,v.sub_type)
- elseif v.base_type == CustomActivityModel.CustomActBaseType.ACT_GUIDE then -- 指引
- --if act_guide_first then
- -- act_guide_first = false
- -- KfActivityModel:getInstance():ResetActGuideCache()
- --end
- KfActivityModel:getInstance():SetActGuideCache(v)
- end
- end
- if close_level <= RoleManager.Instance.mainRoleInfo.level then
- self:UpdateActIconInfoActType()
- end
- end
-
- --检测情况
- function CustomActivityModel:checkAllOpen(base_type,sub_type)
- if base_type == CustomActivityModel.CustomActBaseType.OPERATE_ACTIVITY then--主题活动
- KfActivityModel:getInstance():CheckActIconBoolOpen(sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.POWER_TURNTABLE then--源能转盘
- PowerTurnTableModel:getInstance():CheckPowerTurnTableIconBoolOpen(sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.MERCENARY_SUPPLY then--佣兵限购
- MercenarySupplyModel:getInstance():CheckIconBoolOpen()
- elseif base_type == CustomActivityModel.CustomActBaseType.GUILD_SPEED then--公会竞速
- GuildSpeedModel:getInstance():CheckIconBoolOpen()
- elseif base_type == CustomActivityModel.CustomActBaseType.ACTIVITY_ICON_DESC then--公会竞速
- ActivityIconManager:getInstance():RefreshActivityIconCustomDescInfo(sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.LIMIT_GIFT or base_type == CustomActivityModel.CustomActBaseType.ZERO_GIFT then--限购礼包 0元礼包需要检查活图标开启
- KfActivityModel:getInstance():CheckActIconBoolOpen(4)--礼包类型检查一下
- elseif base_type == CustomActivityModel.CustomActBaseType.MOBILIZATION then
- MobilizationModel:getInstance():Fire(MobilizationModel.REQUEST_INFO,33225,sub_type)
- MobilizationModel:getInstance():CheckIconBoolOpen(sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.DAILY_RECHARGE then--每日累充
- RechargeActivityModel:getInstance():CheckDailyRechargeMainIconOpen(sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.FORTUNE_CAT then--招财猫
- FortuneCatModel:getInstance():CheckEventOpen(base_type,sub_type)
- elseif base_type == CustomActivityModel.CustomActBaseType.ACT_GUIDE then -- 活动引导
- print('=======Msh:CustomActivityModel.lua[440] ==666666666=====')
- self:Fire(CustomActivityModel.UPDATE_ACTIVITY_INFO, base_type)
- end
- -- KfActivityModel:getInstance():CheckIconBoolOpen()--开服活动
- end
-
- --过期删除活动信息
- function CustomActivityModel:clearActInfo(vo)
- for k,v in pairs(vo.list) do
- KfActivityModel:getInstance():ClearActRedDotInfo(v.base_type,v.sub_type)
- if v.base_type == CustomActivityModel.CustomActBaseType.ZERO_GIFT then
- --还没领完的0元礼包活动不删掉,这个时候数据不新,判断不了0元礼包状态,直接一个33101请求全部
- self:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33101)
- else
- if self.act_list[v.base_type] then
- self.act_list[v.base_type][v.sub_type] = nil
- end
- if self.act_list[v.base_type] and IsTableEmpty(self.act_list[v.base_type]) then
- self.act_list[v.base_type] = nil
- end
- -- --清楚外部图标特殊
- if self:ISSpacielIconDelete(v.base_type,v.sub_type) then
- ActivityIconManager:getInstance():deleteIcon(self:ISSpacielIconDelete(v.base_type,v.sub_type),true)
- end
- end
- self:checkAllOpen(v.base_type,v.sub_type)
- end
- end
-
- function CustomActivityModel:ISSpacielIconDelete( base_type,sub_type )
- return nil
- end
-
- --保存活动列表
- function CustomActivityModel:setActToList(vo)
- self.act_list[vo.base_type] = self.act_list[vo.base_type] or {}
- self.act_list[vo.base_type][vo.sub_type] = vo
- end
-
- --获取活动信息[可用于判断活动是否存在]
- function CustomActivityModel:getActList(base_type, sub_type)
- if self.act_list[base_type] then
- local sub_index = sub_type or self:getActMinSubType(base_type)
- return self.act_list[base_type][sub_index]
- end
- end
-
- --得到活动的条件信息
- function CustomActivityModel:getActCondition( base_type, sub_type, name )
- local act_list = self:getActList(base_type, sub_type)
- if act_list and act_list.condition_list then
- for k,v in ipairs(act_list.condition_list) do
- if Trim(v[1]) == name then
- return v[2]
- end
- end
- end
- return nil
- end
-
- --获取全部活信息
- function CustomActivityModel:getAllActList()
- return self.act_list
- end
-
- --获取一个主类型的所有活动信息
- function CustomActivityModel:getAllActListByBaseType(base_type)
- return self.act_list[base_type] or {}
- end
-
- --获取当前活动最新子类型[支持多开的活动,不能使用这个方法来取子类型,传入act_type会判断埋活动类型]
- function CustomActivityModel:getActMinSubType(base_type,act_type)
- if base_type and self.act_list[base_type] then
- local sub_type_list = {}
- for k,v in pairs(self.act_list[base_type]) do
- table.insert(sub_type_list, v.sub_type)
- end
- local function sort_func(a, b)
- return a < b
- end
- table.sort(sub_type_list, sort_func)
- return sub_type_list[1] or 0
- else
- return 0
- end
- end
-
- --获取活动类型[0不是活动]
- function CustomActivityModel:getActType(base_type, sub_type)
- local list = self:getActList(base_type, sub_type)
- if list then
- return list.act_type
- else
- --默认活动类型
- for key,v in pairs(Config.ConfigActStatic.ActTypeToAct) do
- for i,n in pairs(v) do
- if base_type == n then
- return key
- end
- end
- end
- return 0
- end
- end
-
- --保存活动奖励状态列表
- function CustomActivityModel:setActRewardList(vo)
- local list = DeepCopy(vo)
- list.bool_get = false --是否有领取[方便设置红点]
- for k,v in pairs(list.reward_list) do
- v.condition_list = ErlangParser:GetInstance():Parse(v.conditon)
- v.reward_info = self:ResolveRewardFormal(v.form_type, v.reward)
- v.bool_get = v.status == 1
- if v.bool_get and list.base_type ~= CustomActivityModel.CustomActBaseType.RECHARGE_GIFT then
- list.bool_get = true
- end
- end
- if vo.base_type == CustomActivityModel.CustomActBaseType.REWARD_SHOW and
- vo.sub_type == self:getActMinSubType(CustomActivityModel.CustomActBaseType.REWARD_SHOW) then
- list = self:DealRewardShowRewardList( vo )
- end
- self.act_reward_list[vo.base_type] = self.act_reward_list[vo.base_type] or {}
- self.act_reward_list[vo.base_type][vo.sub_type] = list
- self:Fire(CustomActivityModel.UPDATE_ACTIVITY_INFO, vo.base_type, vo.sub_type)--更新活动信息
- self:checkAllOpen(vo.base_type,vo.sub_type)
- end
-
- function CustomActivityModel:RefreshActSomeData( vo )
- if self.act_reward_list and self.act_reward_list[vo.base_type] and self.act_reward_list[vo.base_type][vo.sub_type] then
- for k,v in pairs(self.act_reward_list[vo.base_type][vo.sub_type].reward_list) do
- if v.grade == vo.grade then
- v.progress = vo.progress
- v.status = vo.status
- v.receive_times = vo.receive_times
- break
- end
- end
- -------------------------
- self:Fire(CustomActivityModel.UPDATE_ACTIVITY_INFO, vo.base_type, vo.sub_type)--更新活动信息
- self:checkAllOpen(vo.base_type,vo.sub_type)
- end
- end
-
- -- 外部设置活动bool_get
- function CustomActivityModel:SetActBoolGet(base_type,sub_type,bool)
- if base_type == nil or sub_type == nil then return end
- if not self.act_reward_list[base_type] or self.act_reward_list[base_type][sub_type] == nil then return end
- self.act_reward_list[base_type][sub_type].bool_get = bool
- end
-
- --解析奖励格式[每个类型的格式都不同,有新的格式需要在这里添加]
- function CustomActivityModel:ResolveRewardFormal(kind, reward)
- local list = ErlangParser:GetInstance():Parse(reward)
- local total_list = {}
- for i,v in ipairs(list) do
- local array = {}
- if kind == 1 then --通用奖励格式[{类型,道具id,数量}]
- array.goods_kind = tonumber(v[1])
- array.goods_id = tonumber(v[2])
- array.goods_count = tonumber(v[3])
- elseif kind == 2 then --玩家等级阶段奖励格式[{等级,[{类型,道具id,数量}]
- array.role_lv = tonumber(v[1])
- array.goods_list = {}
- for k,n in ipairs(v[2]) do
- local info = {}
- info.goods_kind = tonumber(n[1])
- info.goods_id = tonumber(n[2])
- info.goods_count = tonumber(n[3])
- array.goods_list[k] = info
- end
- elseif kind == 3 then --随机奖励格式[{权值,[{类型,道具id,数量}]}]
- array.weight = tonumber(v[1])
- array.goods_list = {}
- for k,n in ipairs(v[2]) do
- local info = {}
- info.goods_kind = tonumber(n[1])
- info.goods_id = tonumber(n[2])
- info.goods_count = tonumber(n[3])
- array.goods_list[k] = info
- end
- elseif kind == 4 then --世界等级阶段格式[{世界等级,[{类型,道具id,数量}]
- array.world_lv = tonumber(v[1])
- array.goods_list = {}
- for k,n in ipairs(v[2]) do
- local info = {}
- info.goods_kind = tonumber(n[1])
- info.goods_id = tonumber(n[2])
- info.goods_count = tonumber(n[3])
- array.goods_list[k] = info
- end
- elseif kind == 5 then --性别奖励格式[{性别,[{类型,道具id,数量}]
- array.sex = tonumber(v[1])
- array.goods_list = {}
- for k,n in ipairs(v[2]) do
- local info = {}
- info.goods_kind = tonumber(n[1])
- info.goods_id = tonumber(n[2])
- info.goods_count = tonumber(n[3])
- array.goods_list[k] = info
- end
- elseif kind == 6 then --天数奖励格式[{天数,[{类型,道具id,数量}]
- array.day_num = tonumber(v[1])
- array.goods_list = {}
- for k,n in ipairs(v[2]) do
- local info = {}
- info.goods_kind = tonumber(n[1])
- info.goods_id = tonumber(n[2])
- info.goods_count = tonumber(n[3])
- array.goods_list[k] = info
- end
- end
- total_list[i] = array
- end
- return total_list
- end
-
- --获取现阶段的奖励列表[如果要所有档次填0]
- function CustomActivityModel:getNowActRewardGoodsList(grade, base_type, sub_type)
- sub_type = sub_type or self:getActMinSubType(base_type)
- local act_reward_list = self:getOneActRewardList(base_type, sub_type)
- local real_goods_list = {}
- if act_reward_list then
- for k,v in pairs(act_reward_list.reward_list) do
- if grade == v.grade or grade == 0 then
- local form_type = v.form_type
- local reward_info = v.reward_info
- if form_type == 1 then --通用奖励格式
- real_goods_list = reward_info
- elseif form_type == 2 then --玩家等级阶段奖励格式
- for k,v in pairs(reward_info) do
- if RoleManager.Instance.mainRoleInfo.level == v.role_lv then
- real_goods_list = v.goods_list
- break
- end
- end
- elseif form_type == 3 then --随机奖励格式[这里真的是随机一个key值]
- local rand_num = math.random(1, TableSize(reward_info))
- real_goods_list = reward_info[rand_num].goods_list
- elseif form_type == 4 then --世界等级阶段格式
- local act_list = self:getActList(base_type, sub_type)
- if act_list and act_list.wlv then
- local function sort_func(a, b)
- return a.world_lv < b.world_lv
- end
- table.sort(reward_info, sort_func)
- for k,v in pairs(reward_info) do
- if act_list.wlv >= v.world_lv then
- real_goods_list = v.goods_list
- elseif act_list.wlv < v.world_lv then
- break
- end
- end
- end
- elseif form_type == 5 then --性别奖励格式
- for k,v in pairs(reward_info) do
- if RoleManager.Instance.mainRoleInfo.sex == v.sex then
- real_goods_list = v.goods_list
- break
- end
- end
- end
- end
- end
- end
- return real_goods_list
- end
-
- --活动活动奖励状态列表 获取到的是33104协议的数据
- function CustomActivityModel:getOneActRewardList(base_type, sub_type)
- if base_type == nil then return end
- sub_type = sub_type or self:getActMinSubType(base_type)
- if sub_type == nil then return end
- if self.act_reward_list[base_type] then
- return self.act_reward_list[base_type][sub_type]
- end
- end
-
- --处理活动领取成功[errcode返回的只有为1,所以不用考虑]
- function CustomActivityModel:handleSuccessGetReward(vo)
- --特殊处理提示
- if vo.base_type == CustomActivityModel.CustomActBaseType.DAILY_RECHARGE then
- Message.show("领取成功","success")
- elseif vo.base_type == CustomActivityModel.CustomActBaseType.CONTINUE_RECHARGE then--连充豪礼
- KfActivityModel:getInstance():Fire(KfActivityModel.REQUEST_INFO,33145,vo.sub_type)
- elseif vo.base_type == CustomActivityModel.CustomActBaseType.COLLECT_ZI then
- Message.show("兑换成功","success")
- elseif vo.base_type == CustomActivityModel.CustomActBaseType.KFACTIVITY_LIMIT_SHOP then--限购商城
- Message.show("购买成功","success")
- else
- Message.show("领取成功","success")
- end
- if not self:NoshowAwardBaseType(vo.base_type) then
- self:ShowAward(vo)
- end
- self:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33104, vo.base_type, vo.sub_type)
- end
-
- function CustomActivityModel:NoshowAwardBaseType( base_type )
- if base_type == CustomActivityModel.CustomActBaseType.KFACTIVITY_LIMIT_SHOP
- or base_type == CustomActivityModel.CustomActBaseType.KF_GROUP_BUYING
- or base_type == CustomActivityModel.CustomActBaseType.COLLECT_ZI
- or base_type == CustomActivityModel.CustomActBaseType.HOPE_GIFT
- or base_type == CustomActivityModel.CustomActBaseType.FOSTER_STAGE
- or base_type == CustomActivityModel.CustomActBaseType.ACC_CONSUME
- then
- return true
- end
- return false
- end
-
- --展示奖励获得
- function CustomActivityModel:ShowAward( vo )
- local award_data = CustomActivityModel:getInstance():getOneActRewardList(vo.base_type,vo.sub_type)
- if award_data and award_data.reward_list then
- local award_info = nil
- for i,v in ipairs(award_data.reward_list) do
- if v.grade == vo.grade then
- local award = v.reward_info
- if #award > 0 then
- local new_award_list = {}
- for n,l in ipairs(award) do
- new_award_list[#new_award_list + 1] = {l.goods_kind, l.goods_id, l.goods_count}
- end
- GiftModel:getInstance():Fire(GiftModel.OPEN_SHOW_ACT_GOODS_VIEW, new_award_list)
- break
- end
- end
- end
- end
- end
-
- -- 先缓存飞入的物品[使用时务必要重置一下]
- function CustomActivityModel:SetFlyInGoodsCache(goods_list)
- self.fly_in_goods_cache = {}
- if goods_list and next(goods_list) then
- for k,vo in pairs(DeepCopy(goods_list)) do
- local goodsVo = GoodsModel:getInstance().bag_goods_dic[vo.goods_id]
- if goodsVo then
- if vo.goods_num > goodsVo.goods_num then
- vo.is_fly_show = true
- end
- else
- vo.is_fly_show = true
- end
- table.insert(self.fly_in_goods_cache, vo)
- end
- end
- end
-
- --展示缓存的飞入物品
- function CustomActivityModel:ShowFlyInGoods()
- if self.fly_in_goods_cache and next(self.fly_in_goods_cache) then
- local fly_list = {}
- for k,vo in pairs(self.fly_in_goods_cache) do
- ItemUseModel:getInstance():HandleUseItem(vo, true)
- if vo.is_fly_show then
- table.insert(fly_list, vo.type_id)
- end
- end
- MainUIModel:getInstance():PlayGoodsFlyList(fly_list)
- GlobalEventSystem:Fire(EventName.CHECK_SHOW_ITEM_USE)
- end
- self.fly_in_goods_cache = {}
- end
-
- --添加传闻缓存
- function CustomActivityModel:AddCacheChuanWen(scmd, type)
- table.insert(self.cache_chuanwen, {scmd, type})
- end
-
- --播放缓存的传闻
- function CustomActivityModel:PlayCacheChuanwenShow()
- for i, v in ipairs(self.cache_chuanwen) do
- GlobalEventSystem:Fire(EventName.RECEIVE_NEW_CHUANWEN, v[1], v[2])
- end
- self.cache_chuanwen = {}
- end
-
- -- 缓存弹珠机的抽奖验证数据 33179
- function CustomActivityModel:SetPelletEventValidationData(vo)
- self.pellet_validation_data = vo
- end
- function CustomActivityModel:GetPelletEventValidationData( )
- return self.pellet_validation_data
- end
-
- --是不是限时物品
- function CustomActivityModel:GetGoodsLimit( base_type,sub_type,goods_id,grade )
- if not base_type then
- print("CustomActivityModel:GetGoodsLimit 没有填base_type")
- return false
- end
- if not sub_type then
- print("CustomActivityModel:GetGoodsLimit 没有填sub_type")
- return false
- end
- if not grade then
- print("CustomActivityModel:GetGoodsLimit 没有填grade")
- return false
- end
- local expire_time = false
- local list = self.limit_reward_list[base_type.."@"..sub_type]
- local key = grade.."@"..goods_id
- if list and list[key] then
- expire_time = list[key]
- end
- return expire_time
- end
-
- --创建图标配置(偷懒生气 再也不用在ConfigFunctionIcon创建一堆活动图标了)
- --self:CreateIconCfg({vo,Config.Moduleopenlv["331@35"].lv,5,"icon_rightTop_33135","VIP特惠礼包"})--创建一种资源的图标
- --self:CreateIconCfg({vo,Config.Moduleopenlv["331@35"].lv,6,nil,"VIP特惠礼包"})--创建多种资源的图标(资源看下面的创建方法构建图标资源名)
- function CustomActivityModel:CreateIconCfg( icon_data )
- if not icon_data or not icon_data.vo then return end
- local v = icon_data.vo
- local icon_res_repath = icon_data.icon_res_repath
- local name = icon_data.name
-
- local is_find = false
- local icon_sub_type_base = v.base_type*1000
- if v.sub_type >= 10001 then
- icon_sub_type_base = v.base_type*100000
- end
- local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
- for kkk,vvv in ipairs(v.condition_list) do
- if vvv[1] == "icon" then
- if v.base_type == CustomActivityModel.CustomActBaseType.OPERATE_ACTIVITY then
- if v.act_type == CustomActivityModel.CustomIconActType.KfAct then--开服活动前7天读不同的图标
- if open_day <= 8 then
- icon_res_repath = string.format("icon_99_%s",v.base_type*1000 + open_day + 100)
- else
- icon_res_repath = string.format("icon_99_%s",tonumber(vvv[2]) + v.base_type*1000)
- end
- else
- icon_res_repath = string.format("icon_99_%s",tonumber(vvv[2]) + v.base_type*1000)
- end
- else
- icon_res_repath = string.format("icon_331_%s",v.base_type)
- end
- end
- end
- for kk,vv in pairs(ActivityIconManager:getInstance().icon_cfg_new_list) do
- local icon_type = icon_sub_type_base + v.sub_type
- if vv.icon_type == icon_type and icon_res_repath then
- local server_data = CustomActivityModel:getInstance():getActList(v.base_type, v.sub_type)
- vv.icon_name = icon_res_repath
- is_find = true
- break
- end
- end
- if not is_find then
- local icon_type = icon_sub_type_base + v.sub_type
- local icon_cfg = {name=name, icon_type = icon_type, module_id = icon_data.module_id, sub_id = icon_data.sub_id, sub_location = icon_data.sub_location or 3, pos_index = icon_data.pos_index or 99999, model_id = 331, icon_name = icon_res_repath, effect_name = icon_data.effect_name or "ui_bianqiang", not_delete = false, count_down_time = 0,act_base_type=true}
- ActivityIconManager:getInstance().icon_cfg_new_list[icon_type] = icon_cfg
- if not ActivityIconManager:getInstance().act_cfg[v.base_type] then
- ActivityIconManager:getInstance().act_cfg[v.base_type] = {}
- end
- ActivityIconManager:getInstance().act_cfg[v.base_type][v.sub_type] = icon_cfg
- end
- end
-
- --购买弹窗
- -- data = {
- -- gold_type,--货币类型
- -- cost_price,--消耗金额
- -- ok_callback,--成功
- -- toggle_function,--多选
- -- togglePriceStr,--提示语
- -- use_function,--最终调用
- -- diamond_nonuse,--红钻不足时不使用彩钻
- -- }
- function CustomActivityModel:BuyTips( buy_tip_data )
- if not buy_tip_data or not buy_tip_data.use_function then
- print("huangcong:购买数据不正确")
- return
- end
- local jin = RoleManager.Instance.mainRoleInfo.jin
- local jinLock = RoleManager.Instance.mainRoleInfo.jinLock
-
- if buy_tip_data.cost_price <= 0 then--免费就直接启动
- buy_tip_data.ok_callback()
- return
- end
- --这段是因为商城那里彩钻红钻不需要二次提示了 所以加的跳过流程 后来有人需要就看shopbuyview怎么搞的
- if buy_tip_data.skip_tip and
- ((buy_tip_data.gold_type == 1 and buy_tip_data.cost_price <= jin)
- or (buy_tip_data.gold_type == 2 and buy_tip_data.cost_price <= jinLock)) then
- buy_tip_data.ok_callback()
- return
- end
- if buy_tip_data.gold_type ~= 1 and buy_tip_data.gold_type ~= 2 then
- buy_tip_data.ok_callback()
- return
- end
-
- local function recharge_call_back( ... )--充值
- local args = {...}
- local use_lockjin = args[1]
- local ok = function ( )
- if buy_tip_data.recharge_open_call_back then
- buy_tip_data.recharge_open_call_back()
- end
- end
- -- 关闭道具tips
- UIToolTipMgr:getInstance():CloseGoodsTips()
- local qc_data = {
- price = buy_tip_data.cost_price - (use_lockjin and jinLock or 0),
- close_callback = ok,
- qc_type = buy_tip_data.qc_type or 0,
- }
- GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true, qc_data)
- end
-
- local function invest_call_back( ... )--前往投资
- -- 关闭道具tips
- UIToolTipMgr:getInstance():CloseGoodsTips()
- OpenFun.Open(420,1)
- if buy_tip_data.invest_call_back then
- buy_tip_data.invest_call_back()
- end
- end
-
- --不足话先走这里的逻辑
- if buy_tip_data.gold_type == 1 then--彩钻
- if jin < buy_tip_data.cost_price then--彩钻不足
- recharge_call_back()
- return
- end
- elseif buy_tip_data.gold_type == 2 then--红钻
- if jinLock < buy_tip_data.cost_price then--红钻不足用彩钻补齐
- local ok = function ( )
- if jinLock + jin < buy_tip_data.cost_price then
- recharge_call_back(true)
- else
- buy_tip_data.ok_callback()
- end
- end
- local jin_type_img = WordManager:GetMoneyFaceStr( 1 )
- local jinLock_type_img = WordManager:GetMoneyFaceStr( 2 )
- local jin_type_name = GoodsModel:getInstance():getGoodsName(100000, false)
- local jinLock_type_name = GoodsModel:getInstance():getGoodsName(100001, false)
- if buy_tip_data.diamond_nonuse then
- local str = string.format("您的<color=#ff203a>%s不足</color>,还差<color=#ff203a> %s%s </color>,是否前往投资?",jinLock_type_name,jinLock_type_img,buy_tip_data.cost_price - jinLock)
- Alert.show(str, Alert.Type.Two, invest_call_back, nil, "前往投资", "取消")
- else
- local str = string.format("您的<color=#ff203a>%s不足</color>,是否使用<color=#fdffc2> %s%s </color>补全?",jinLock_type_name,jin_type_img,buy_tip_data.cost_price - jinLock)
- if VipModel:getInstance():HasBoughtAllInvestmentTypes() then -- 已经购买了全部的投资类型,则不提示前往投资
- Alert.show(str, Alert.Type.Two, ok, nil, "彩钻补全", "取消")
- else
- Alert.show(str, Alert.Type.Two, ok, invest_call_back, "彩钻补全", "前往投资")
- end
- end
- return
- end
- end
-
- local function callFuncSum( ... )--方法合集
- buy_tip_data.ok_callback()
- end
-
- local asset, source = WordManager:GetCommonMoneyIcon(buy_tip_data.gold_type)
- local toggle_tip_data = {
- gold_ab_res = asset,
- gold_res = source,
- price = buy_tip_data.cost_price,
- insufficientText = buy_tip_data.insufficientText or "",
- priceText = buy_tip_data.togglePriceStr,--string.format("<color=#fdffc2>%s</color> 购买商品",self.limit_cost)
- titleText = "提示",
- ok_callback = callFuncSum,
- no_need_toggle = buy_tip_data.no_need_toggle,
- toggle_function = buy_tip_data.toggle_function,
- is_complex_ok_callback = true,
- }
- buy_tip_data.use_function(toggle_tip_data,callFuncSum)
- end
-
- function CustomActivityModel:SetGoodsCanFly( bool )
- self.can_fly_goods = bool
- end
-
- function CustomActivityModel:GetGoodsCanFly( )
- return self.can_fly_goods
- end
-
- --获得活动展示配置
- function CustomActivityModel:GetActModelConShowCfg( base_type,fashion_type,model_res_id )
- local result = false
- if CustomActivityConst[base_type] then
- result = CustomActivityConst[base_type][0] or result
- if CustomActivityConst[base_type][fashion_type] then
- result = CustomActivityConst[base_type][fashion_type][0] or result
- if CustomActivityConst[base_type][fashion_type][model_res_id] then
- result = CustomActivityConst[base_type][fashion_type][model_res_id] or result
- end
- end
- end
- return DeepCopy(result)
- end
-
- function CustomActivityModel:DealRewardShowRewardList( vo )
- local list = DeepCopy(vo)
- --list.bool_get = false --是否有领取[方便设置红点]
- for k,v in pairs(list.reward_list) do
- v.condition_list = ErlangParser:GetInstance():Parse(v.conditon)
- for i, vv in ipairs(v.condition_list) do
- if vv[1] == "jump_link" then
- v.jump_link = {}
- v.jump_link[1] = vv[2][1]
- v.jump_link[2] = vv[2][2]
- elseif vv[1] == "role_lv" then
- v.role_lv = vv[2]
- elseif vv[1] == "tag" then
- v.tag = vv[2]
- end
- end
- v.reward_info = ErlangParser:GetInstance():Parse(v.reward)
- if v.reward_info[1][1] == "show_res" then
- v.show_res = {}
- v.show_res[1] = v.reward_info[1][2]
- v.show_res[2] = v.reward_info[1][3]
- end
- --v.bool_get = v.status == 1
- -- if v.bool_get and list.base_type ~= CustomActivityModel.CustomActBaseType.RECHARGE_GIFT then
- -- list.bool_get = true
- -- end
- end
- -- 按grade参数从小到大排序
- local sort_func = function ( a, b )
- return a.grade < b.grade
- end
- table.sort(list.reward_list, sort_func)
- return list
- end
-
- --设置活动通用红点奖励信息
- function CustomActivityModel:SetActComAwardInfo( scmd )
- if not self.act_com_red_award_info[scmd.base_type] then
- self.act_com_red_award_info[scmd.base_type] = {}
- end
- self.act_com_red_award_info[scmd.base_type][scmd.sub_type] = scmd
- self:Fire(CustomActivityModel.UPDATE_ACTIVITY_RED_AWARD_INFO,scmd.base_type,scmd.sub_type)
- end
-
- --获得活动通用红点奖励信息
- function CustomActivityModel:GetActComAwardInfo( base_type,sub_type )
- if not base_type or not sub_type or not self.act_com_red_award_info[base_type] then return nil end
- return self.act_com_red_award_info[base_type][sub_type] or nil
- end
-
-
- --更新图标活动在哪个图标内的信息信息
- function CustomActivityModel:UpdateActIconInfoActType( )
- local act_base_type_list = {CustomActivityModel.CustomActBaseType.LIMIT_GIFT,CustomActivityModel.CustomActBaseType.ZERO_GIFT}
- for i,base_type in ipairs(act_base_type_list) do
- local act_list = self:getAllActListByBaseType(base_type) or {}
- for k,v in pairs(act_list) do
- if v.act_type == CustomActivityModel.CustomIconActType.GiftAct then--关闭等级小于人物等级则放到3精彩活动里面去
- v.act_type = CustomActivityModel.CustomIconActType.JcAct
- end
- end
- end
- end
|