StrengthModel = StrengthModel or BaseClass(BaseModel) StrengthModel.Strengthen = { IconNoticeList = { "quiz", "guildfire", "angel", }, } StrengthModel.UPDATE_VIEW_AFTER_CLICK = "StrengthModel.UPDATE_VIEW_AFTER_CLICK" --在点击前往途径后刷新数据 function StrengthModel:__init() StrengthModel.Instance = self self.fight_model = Config.Improvefightnum self.grade = nil self.cache_flag = {} self.module_open_dic = {} self.state_flag = StateFlag.New() self.strength_flag_1 = 0 self.strength_flag_2 = 0 self.strength_flag_3 = 0 self.strength_flag_4 = 0 end function StrengthModel:getInstance() if StrengthModel.Instance == nil then StrengthModel.New() end return StrengthModel.Instance end function StrengthModel:ResetInfo() self.state_flag:initValue() self.module_open_dic = {} end --获取变强列表 function StrengthModel:GetStrengthList( ) local tb = {} local cache_flag, func = false local temp_cache_update_name = {} for k,v in pairs(Config.ConfigStrength.Func) do local type_cfg = v for k2,v2 in pairs(type_cfg) do --每个函数只执行一遍 local has_updated = temp_cache_update_name[v2.check] if not has_updated then temp_cache_update_name[v2.check] = true local win_id = v2.winId local sub_id = v2.subId local special_open_flag = true --星级套装 要变化下 if win_id == 152 and sub_id == 999 then sub_id = 1 elseif win_id == 146 and sub_id >= 91 then -- 珍宝 特殊处理 sub_id = sub_id - 90 -- 判断子系统是否开启 special_open_flag = GetModuleIsOpen(146, 9) -- 判断珍宝外观是否开启 elseif win_id == 149 and sub_id == 99 then sub_id = 0 end local key = win_id .. "@".. sub_id if self.module_open_dic[key] or (GetModuleIsOpen(win_id, sub_id, true) and special_open_flag) then self.module_open_dic[key] = true --先判断缓存标识 -- cache_flag = self:GetCacheFlag(v2.check) -- if cache_flag == true then -- table.insert(tb, v2) -- elseif cache_flag == nil then func = self[v2.check] if func and func(self) then table.insert(tb, v2) end --end end end end end --排序 -- local arg = {"sort_id","winId"} -- local condition = {Array.LOWER, Array.LOWER} -- SortTools.MoreKeysSorter(tb, arg, condition) return tb end --设置各个功能函数缓存标识 function StrengthModel:SetCacheFlag(key, value) local value = value or false self.cache_flag[key] = value end function StrengthModel:GetCacheFlag(key) return self.cache_flag[key] end --是否能变强 function StrengthModel:CanStrength( cur_type ) local cur_type = cur_type or Config.ConfigStrength.ChangeType.All local can_strength = false local func, cache_flag local temp_cache_update_name = {} if cur_type == Config.ConfigStrength.ChangeType.All then self.state_flag:initValue() for k,v in pairs(Config.ConfigStrength.Func) do local type_cfg = v can_strength = false for k2,v2 in pairs(type_cfg) do --[[func = self[v2.check] if func and func(self) then can_strength = true break end--]] --每个函数只执行一遍 local has_updated = temp_cache_update_name[v2.check] if not has_updated then temp_cache_update_name[v2.check] = true func = self[v2.check] if func and func(self) then can_strength = true break end end end if can_strength then--显示 self.state_flag:addState(Config.ConfigStrength.State_Type[k]) else--隐藏 self.state_flag:delState(Config.ConfigStrength.State_Type[k]) end end else local type_cfg = Config.ConfigStrength.Func[cur_type] if type_cfg then for k,v in pairs(type_cfg) do cache_flag = self:GetCacheFlag(v.check) if cache_flag == true then can_strength = true break end end end end if cur_type ~= Config.ConfigStrength.ChangeType.All then if can_strength then--显示 self.state_flag:addState(Config.ConfigStrength.State_Type[cur_type]) else--隐藏 self.state_flag:delState(Config.ConfigStrength.State_Type[cur_type]) end end if self.state_flag then return self.state_flag:isInstate() end end --AI娘进阶 function StrengthModel:can_jarvis_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_stren", val) return val end --AI娘提升 function StrengthModel:can_jarvis_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_up", val) return val end --AI娘换装 function StrengthModel:can_jarvis_cloth_change( ) local val = FosterModel:GetInstance():CanDressNewEquipWithType(false, FosterConst.ModuleId.FJarvis) or FosterModel:GetInstance():CanDressUpEquipWithType(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_cloth_change", val) return val end --AI娘升装 function StrengthModel:can_jarvis_cloth_up( ) local val = FosterModel:GetInstance():CanUpEquipWithType(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_cloth_up", val) return val end --AI娘技能 function StrengthModel:can_jarvis_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_skill_up", val) return val end --AI娘皮肤 function StrengthModel:can_jarvis_skin_up_or_active( ) local val = FosterModel:GetInstance():CanSkinActOrUp(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_skin_up_or_active", val) return val end --AI娘珍宝 function StrengthModel:can_jarvis_shape_up_or_active( ) local val = ShapeModel:GetInstance():CheckRedByType(false, FosterConst.ModuleId.FJarvis) self:SetCacheFlag("can_jarvis_shape_up_or_active", val) return val end --磁炮进阶 function StrengthModel:can_gun_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FGun) self:SetCacheFlag("can_gun_stren", val) return val end --磁炮提升 function StrengthModel:can_gun_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FGun) self:SetCacheFlag("can_gun_up", val) return val end --磁炮技能 function StrengthModel:can_gun_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FGun) self:SetCacheFlag("can_gun_skill_up", val) return val end --磁炮皮肤 function StrengthModel:can_gun_skin_up_or_active( ) local val = FosterModel:GetInstance():CanSkinActOrUp(false, FosterConst.ModuleId.FGun) self:SetCacheFlag("can_gun_skin_up_or_active", val) return val end --星翼进阶 function StrengthModel:can_cloud_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FCloud) self:SetCacheFlag("can_cloud_stren", val) return val end --星翼提升 function StrengthModel:can_cloud_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FCloud) self:SetCacheFlag("can_cloud_up", val) return val end --星翼技能 function StrengthModel:can_cloud_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FCloud) self:SetCacheFlag("can_cloud_skill_up", val) return val end --星翼皮肤 function StrengthModel:can_cloud_skin_up_or_active( ) local val = FosterModel:GetInstance():CanSkinActOrUp(false, FosterConst.ModuleId.FCloud) self:SetCacheFlag("can_cloud_skin_up_or_active", val) return val end --幻甲进阶 function StrengthModel:can_armour_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FArmour) self:SetCacheFlag("can_armour_stren", val) return val end --幻甲提升 function StrengthModel:can_armour_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FArmour) self:SetCacheFlag("can_armour_up", val) return val end --幻甲技能 function StrengthModel:can_armour_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FArmour) self:SetCacheFlag("can_armour_skill_up", val) return val end --幻甲皮肤 function StrengthModel:can_armour_up_or_active( ) local val = FosterModel:GetInstance():CanSkinActOrUp(false, FosterConst.ModuleId.FArmour) self:SetCacheFlag("can_armour_up_or_active", val) return val end --座驾进阶 function StrengthModel:can_horse_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_armour_up", val) return val end --座驾提升 function StrengthModel:can_horse_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_horse_up", val) return val end --座驾换装 function StrengthModel:can_horse_cloth_change( ) local val = FosterModel:GetInstance():CanDressNewEquipWithType(false, FosterConst.ModuleId.FHorse) or FosterModel:GetInstance():CanDressUpEquipWithType(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_horse_cloth_change", val) return val end --座驾升装 function StrengthModel:can_horse_cloth_up( ) local val = FosterModel:GetInstance():CanUpEquipWithType(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_horse_cloth_up", val) return val end --座驾技能 function StrengthModel:can_horse_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_horse_skill_up", val) return val end --座驾珍宝 function StrengthModel:can_horse_shape_up_or_active( ) local val = ShapeModel:GetInstance():CheckRedByType(false, FosterConst.ModuleId.FHorse) self:SetCacheFlag("can_horse_shape_up_or_active", val) return val end --炫翼进阶 function StrengthModel:can_wing_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FWing) self:SetCacheFlag("can_wing_stren", val) return val end --炫翼提升 function StrengthModel:can_wing_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FWing) self:SetCacheFlag("can_wing_up", val) return val end --炫翼技能 function StrengthModel:can_wing_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FWing) self:SetCacheFlag("can_wing_skill_up", val) return val end --炫翼珍宝 function StrengthModel:can_wing_shape_up_or_active( ) local val = ShapeModel:GetInstance():CheckRedByType(false, FosterConst.ModuleId.FWing) self:SetCacheFlag("can_wing_shape_up_or_active", val) return val end --宝具进阶 function StrengthModel:can_pearl_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FPearl) self:SetCacheFlag("can_pearl_stren", val) return val end --宝具提升 function StrengthModel:can_pearl_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FPearl) self:SetCacheFlag("can_pearl_up", val) return val end --宝具技能 function StrengthModel:can_pearl_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FPearl) self:SetCacheFlag("can_pearl_skill_up", val) return val end --宝具珍宝 function StrengthModel:can_pearl_shape_up_or_active( ) local val = ShapeModel:GetInstance():CheckRedByType(false, FosterConst.ModuleId.FPearl) self:SetCacheFlag("can_pearl_shape_up_or_active", val) return val end --武器进阶 function StrengthModel:can_weapon_stren( ) local val = FosterModel:GetInstance():CanUpgrade(false, FosterConst.ModuleId.FWeapon) self:SetCacheFlag("can_weapon_stren", val) return val end --武器提升 function StrengthModel:can_weapon_up( ) local val = FosterModel:GetInstance():CanKernel(false, FosterConst.ModuleId.FWeapon) self:SetCacheFlag("can_weapon_up", val) return val end --武器技能 function StrengthModel:can_weapon_skill_up( ) local val = FosterModel:GetInstance():CanSkillUpgradeByType(false, FosterConst.ModuleId.FWeapon) self:SetCacheFlag("can_weapon_skill_up", val) return val end --武器珍宝 function StrengthModel:can_weapon_shape_up_or_active( ) local val = ShapeModel:GetInstance():CheckRedByType(false, FosterConst.ModuleId.FWeapon) self:SetCacheFlag("can_weapon_shape_up_or_active", val) return val end --职业技能 function StrengthModel:can_careerskill_up( ) local val = SkillUIModel:getInstance():CheckSkillRedDot(false, Config.ConfigSkillUI.TabEnum.CareerSkill) self:SetCacheFlag("can_careerskill_up", val) return val end --被动技能 function StrengthModel:can_passiveskill_up( ) local val = SkillUIModel:getInstance():CheckSkillRedDot(false, Config.ConfigSkillUI.TabEnum.PassiveSkill) self:SetCacheFlag("can_passiveskill_up", val) return val end --特殊技能 function StrengthModel:can_specialskill_up( ) local val = SkillUIModel:getInstance():CheckSkillRedDot(false, Config.ConfigSkillUI.TabEnum.SpecialSkill) self:SetCacheFlag("can_specialskill_up", val) return val end --装备精炼 function StrengthModel:can_equip_stren( ) local val = EquipModel:getInstance():GetEquipRedDotByType(EquipModel.MainTab.Strengthen) self:SetCacheFlag("can_equip_stren", val) return val end --装备升星 function StrengthModel:can_equip_up( ) local val = EquipModel:getInstance():CheckEvolutionRedDot() self:SetCacheFlag("can_equip_up", val) return val end --装备升品 function StrengthModel:can_equip_red_up( ) local val = EquipModel:getInstance():CheckRedEquipRedDot() self:SetCacheFlag("can_equip_red_up", val) return val end --星级套装 function StrengthModel:can_equip_star( ) local val = EquipModel:getInstance():CheckEvolutionStrengthStarRedDot() self:SetCacheFlag("can_equip_star", val) return val end --宝石镶嵌 function StrengthModel:can_stone_put( ) local val = EquipModel:getInstance():GetEquipRedDotByType(EquipModel.MainTab.Gemstone) self:SetCacheFlag("can_stone_put", val) return val end --宝石升级 function StrengthModel:can_stone_up( ) local val = ComposeModel:getInstance():GetComposeRedDotByType(ComposeModel.MainTab.Gemstone) self:SetCacheFlag("can_stone_up", val) return val end -- 幻光激活 function StrengthModel:can_light_active() local val = LightModel:getInstance():GetLightAllActive() self:SetCacheFlag("can_light_active", val) return val end -- 幻光升级 function StrengthModel:can_light_up() local val = LightModel:getInstance():GetLightAllUpGrade() self:SetCacheFlag("can_light_up", val) return val end --信物升级 function StrengthModel:can_ship_up( ) local mate_model = MateModel:GetInstance() local val = mate_model:GetShipRedDot() -- if val then -- --判断是否有伙伴 -- local basic_data = mate_model:GetBasicInfo( ) -- if not (basic_data and TableSize(basic_data) > 0) then -- val = false -- end -- end self:SetCacheFlag("can_ship_up", val) return val end --守护合成 function StrengthModel:can_guard_compose( ) local val = ComposeModel:getInstance():GetComposeRedDotByType(ComposeModel.MainTab.Guard) self:SetCacheFlag("can_guard_compose", val) return val end --饰品合成 function StrengthModel:can_ornaments_compose( ) local val = ComposeModel:getInstance():GetComposeRedDotByType(ComposeModel.MainTab.Ornaments) self:SetCacheFlag("can_ornaments_compose", val) return val end --橙装合成 function StrengthModel:can_orange_equip_compose( ) local val = ComposeModel:getInstance():GetComposeRedDotByType(ComposeModel.MainTab.Equip) self:SetCacheFlag("can_orange_equip_compose", val) return val end --宠物升级 function StrengthModel:can_pet_up( ) local val = PetModel:getInstance():GetPetRedDotByType(PetConst.RED_DOT_TYPE.Feed) self:SetCacheFlag("can_pet_up", val) return val end --宠物升星 function StrengthModel:can_pet_starup( ) local val = PetModel:getInstance():GetPetRedDotByType(PetConst.RED_DOT_TYPE.Evolve) self:SetCacheFlag("can_pet_starup", val) return val end --宠物宝石 function StrengthModel:can_pet_stone( ) local val = PetModel:getInstance():GetPetRedDotByType(PetConst.RED_DOT_TYPE.Diamond) self:SetCacheFlag("can_pet_stone", val) return val end --宝宝成长 function StrengthModel:can_baby_up( ) local val = ChildModel:GetInstance():IsRedDotChildTrain() self:SetCacheFlag("can_baby_up", val) return val end --宝宝技能 function StrengthModel:can_babyskill_up( ) local val = ChildModel:GetInstance():IsRedDotChildSkill() self:SetCacheFlag("can_babyskill_up", val) return val end --战魂阵型 function StrengthModel:can_warsoul_suit( ) local val = WarSoulModel.getInstance():GetWarSoulRedDotByType(WarSoulModel.MainTab.Suit) self:SetCacheFlag("can_warsoul_suit", val) return val end --战魂强化 function StrengthModel:can_warsoul_bag( ) local val = WarSoulModel.getInstance():GetWarSoulRedDotByType(WarSoulModel.MainTab.Strength) self:SetCacheFlag("can_warsoul_bag", val) return val end --战魂升星 function StrengthModel:can_warsoul_svolution( ) local val = WarSoulModel.getInstance():GetWarSoulRedDotByType(WarSoulModel.MainTab.Evolution) self:SetCacheFlag("can_warsoul_svolution", val) return val end --魂力激活 function StrengthModel:can_soul_power_up( ) local val = SoulPowerModel.getInstance():GetSoulPowerCanGoFinalLv() self:SetCacheFlag("can_soul_power_up", val) return val end --魂力突破 function StrengthModel:can_soul_break( ) local val = SoulPowerModel.getInstance():GetSoulPOwerCanUpGrade() self:SetCacheFlag("can_soul_break", val) return val end --放置冒险 function StrengthModel:exp_can_get( ) local exp_model = ExpDunModel:getInstance() local val = exp_model:GetExpRedByRedType(ExpDunModel.Red_Type.HangUp) self:SetCacheFlag("exp_can_get", val) return val end --经验加速 function StrengthModel:exp_speed_can_get( ) local exp_model = ExpDunModel:getInstance() local val = exp_model:GetExpRedByRedType(ExpDunModel.Red_Type.QuickHangUp) self:SetCacheFlag("exp_speed_can_get", val) return val end --时装激活 function StrengthModel:can_fashion_active( ) local val = FashionModel:getInstance():GetFashionCanActive() self:SetCacheFlag("can_fashion_active", val) return val end --时装升星 function StrengthModel:can_fashion_up( ) local val = FashionModel:getInstance():GetFashionCanUp() self:SetCacheFlag("can_fashion_up", val) return val end --装备吞噬 function StrengthModel:can_equip_eat( ) local val = BagModel:getInstance():GetCanSwallowStrength() self:SetCacheFlag("can_equip_eat", val) return val end -----以下老项目代码---------- --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- -- -- --是否能变强 -- -- function StrengthModel:CanStrength( ) -- -- -- local tb = {} -- -- -- for k,v in pairs(Config.ConfigStrength.Func) do -- -- -- local vo = OpenFun.LinkWin[v.winId.."@"..v.subId] -- -- -- if vo and RoleManager.Instance.mainRoleInfo.level >= vo.openLv then -- -- -- local func = self[v.check] -- -- -- if func and func() then -- -- -- table.insert(tb, v) -- -- -- break -- -- -- end -- -- -- end -- -- -- end -- -- -- return #tb>0 -- -- -- return false -- -- print("===", self.strength_flag_1, self.strength_flag_2, self.strength_flag_3, self.strength_flag_4) -- -- return self.strength_flag_1 > 0 or self.strength_flag_2 > 0 or self.strength_flag_3 > 0 or self.strength_flag_4 > 0 -- -- end -- ----------------------------------变强主界面---------------------------------- -- -- --技能进阶 -- -- function StrengthModel:Progress_Skill(max_num) -- -- local cur = 0 -- -- local mySkillList = SkillManager:getInstance().mySkillList -- -- if mySkillList and TableSize(mySkillList) > 0 then -- -- for k,v in pairs(mySkillList) do -- -- -- if k>=10001 and k<=10007 then -- -- cur = cur + v.level -- -- -- end -- -- end -- -- end -- -- return (cur/max_num)*100, cur -- -- end -- --装备精炼 -- function StrengthModel:Progress_Equip_Stren(max_num) -- local cur = 0 -- local cur_data = "" -- -- local equip_info = EquipModel:getInstance():GetStrenDynamic() -- local stren_info = {} -- stren_info[1], stren_info[2], stren_info[3], stren_info[4] = BagModel:getInstance():GetAllAddition() --获取全身1装备精炼数 2星级 3宝石数 4圣印强化数 -- cur = stren_info[1] and stren_info[1] or cur -- cur_data = cur -- return (cur/max_num)*100, cur_data -- end -- --坐骑升星 -- function StrengthModel:Progress_Horse(max_num) -- local cur = 0 -- local cur_data = "" -- local data = HorseModel:getInstance().horse_data -- if data and data.stage and data.star then -- cur = (tonumber(data.stage)-1)*10 + tonumber(data.star) -- cur_data = data.stage.."阶"..data.star.."星" -- end -- return (cur/max_num)*100, cur_data -- end -- --宝具升星 -- function StrengthModel:Progress_Treasure(max_num) -- local cur = 0 -- local cur_data = "" -- local data = NewTalismanModel:getInstance().talisman_upgrade_data -- if data and data.lv then -- cur = data.lv -- end -- cur_data = cur -- return (cur/max_num)*100, cur_data -- end -- --星灵升星 -- function StrengthModel:Progress_StarSpirit(max_num) -- local cur = 0 -- local cur_data = "" -- local data = StarSpiritModel:getInstance():GetStarSpiritDataList() -- local list = {} -- local high_stage = 0 -- for k,v in pairs(data) do -- if v and v.stage and v.stage > high_stage then -- high_stage = v.stage -- end -- end -- if data and #data > 0 then -- local high_combat = 0 -- for k,v in pairs(data) do -- if v.stage == high_stage and v.combat_stage and tonumber(v.combat_stage) > high_combat then -- high_combat = tonumber(v.combat_stage) -- cur = (tonumber(v.stage) - 1)*3 + tonumber(v.star) -- cur_data = v.stage.."阶"..v.star.."星" -- end -- end -- end -- -- if data and #data > 0 then -- -- for k,v in pairs(data) do -- -- cur = cur + v.combat_stage -- -- end -- -- end -- return (cur/max_num)*100, cur_data -- end -- --6圣灵强化 -- function StrengthModel:Progress_Pyx(max_num) -- local cur = 0 -- local cur_data = "" -- local data = PyxModel:getInstance():GetSpiritList() -- local list = {} -- local high_lv = 0 -- for k,v in pairs(data) do -- if v and v.lv and v.lv >= high_lv then -- high_lv = v.lv -- end -- end -- for k,v in pairs(data) do -- if v.lv == high_lv then -- table.insert(list, v) -- end -- end -- if list and #list > 0 then -- local high_combat = 0 -- for k,v in pairs(list) do -- if v.lv and v.lv >= 1 then -- local key = v.spirit_id.."@"..v.lv -- local combat = GetFighting(ErlangParser:GetInstance():Parse(Config.Spiritconfig[key].attr)) -- if combat >= high_combat then -- high_combat = combat -- cur = v.lv -- end -- end -- end -- end -- cur_data = cur -- return (cur/max_num)*100, cur_data -- end -- --宝石镶嵌 -- function StrengthModel:Progress_Jewel(max_num) -- local cur = 0 -- local cur_data = "" -- local stren_info = {} -- stren_info[1], stren_info[2], stren_info[3], stren_info[4] = BagModel:getInstance():GetAllAddition() -- cur = stren_info[3] and stren_info[3] or cur -- cur_data = cur -- return (cur/max_num)*100, cur_data -- end -- -- --翅膀强化 -- -- function StrengthModel:Progress_Wing(max_num) -- -- local cur = 0 -- -- local data = WingModel:getInstance().wing_vo -- -- if data and data.combat then -- -- cur = data.combat -- -- end -- -- return (cur/max_num)*100, cur -- -- end -- -- --装备合成 -- -- function StrengthModel:Progress_Equip_Compose(max_num) -- -- local cur = 0 -- -- local data = 1 -- -- return (cur/max_num)*100, cur -- -- end -- --11套装合成 -- function StrengthModel:Progress_Equip_Suit(max_num) -- local cur = 0 -- local cur_data = "" -- local data = GoodsModel:getInstance().wear_equip_list -- if data then -- local len = TableSize(data) -- self.wear_equip_list = {} -- local function handleEquip() -- if self.wear_equip_list then -- for k,v in pairs(self.wear_equip_list) do -- if v and v.suit_lv and v.suit_slv and v.cell then -- local pos_2_type_cfg = Config.Equippos2suittype -- local cfg = Config.Improvesuit -- if pos_2_type_cfg[v.cell] and pos_2_type_cfg[v.cell].type and cfg[pos_2_type_cfg[v.cell].type.."@"..v.suit_lv.."@"..v.suit_slv.."@"] then -- cur = cur + cfg[pos_2_type_cfg[v.cell].type.."@"..v.suit_lv.."@"..v.suit_slv.."@"].point -- end -- end -- end -- end -- end -- local function callback(dynamic) -- if dynamic then -- self.wear_equip_list[dynamic.cell] = dynamic -- if TableSize(self.wear_equip_list) == len then -- handleEquip() -- end -- end -- end -- for k,v in pairs(data) do -- if v and v.goods_id then -- GoodsModel:getInstance():GetDynamic(v.goods_id, callback) -- end -- end -- end -- return (cur/max_num)*100, cur_data -- end -- -- --装备洗练 -- -- function StrengthModel:Progress_Equip_Wash(max_num) -- -- local cur = 0 -- -- local data = 1 -- -- return (cur/max_num)*100, cur -- -- end -- -- if data then -- -- if data.talent_skills and TableSize(data.talent_skills) > 0 and data.talent_skills.skills and TableSize(data.talent_skills.skills) > 0 then -- -- for k,v in pairs(data.talent_skills.skills) do -- -- cur = cur + 1 -- -- end -- -- end -- -- end -- -- return (cur/max_num)*100, cur -- -- end -- --神魂升级 暂时还没做 -- -- function StrengthModel:Progress_(max_num) -- -- -- body -- -- end -- --装备替换 -- function StrengthModel:Progress_Equip_repalce(max_num) -- local cur = 0 -- local cur_data = "" -- local data = 1 -- local equip_cfg = Config.Equipattr -- local role_equip = GoodsModel:getInstance().wear_equip_list -- if data and role_equip and equip_cfg then -- for k,v in pairs(role_equip) do -- if v and v.type_id and equip_cfg[v.type_id] then -- cur = cur + tonumber(equip_cfg[v.type_id].base_rating) -- end -- end -- end -- return (cur/max_num)*100, cur_data -- end -- -- 坐骑装备 -- function StrengthModel:Progress_Equip_horse(max_num) -- local cur = 0 -- local cur_data = "" -- local data = GoodsModel:getInstance():GetHorseEquipList() -- if data then -- for k,v in pairs(data) do -- if v and v.type_id and HorseModel:getInstance():GetHorseEquipAttrCfg(v.type_id) then -- cur = cur + tonumber(HorseModel:getInstance():GetHorseEquipAttrCfg(v.type_id).base_rating) -- end -- end -- end -- return (cur/max_num)*100, cur_data -- end -- -- 神格提升 -- function StrengthModel:Progress_God_Hood(max_num) -- local cur = 0 -- local cur_data = "" -- local data, cur_cfg, next_cfg = DeityModel:getInstance():GetCurDeityInfo() -- if data and cur_cfg then -- cur = tonumber(cur_cfg.id) -- cur_data = cur_cfg.name..cur_cfg.lv -- else -- cur_data = "暂无" -- end -- return (cur/max_num)*100, cur_data -- end -- --根据标签id获取对应标签下的item信息 -- function StrengthModel:GetItemListByIndex(id) -- local list = {} -- local level = RoleManager.Instance.mainRoleInfo.level -- local config_data = DeepCopy(Config.Improvefighttask) -- for i,v in pairs(config_data) do -- if v.page_id == id and v.sort_id ~= 14 and (level >= v.lv_min and level <= v.lv_max) then --现在先排除14 神魂 还没做这个模块 -- -- if level >= v.lv_min and level <= v.lv_max then -- -- table.insert(list, v) -- -- end -- v.sort_huodong_id = 0 -- local data = self:refresh_data(v) -- if data ~= nil and self:CheckIsOpenByLevel(data) and not self:CheckSpicalIsOpen(data) then -- data.per, data.cur_num = self:Get_Per(data) -- self:Add_need_close(data) -- table.insert(list, data) -- end -- end -- end -- local _sort = function( a,b ) -- if a.per >=100 and b.per <100 then -- return false -- elseif b.per >=100 and a.per <100 then -- return true -- else -- if a.open_flag > b.open_flag then -- return true -- elseif a.open_flag == b.open_flag then -- if a.sort_huodong_id > b.sort_huodong_id then -- return false -- elseif a.sort_huodong_id < b.sort_huodong_id then -- return true -- end -- if a.sort_id >= b.sort_id then -- return false -- else -- return true -- end -- else -- return false -- end -- end -- end -- table.sort(list, _sort) -- return list -- end -- -- 条件字段中有判断等级开启的level的 可以判断是否到达等级而显示 -- function StrengthModel:CheckIsOpenByLevel(data) -- local is_open = false -- local str = ErlangParser:GetInstance():Parse(data.condition)[1] -- str = Trim(str) -- local list = Split(str,"_") -- local task_type = list[1] -- local task_id = list[2] -- if task_type == "level" then -- if RoleManager.Instance.mainRoleInfo.level >= tonumber(task_id) then -- is_open = true -- end -- else -- is_open = true -- end -- return is_open -- end -- -- 有些是特殊判断是否需要显示的 -- function StrengthModel:CheckSpicalIsOpen(data) -- local not_show = false -- if data.page_id == 5 and data.sort_id == 2 then --投资计划 特殊判断显示 -- if InvestModel:getInstance():IsGetAll(InvestModel.type.normal) and InvestModel:getInstance():IsGetAll(InvestModel.type.high) then -- not_show = true --不显示 -- end -- end -- return not_show -- end -- function StrengthModel:refresh_data(data) -- local str = ErlangParser:GetInstance():Parse(data.condition)[1] -- str = Trim(str) -- local list = Split(str,"_") -- local task_type = list[1] -- local task_id = list[2] -- if task_type ~= "level" then -- task_type = str -- end -- data.task_type = task_type -- data.task_id = task_id -- local cur_level = RoleManager.Instance.mainRoleInfo.level -- local open_data = {} -- if task_type == "level" then -- if cur_level >= tonumber(task_id) then -- data.open_flag = 1 -- else -- data.open_flag = 0 -- end -- else -- open_data = Config.ConfigStrength.OpenLv[task_type] -- if not open_data then return end -- if cur_level >= open_data.openLv then -- data.open_flag = 1 -- if task_type == "quiz" then -- local _data = QuizModel:getInstance():GetQuizState() -- if _data then -- if _data.stage == 3 or _data.stage == 0 then -- data.open_flag = 0 -- end -- else -- data.open_flag = 0 -- end -- self:Activity_time_show(data) -- elseif task_type == "guildfire" then -- -- if RoleManager.Instance.mainRoleInfo.guild_id == 0 then -- -- data.open_flag = 0 -- -- data.huodong_des = "未加入社团" -- -- else -- -- local _data = GuildModel:getInstance():GetBonfireActInfo() -- -- if _data then -- -- if _data.state == 0 then -- -- data.open_flag = 0 -- -- end -- -- else -- -- data.open_flag = 0 -- -- end -- -- self:Activity_time_show(data) -- -- end -- end -- else -- data.open_flag = 0 -- data.huodong_des = data.task_nonopen -- end -- end -- return data -- end -- function StrengthModel:Get_Per(data) -- local per = data.per or 0 -- local cur_num = 0 -- local task_type = data.task_type -- local task_id = data.task_id -- local max_num = data.max_num -- local fun = nil -- if data.page_id == 1 then --只有第一个标签下的信息才有进度条 因为会有很多相同的id值 所以用sort_id替代id值 -- for k,v in pairs(Config.ConfigStrength.GetProgressFunc) do -- if tonumber(data.sort_id) == tonumber(v.id) then -- fun = self[v.func] -- per, cur_num = fun(self, max_num) -- end -- end -- end -- -- if per <= 1 then -- -- per = 1 -- -- elseif per >= 100 then -- -- per = 100 -- -- end -- -- if data.page_id == 1 then -- -- if per >= 100 then -- -- per = 99 -- -- end -- -- end -- return per, cur_num -- end -- function StrengthModel:Add_need_close(data) -- -- body -- end -- function StrengthModel:Activity_time_show(data) -- local index = 1 -- local time_table_list = {} -- local time_table_list_today = {} -- for k,v in pairs(Config.Improveactivityhall) do -- local str_id = ErlangParser:GetInstance():Parse(v.str_id)[1] -- str_id = Trim(str_id) -- if str_id == data.task_type then -- time_table_list[index] = DeepCopy(v) -- index=index+1 -- end -- end--获取相应的数据列表 -- index = 1 -- local cur_time = TimeUtil:getServerTime() -- local now_time = os.date("*t",cur_time) -- local today = now_time.wday-1--当天周几 -- for k,v in pairs(time_table_list) do -- local day_list = ErlangParser:GetInstance():Parse(v.adate)[1] -- local is_today = false -- for x,y in pairs(day_list) do -- if tonumber(y) == today then -- is_today = true -- break -- end -- end -- if is_today then -- time_table_list_today[index] = v -- index = index + 1 -- end -- end -- local _sort = function(a,b) -- if a.asort > b.asort then -- return false -- else -- return true -- end -- end -- table.sort( time_table_list, _sort ) -- if TableSize(time_table_list_today) == 0 then -- data.IsNull = true -- end -- local time_inside = false -- local isover = false -- local next_time = nil -- for k,v in pairs(time_table_list_today) do -- local opentime = ErlangParser:GetInstance():Parse(v.atime) -- if opentime then -- if now_time.hour < tonumber(opentime[1][1]) then -- next_time = opentime[1] -- elseif now_time.hour == tonumber(opentime[1][1]) and now_time.min < tonumber(opentime[1][2]) then -- next_time = opentime[1] -- elseif now_time.hour == tonumber(opentime[1][1]) and now_time.min == tonumber(opentime[1][2]) and now_time.sec <= tonumber(opentime[1][3]) then -- next_time = opentime[1] -- end -- if next_time then -- break -- end -- end -- end -- if not next_time then -- data.per = 100 -- data.huodong_des = "over" -- else -- data.sort_huodong_id = tonumber(next_time[1]) * 1000 + tonumber(next_time[2]) -- if tonumber(next_time[1]) == 0 then -- next_time[1] = "00" -- end -- if tonumber(next_time[1]) < 10 then -- next_time[1] = "0"..tonumber(next_time[1]) -- end -- if tonumber(next_time[2]) == 0 then -- next_time[2] = "00" -- end -- if tonumber(next_time[2]) < 10 then -- next_time[2] = "0"..tonumber(next_time[2]) -- end -- data.per = 5 -- local str = next_time[1]..":"..next_time[2].."开启" -- data.huodong_des = str -- end -- if data.open_flag == 1 then -- data.sort_huodong_id = 0 -- data.huodong_des = "" -- data.per = 5 -- end -- end -- ------------------------------------------挑战失败推送-------------------------------------- -- --挑战失败界面的"变强"推送 boss挑战失败界面 BossResultView 副本失败 DungeonResultView 世界boss失败 ReliveView -- function StrengthModel:GetStrengthPush() -- local list = {} -- local strong_list = {} -- local level = RoleManager.Instance.mainRoleInfo.level -- local config_data = DeepCopy(Config.Improvefighttask) -- for k,v in pairs(config_data) do -- if v.page_id == 1 and v.sort_id <= 6 and (level >= v.lv_min and level <= v.lv_max) then -- if self:IsFuncOpenLevel(v) then -- local data = self:New_Get_Per(v) -- if data then -- table.insert(list, data) -- end -- end -- end -- end -- if #list >= 4 then -- local sort_func = function(a,b) --对变强途径排序 最小值的排在前面 -- if a.per >= b.per then -- return false -- else -- return true -- end -- end -- table.sort( list, sort_func ) -- for k,v in pairs(list) do --拿出最前面的四个最小值 -- if k <= 4 then -- local strong_way = {winId = v.tagplace, subId = v.sub_tag, per = v.per} -- table.insert(strong_list, strong_way) -- end -- end -- else -- return Config.ConfigBoss.StrongWay -- end -- return strong_list -- end -- function StrengthModel:New_Get_Per(data) -- local per = data.per or 0 -- local task_type = data.task_type -- local task_id = data.task_id -- local max_num = data.max_num -- local fun = nil -- if data.page_id == 1 then -- -- for k,v in pairs(Config.ConfigStrength.StrongWay) do -- -- if tonumber(data.sort_id) == tonumber(v.id) then -- -- fun = self[v.func] -- -- per = fun(self, max_num) -- -- data.per = per or 0 -- -- end -- -- end -- for k,v in pairs(Config.ConfigStrength.GetProgressFunc) do -- if tonumber(data.sort_id) == tonumber(v.id) then -- fun = self[v.func] -- per = fun(self, max_num) -- data.per = per or 0 -- end -- end -- end -- return data -- end -- --是否是模块开启等级 -- function StrengthModel:IsFuncOpenLevel(data) -- local str = ErlangParser:GetInstance():Parse(data.condition)[1] -- str = Trim(str) -- local list = Split(str,"_") -- local task_type = list[1] -- local task_id = list[2] -- if task_type ~= "level" then return false end -- if RoleManager.Instance.mainRoleInfo.level >= tonumber(task_id) then -- return true -- end -- return false -- end -- function StrengthModel:SetStrengthFlag(type,value) -- local t1 = math.floor(type / 20) -- local t2 = type % 20 -- local flag = (t2 > 0 and t1 + 1 or t1) -- local bit_num = (t2 == 0 and 20 or t2) -- if flag == 1 then -- if value then -- self.strength_flag_1 = bit.bor(self.strength_flag_1, bit.lshift(1,bit_num)) -- else -- self.strength_flag_1 = bit.band(self.strength_flag_1, bit.bnot(bit.lshift(1,bit_num))) -- end -- -- self:ChangeVar("strength_flag_1", self.strength_flag_1, nil, true) -- elseif flag == 2 then -- if value then -- self.strength_flag_2 = bit.bor(self.strength_flag_2, bit.lshift(1,bit_num)) -- else -- self.strength_flag_2 = bit.band(self.strength_flag_2, bit.bnot(bit.lshift(1,bit_num))) -- end -- -- self:ChangeVar("strength_flag_2", self.strength_flag_2, nil, true) -- elseif flag == 3 then -- if value then -- self.strength_flag_3 = bit.bor(self.strength_flag_3, bit.lshift(1,bit_num)) -- else -- self.strength_flag_3 = bit.band(self.strength_flag_3, bit.bnot(bit.lshift(1,bit_num))) -- end -- -- self:ChangeVar("strength_flag_3", self.strength_flag_3, nil, true) -- elseif flag == 4 then -- if value then -- self.strength_flag_4 = bit.bor(self.strength_flag_4, bit.lshift(1,bit_num)) -- else -- self.strength_flag_4 = bit.band(self.strength_flag_4, bit.bnot(bit.lshift(1,bit_num))) -- end -- end -- end --获得死亡复活变强配置 function StrengthModel:GetStrongWayCfg( ) local lv = RoleManager.Instance.mainRoleInfo.level for k,v in pairs(Config.Rbstronger) do if lv >= v.lv_min and lv <= v.lv_max then local result = stringtotable(v.grade) for kk,vv in pairs(result) do vv.module_id = vv[1] vv.sub_id = vv[2] end return result end end return nil end --是否是其他特殊选项 function StrengthModel:IsOtherOption(module_id, module_sub) if not module_id or not module_sub then return false end local key = module_id .. "@" .. module_sub local t = { ["159@1"] = true, ["451@5"] = true, ["450@2"] = true, } return t[key] end --获得死亡复活变强配置 function StrengthModel:GetOtherOption( ) local b = false local option_res = "" local modue_id = 450 local module_sub = 2 local module_name = "" local vip = RoleManager.Instance:GetMainRoleVo().vip_flag local sub_tab_id = false if not RechargeActivityModel:getInstance():IsFirstRechager() then b = true local career = RoleManager.Instance.mainRoleInfo.career if career == 1 or career == 2 then option_res = "ui_item_first_rechager_1" else option_res = "ui_item_first_rechager_2" end modue_id = 159 module_sub = 1 module_name = "首充" elseif vip < 3 then b = true option_res = "ui_item_vip_3" module_name = "VIP3" sub_tab_id = 3 elseif vip < 4 then b = true option_res = "ui_item_vip_4" module_name = "VIP4" sub_tab_id = 4 elseif RoleManager.Instance.mainRoleInfo.sup_vip_type == 0 then b = true option_res = "ui_item_surper_vip" modue_id = 451 module_sub = 5 module_name = "贵族" elseif vip < 5 then b = true option_res = "ui_item_vip_5" module_name = "VIP5" sub_tab_id = 5 end return b, option_res, modue_id, module_sub, module_name,sub_tab_id end