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("您的%s不足,还差 %s%s ,是否前往投资?",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("您的%s不足,是否使用 %s%s 补全?",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("%s 购买商品",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