MonsterCampManager = {}; local this = MonsterCampManager local monsterCampConfig = ConfigManager.GetConfig(ConfigName.FloodConfig) local monsterGroupConfig = ConfigManager.GetConfig(ConfigName.MonsterGroup) local monsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig) local monterViewConfig = ConfigManager.GetConfig(ConfigName.MonsterViewConfig) local heroViewConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local resConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) local CampTowerConfig = ConfigManager.GetConfig(ConfigName.CampTowerConfig) local campTowerSetting = ConfigManager.GetConfig(ConfigName.CampTowerSetting) local gameSetting = ConfigManager.GetConfig(ConfigName.GameSetting) local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) --四灵试炼数据 this.fourMonsterData = {} this.CurOffsetIndex = -1 function this.Initialize() this.isMaxMonsterWave = false this.monsterWave = 0 -- 当前妖兽波次 this.m_Jump = false -- 跳过战斗设置 ----------------------------------------------------------------------四灵试炼------------------------------------------------------------------ local config = {} for i = 1 ,4 do this.fourMonsterData[i] = {} this.fourMonsterData[i].freeTimeId = campTowerSetting[1].FlashTimesPrice[i][1] this.fourMonsterData[i].buyTimeId = campTowerSetting[1].FlashTimesPrice[i][2] this.fourMonsterData[i].teamId = campTowerSetting[1].Formation[i] this.fourMonsterData[i].monsterWave = 0 --0 未开 1已开 this.fourMonsterData[i].openState = 1 this.fourMonsterData[i].freeTime = 0 this.fourMonsterData[i].buyTime = 0 this.fourMonsterData[i].canFightTime = 10 this.fourMonsterData[i].fourElementType = i end end function this.InitFourMonsterData(msg) for i = 1 , #msg.info do local index = msg.info[i].type this.fourMonsterData[index].monsterWave = msg.info[i].currentFloor this.fourMonsterData[index].canFightTime = msg.info[i].remainTimes this.fourMonsterData[index].openState = msg.info[i].overTime this.GetTimeTip(index) end Game.GlobalEvent:DispatchEvent(GameEvent.FourEle.RefreshView) end --设置扫荡剩余次数 function this.GetTimeTip(campId) this.fourMonsterData[campId].buyTime = PrivilegeManager.GetPrivilegeRemainValue(this.fourMonsterData[campId].buyTimeId) this.fourMonsterData[campId].freeTime= PrivilegeManager.GetPrivilegeRemainValue(this.fourMonsterData[campId].freeTimeId) --免费次数 if campId == 1 then CheckRedPointStatus(RedPointType.PersonTrail) elseif campId == 2 then CheckRedPointStatus(RedPointType.BuddishTrail) elseif campId == 3 then CheckRedPointStatus(RedPointType.DemonTrail) elseif campId == 4 then CheckRedPointStatus(RedPointType.TaoistTrail) end return this.fourMonsterData[campId].freeTime,this.fourMonsterData[campId].buyTime end function this.GetCost(campId) local buyTimeId = this.fourMonsterData[campId].buyTimeId local storeData = ConfigManager.GetConfigDataByDoubleKey(ConfigName.StoreConfig, "StoreId", 7, "Limit", buyTimeId) --商店表数据 local buyTimes = (PrivilegeManager.GetPrivilegeUsedTimes(buyTimeId) + 1) > PrivilegeManager.GetPrivilegeNumber(buyTimeId) and PrivilegeManager.GetPrivilegeNumber(buyTimeId) or (PrivilegeManager.GetPrivilegeUsedTimes(buyTimeId) + 1) return storeData.Id, storeData.Cost[1][1],storeData.Cost[2][buyTimes] end --获取当前通过的总层数 function this.GetFourElementTotalWave() local waves = 0 for k,v in pairs(this.fourMonsterData) do waves = waves + v.monsterWave end return waves end function this.GetCurFourElementMonsterInfo(index) return this.fourMonsterData[index] end --得到从第1层到当前层的数据 function this.GetFourElementMonstersInfo(curType,curWave) local monsterInfo = {} local data = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"CampId",curType,"FloorId",curWave) for i = 1, curWave + data.UpLimitWave do local tempData = this.GetFourElementMonsterInfoByWave(curType,i) if tempData then table.insert(monsterInfo,tempData) end end return monsterInfo end function this.GetFourElementMonsterInfoByWave(curType,wave) local tempConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"CampId",curType,"FloorId",wave) if not tempConfig then return nil end local data = {} data.id = tempConfig.Id data.wave = tempConfig.FloorId --战力 data.power = tempConfig.Force data.firstReward = {} --首通奖励 if tempConfig.FirstReward and #tempConfig.FirstReward > 0 then for i = 1, #tempConfig.FirstReward do table.insert(data.firstReward,{id = tempConfig.FirstReward[i][1],num = tempConfig.FirstReward[i][2]}) end end data.commonReward = {} --首通奖励 if tempConfig.CommonReward and #tempConfig.CommonReward > 0 then for i = 1, #tempConfig.CommonReward do table.insert(data.commonReward,{id = tempConfig.CommonReward[i][1],num = tempConfig.CommonReward[i][2]}) end end local monsterGroupId = tempConfig.Monster -- 默认显示第一只怪 local id = monsterGroupConfig[monsterGroupId].Contents[1][1] data.monster = monsterGroupConfig[monsterGroupId].Contents[1] data.monsterConfig = monsterConfig[id] data.herodata = this.SetSingleMonster(data.monsterConfig.MonsterId) return data end function this.SetSingleMonster(id) local herodata = {} local _configData = ConfigManager.GetConfigData(ConfigName.HeroConfig,id) herodata.heroConfig = _configData herodata.heroViewConfig = _configData herodata.live = GetResourcePath(_configData.Live) herodata.painting = GetResourcePath(_configData.Painting) herodata.icon = GetResourcePath(_configData.Icon) herodata.scale = _configData.Scale herodata.position = _configData.Position herodata.profession = _configData.Profession herodata.ProfessionResourceId = _configData.ProfessionResourceId if GetJobSpriteStrByJobNum(_configData.Profession) then herodata.professionIcon = GetJobSpriteStrByJobNum(_configData.Profession) else herodata.professionIcon = GetJobSpriteStrByJobNum(1) end herodata.name = _configData.ReadingName herodata.property = _configData.PropertyName return herodata end function this.GetMonsterTeamInfo(monsterGroupId) local bossTeamsInfo = {} local bossIds = monsterGroupConfig[monsterGroupId].Contents[1] for i = 1, #bossIds do local monsterData = {} if bossIds[i] > 0 then monsterData.monsterConfig = monsterConfig[bossIds[i]] monsterData.herodata = this.SetSingleMonster(monsterData.monsterConfig.MonsterId) end table.insert(bossTeamsInfo,monsterData) end end function this.StraightBattle(id,type,func,curType) this.curType = curType local fightId = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"FloorId",id,"CampId",curType).Id NetManager.FourChallengeDoRequest(fightId,type,function(msg) if type == 0 then local fightData = BattleManager.GetBattleServerData(msg,0) this.drop = msg.drop UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.FOURELEMENT,function(result) if func then func() end if result.result == 0 then elseif result.result == 1 then this.fourMonsterData[curType].monsterWave = id end end) else UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function() if func then func() end end) end end) end --开始战斗 function this.ExecuteFightBattle(id,type,func,curType) this.StraightBattle(id,type,func,curType) -- -- 请求战斗结果 -- NetManager.GetMonsterFightResult(MonsterCampManager.monsterWave, FormationTypeDef.FORMATION_NORMAL, function (msg) -- if msg.result == 0 then -- UIManager.OpenPanel(UIName.BattleFailPopup, nil, false, UIName.MonsterCampPanel) -- else -- local result = {} -- result.drop = msg.enventDrop -- UIManager.OpenPanel(UIName.BattleWinPopup, nil, false, BATTLE_TYPE.FOURELEMENT, result, true, true) -- MonsterCampManager.monsterWave = MonsterCampManager.monsterWave + 1 -- end -- end) end function this.SaveFormation(curType) local curFormation = FormationManager.GetFormationByID(1700 + curType) local data = this.GetFriendHelpHero(curType) --上阵列表赋值 local choosedList ={} if data then for j = 1, #curFormation.teamHeroInfos do local teamInfo = curFormation.teamHeroInfos[j] -- 加空判断避免不知名错误 if teamInfo and teamInfo.heroId == data.hero.dynamicId then data.player.state = 1 else table.insert(choosedList, {heroId = teamInfo.heroId,position=teamInfo.position}) end end FormationManager.RefreshFormation( (1700 + curType), choosedList, FormationManager.formationList[(1700 + curType)].teamPokemonInfos ) end end ------------------------------四灵试炼 助战--------------------------------------- --创建一个英雄信息 function this.UpdateHeroDatas(_msgHeroData,_msgPlayerData) local heroData = {} heroData.soulPrintList={} heroData.heroBackData=_msgHeroData heroData.dynamicId = _msgHeroData.id local _id = _msgHeroData.heroId heroData.id = _id heroData.star = _msgHeroData.star heroData.lv = _msgHeroData.level--30 heroData.breakId=_msgHeroData.breakId heroData.upStarId=_msgHeroData.starBreakId heroData.createTime=_msgHeroData.createTimelocal heroData.lockState = _msgHeroData.lockState heroData.createtype = _msgHeroData.createtype local _configData = heroViewConfig[_id] heroData.skinId = _msgHeroData.skinId or 0 if heroData.skinId == 0 then heroData.skinConfig = _configData heroData.live = GetResourcePath(_configData.Live) heroData.painting = GetResourcePath(_configData.Painting) heroData.icon = GetResourcePath(_configData.Icon) heroData.scale = _configData.Scale heroData.position = _configData.Position else heroData.skinConfig = ConfigManager.GetConfigDataByKey(ConfigName.HeroSkin,"Type",heroData.skinId) heroData.live = GetResourcePath(heroData.skinConfig.Live) heroData.painting = GetResourcePath(heroData.skinConfig.Painting) heroData.icon = GetResourcePath(heroData.skinConfig.Icon) heroData.scale = heroData.skinConfig.Scale heroData.position = heroData.skinConfig.Position end heroData.heroViewConfig=heroViewConfig[_id] heroData.maxStar=_configData.MaxRank local actionPowerRormula= gameSetting[1].ActionPowerRormula heroData.actionPower=heroData.heroViewConfig.ActionPower+math.floor(((actionPowerRormula[1] * math.pow(heroData.lv, 3) + actionPowerRormula[2] * math.pow(heroData.lv, 2) + actionPowerRormula[3] * heroData.lv + actionPowerRormula[4])))--_msgHeroData.actionPower heroData.equipIdList=_msgHeroData.equipIdList for i = 1 , #heroData.equipIdList do EquipManager.SetEquipUpHeroDid(heroData.equipIdList[i],heroData.dynamicId) end heroData.jewels=_msgHeroData.jewels this.InitBaoDatas(_msgPlayerData.jewels) for i = 1 , #heroData.jewels do this.SetEquipTreasureUpHeroDid(heroData.jewels[i],heroData.dynamicId) end heroData.talismanList = _msgHeroData.especialEquipLevel --法宝等级 if(#_msgHeroData.soulPos>=1) then local soulPrintList = {} for i,v in ipairs(_msgHeroData.soulPos) do local soulPrint = { equipId = v.equipId, position = v.position} SoulPrintManager.AddSoulPrintUpHeroDynamicId(v.equipId,heroData.dynamicId) table.insert(soulPrintList, soulPrint) end heroData.soulPrintList= soulPrintList end heroData.heroConfig = heroViewConfig[_id] heroData.skillIdList={}--主动技 HeroManager.UpdateSkillIdList(heroData) heroData.passiveSkillList = {}--被动技 HeroManager.UpdatePassiveHeroSkill(heroData) heroData.hp = _configData.Hp heroData.attack = _configData.Attack heroData.pDef = _configData.PhysicalDefence heroData.mDef = _configData.MagicDefence heroData.speed = _configData.Speed heroData.live = GetResourcePath(_configData.Live) heroData.profession = _configData.Profession heroData.ProfessionResourceId= _configData.ProfessionResourceId if GetJobSpriteStrByJobNum(_configData.Profession) then heroData.professionIcon = GetJobSpriteStrByJobNum(_configData.Profession) else heroData.professionIcon = GetJobSpriteStrByJobNum(1) end heroData.name = _configData.ReadingName heroData.property = _configData.PropertyName heroData.warPower = HeroManager.CalculateHeroAllProValList(1, heroData, false)[HeroProType.WarPower] heroData.createtype = 1 return heroData end --宝器 local jewelConfig = ConfigManager.GetConfig(ConfigName.JewelConfig) function this.InitBaoDatas(_soulEquips) if not this.allTreasures then this.allTreasures = {} end if not _soulEquips then return end for i = 1, #_soulEquips do this.InitSingleTreasureData(_soulEquips[i]) end end --初始化单个宝物的数据 function this.InitSingleTreasureData(_singleData) if not _singleData or not _singleData.equipId then return end local single={} local staticId=_singleData.equipId local currJewel=jewelConfig[staticId] single.id=staticId single.idDyn=_singleData.id single.lv=_singleData.exp single.refineLv=_singleData.rebuildLevel single.maxLv=currJewel.Max[1] single.maxRefineLv=currJewel.Max[2] single.upHeroDid="" single.maxTreeLv = currJewel.GodHoodMaxlv single.treeLv = SacredTreeManager.treeLevel <= single.maxTreeLv and SacredTreeManager.treeLevel or single.maxTreeLv local quantity=currJewel.Level single.quantity=quantity single.frame=GetQuantityImageByquality(quantity) single.name=itemConfig[staticId].Name single.itemConfig=itemConfig[staticId] single.levelPool=currJewel.LevelupPool single.proIcon=GetProStrImageByProNum(currJewel.Race) single.refinePool=currJewel.RankupPool single.equipType=currJewel.Location if currJewel.Location==1 then single.type=Language[10505] else single.type=Language[10506] end single.icon=GetResourcePath(itemConfig[staticId].ResourceID) single.strongConfig=this.GetCurrTreasureLvConfig(1,currJewel.LevelupPool,_singleData.exp) single.refineConfig=this.GetCurrTreasureLvConfig(2,currJewel.RankupPool,_singleData.rebuildLevel) this.allTreasures[_singleData.id]=single end local jewerLevelUpConfig = ConfigManager.GetConfig(ConfigName.JewelRankupConfig) --获取当前宝物升级数据 function this.GetCurrTreasureLvConfig(_type,_id,_lv) for _, configInfo in ConfigPairs(jewerLevelUpConfig) do if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==_lv then return configInfo end end end --根据动态id获取宝物 function this.GetSingleTreasureByIdDyn(_idDyn) if not this.allTreasures[_idDyn] == nil then return nil end return this.allTreasures[_idDyn] end --设置装备穿戴的英雄 function this.SetEquipTreasureUpHeroDid(_equipTreasureDid,_heroDid) if this.allTreasures[_equipTreasureDid] then this.allTreasures[_equipTreasureDid].upHeroDid=_heroDid end end ----- ---好友助战 界面数据 function this.GetFriendHelpHeros(trailType,func) this.friendHelpHeros = {} local x = function(msg) for k,v in ipairs(msg.helpHeros) do if not this.friendHelpHeros[v.trailType] then this.friendHelpHeros[v.trailType] = {} end local tempdata = {} tempdata.player = v tempdata.hero = this.UpdateHeroDatas(v.hero,v) table.insert(this.friendHelpHeros[v.trailType],tempdata) end if func then func(this.friendHelpHeros[trailType]) end end --发消息获取信息 然后调用回调函数x if trailType and trailType > 0 then NetManager.HelpFightListRequest(trailType,x) end end --设置好友帮助我的英雄 以试炼类型为键 function this.SetFriendHelpHero(helpFightList,trailType) if not trailType then this.friendHelpHero = {} for k,v in ipairs(helpFightList) do if not this.friendHelpHero[v.trailType] then this.friendHelpHero[v.trailType] = {} end this.friendHelpHero[v.trailType].player = v this.friendHelpHero[v.trailType].hero = this.UpdateHeroDatas(v.hero,v) end else if not this.friendHelpHero then this.friendHelpHero = {} end if not this.friendHelpHero[trailType] then this.friendHelpHero[trailType] = {} end if helpFightList then this.friendHelpHero[trailType].player = helpFightList this.friendHelpHero[trailType].hero = this.UpdateHeroDatas(helpFightList.hero,helpFightList) else this.friendHelpHero[trailType] = nil end end end --获取当前试炼我选取的好友的助战 function this.GetFriendHelpHero(trailType,heros) if heros then local lvLimit = 0 if trailType then lvLimit = trailType end for i, v in pairs(this.friendHelpHero) do if v and v.hero and v.hero.lv > lvLimit then table.insert(heros,v.hero) end end return heros else if this.friendHelpHero[trailType] then return this.friendHelpHero[trailType] end end return nil end --设置助战 function this.SetMyHelpHeroData(trail,_data,func) if not trail then this.myHelpHeroData = {} local x = function(msg) for k,v in ipairs(msg.helpHeros) do if not this.myHelpHeroData[v.trailType] then this.myHelpHeroData[v.trailType] = {} end this.myHelpHeroData[v.trailType] = HeroManager.GetSingleHeroData(v.hero.id) end end --发协议获取 调用x NetManager.HelpFightListRequest(0,x) else if not this.myHelpHeroData then this.myHelpHeroData = {} end if not this.myHelpHeroData[trail] then this.myHelpHeroData[trail] = {} end this.myHelpHeroData[trail] = _data if trail == 1 then CheckRedPointStatus(RedPointType.PersonTrail) elseif trail == 2 then CheckRedPointStatus(RedPointType.BuddishTrail) elseif trail == 3 then CheckRedPointStatus(RedPointType.DemonTrail) elseif trail == 4 then CheckRedPointStatus(RedPointType.TaoistTrail) end end if func then func() end end --获取我的助战 function this.GetMyHelpHero(trailType) if this.myHelpHeroData[trailType] then return this.myHelpHeroData[trailType] end return nil end --获取一个英雄信息 function this.GetSingleHeroData(did) if not this.friendHelpHeros then this.friendHelpHeros = {} end for _,v in pairs(this.friendHelpHeros) do for i = 1 ,#v do if v[i] and v[i].hero and v[i].hero.dynamicId == did then return v[i].hero end end end return nil end ------------------------------四灵试炼 红点--------------------------------------- -- 红点检测方法 function this.FourElementRedCheck(redType) if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.FourElementTrail) then return false end if redType == RedPointType.PersonTrail then if this.fourMonsterData[1] and this.fourMonsterData[1].openState > 0 then if this.fourMonsterData[1].freeTime > 0 then return true end end return this.CheckHelpFightRedPoint(RedPointType.PersonTrailHelp) elseif redType == RedPointType.BuddishTrail then if this.fourMonsterData[2] and this.fourMonsterData[2].openState > 0 then if this.fourMonsterData[2].freeTime > 0 then return true end end return this.CheckHelpFightRedPoint(RedPointType.BuddishTrailHelp) elseif redType == RedPointType.DemonTrail then if this.fourMonsterData[3] and this.fourMonsterData[3].openState > 0 then if this.fourMonsterData[3].freeTime > 0 then return true end end return this.CheckHelpFightRedPoint(RedPointType.DemonTrailHelp) elseif redType == RedPointType.TaoistTrail then if this.fourMonsterData[4] and this.fourMonsterData[4].openState > 0 then if this.fourMonsterData[4].freeTime > 0 then return true end end return this.CheckHelpFightRedPoint(RedPointType.TaoistTrailHelp) end return false end function this.CheckHelpFightRedPoint(redType) if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.FourElementTrail) then return false end if redType == RedPointType.PersonTrailHelp then local heros = HeroManager.GetHeroDataByProperty(1,0) if not heros or #heros < 1 then return false end if this.fourMonsterData[1] and this.fourMonsterData[1].openState > 0 then if not this.GetMyHelpHero(1) then return true end end return false elseif redType == RedPointType.BuddishTrailHelp then local heros = HeroManager.GetHeroDataByProperty(2,0) if not heros or #heros < 1 then return false end if this.fourMonsterData[2] and this.fourMonsterData[2].openState > 0 then if not this.GetMyHelpHero(2) then return true end end return false elseif redType == RedPointType.DemonTrailHelp then local heros = HeroManager.GetHeroDataByProperty(3,0) if not heros or #heros < 1 then return false end if this.fourMonsterData[3] and this.fourMonsterData[3].openState > 0 then if not this.GetMyHelpHero(3) then return true end end return false elseif redType == RedPointType.TaoistTrailHelp then local heros = HeroManager.GetHeroDataByProperty(4,0) if not heros or #heros < 1 then return false end if this.fourMonsterData[4] and this.fourMonsterData[4].openState > 0 then if not this.GetMyHelpHero(4) then return true end end return false end end function this.SetRewardWave(waves) if not this.getRewardWave then this.getRewardWave = {} end for i = 1 ,#waves do if not this.getRewardWave[waves[i]] then this.getRewardWave[waves[i]] = waves[i] end end end ----------------------------------------------------------------------四灵试炼------------------------------------------------------------------ -- 返回5个大虾的信息, 显示怪物的第一个, function this.GetNextWaveMonsterInfo() local curWave = this.monsterWave local monsterInfo = {} --遇到表格的结尾处,则停止 for i = curWave + 1, curWave + 5 do if not monsterCampConfig[i] then break end local data = {} data.rewardShow = monsterCampConfig[i].RewardShow local monsterGroupId = monsterCampConfig[i].Monster -- 默认显示第一只怪 local id = monsterGroupConfig[monsterGroupId].Contents[1][1] local monsterId = monsterConfig[id].MonsterId local resId = 0 if monsterId > 10000 then -- 这是人类 resId = heroViewConfig[monsterId].Icon else -- 这是妖精 resId = monterViewConfig[monsterId].MonsterIcon end local resPath = GetResourcePath(resId) local icon = Util.LoadSprite(resPath) data.icon = icon data.name = GetLanguageStrById(resConfig[resId].Desc) monsterInfo[i] = data end return monsterInfo end -- 返回当前怪物阵容信息 function this.GetCurMonsterInfo() local curWave = this.monsterWave local monsterInfo = {} local mainMonsterInfo = {} local data = {} data.icon = {} data.level={} data.rewardShow = monsterCampConfig[curWave].RewardShow local monsterGroupId = monsterCampConfig[curWave].Monster local ids = monsterGroupConfig[monsterGroupId].Contents for i = 1, #ids do for j = 1, #ids[i] do -- 所有怪信息 local monsterId = monsterConfig[ids[i][j]].MonsterId local resId = 0 if monsterId > 10000 then -- 这是人类 resId = heroViewConfig[monsterId].Icon else -- 这是妖精 resId = monterViewConfig[monsterId].MonsterIcon end local resPath = GetResourcePath(resId) local icon = Util.LoadSprite(resPath) data.icon[#data.icon + 1] = icon data.level[j]= monsterConfig[ids[i][j]].Level -- 主怪信息 if i == 1 and j == 1 then mainMonsterInfo.name = GetLanguageStrById(resConfig[resId].Desc) mainMonsterInfo.live2dPath = resConfig[resId].Name mainMonsterInfo.monsterId = monsterId end end end monsterInfo = data return monsterInfo, mainMonsterInfo end -- 消耗道具上限值 function this.GetMaxCostItem() return PrivilegeManager.GetPrivilegeNumber(23) end -- 是否需要回复 function this.IsNeedSupply() return BagManager.GetItemCountById(53) < this.GetMaxCostItem() end --返回当前的怪物组Id function this.GetCurWaveMonsterGroupId() if not monsterCampConfig[this.monsterWave] and this.monsterWave > MonsterCampManager.GetMaxNum() then this.monsterWave = MonsterCampManager.GetMaxNum() this.isMaxMonsterWave = true end return monsterCampConfig[this.monsterWave].Monster end -- 通过怪物ID返回头像 function this.GetIconByMonsterId(monsterId) local resId = 0 local level = 0 local icon local liveId = monsterConfig[monsterId].MonsterId if liveId > 10000 then -- 这是人类 resId = heroViewConfig[liveId].Icon else -- 这是妖精 resId = monterViewConfig[liveId].MonsterIcon end level = monsterConfig[monsterId].Level icon =Util.LoadSprite(GetResourcePath(resId)) return icon, level end -- 获取表的上限值 function this.GetMaxNum() local max = 0 for k, v in ConfigPairs(monsterCampConfig) do max = max > k and max or k end return max end -- 跳过战斗设置 function this.GetBattleJump() return false -- if not this.CheckBattleJump() then -- return false -- end -- return this.m_Jump end function this.SetBattleJump(state) this.m_Jump = state end function this.CheckBattleJump() local isOpen = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.MonsterCampJump) return isOpen end -- 0 已经领取,1 可领取,2不能领取· function this.GetTrialRewardState(id) if id < this.monsterWave then if this.getRewardWave[id] and this.getRewardWave[id] > 0 then return 0 else return 1 end else return 2 end end function this.SetRewardData() local dataList = {} for k,v in ConfigPairs(ConfigManager.GetConfig(ConfigName.FloodConfig)) do if v.SpecialReward and #v.SpecialReward > 0 then local data = {} data.Id = v.Id data.info = string.format(Language[12166],v.Id) data.BoxReward = v.SpecialReward data.state = this.GetTrialRewardState(v.Id) table.insert(dataList,data) end end return dataList end return this