diff --git a/Assets/ManagedResources/~Lua/Modules/FindTreasure/FindTreasureManager.lua b/Assets/ManagedResources/~Lua/Modules/FindTreasure/FindTreasureManager.lua index d84b3cea15..2c9dc142a7 100644 --- a/Assets/ManagedResources/~Lua/Modules/FindTreasure/FindTreasureManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/FindTreasure/FindTreasureManager.lua @@ -1,10 +1,10 @@ FindTreasureManager = {}; local this = FindTreasureManager local allMissionUpHeros = {} -this.refreshTicketItemId = ConfigManager.GetConfigData(ConfigName.MazeTreasureSetting,1).TakeOrder[1]--83迷宫寻宝免费刷新次数 -this.FindTreasureGaoId = 81--高级寻宝 -this.FindTreasureHaoId = 82--豪华寻宝 -this.materialItemId = 79--寻龙玦 +this.refreshTicketItemId = ConfigManager.GetConfigData(ConfigName.MazeTreasureSetting, 1).TakeOrder[1] -- 83迷宫寻宝免费刷新次数 +this.FindTreasureGaoId = 81 -- 高级寻宝 +this.FindTreasureHaoId = 82 -- 豪华寻宝 +this.materialItemId = 79 -- 寻龙玦 this.isShowFindTreasureVipRedPoint = true function this.Initialize() allMissionUpHeros = {} @@ -13,7 +13,7 @@ end function this.GetAllUpHeros() allMissionUpHeros = {} this.RefreshAllMissionUpHeros() - Log("FindTreasureManager LengthOfTable(allMissionUpHeros) "..LengthOfTable(allMissionUpHeros)) + Log("FindTreasureManager LengthOfTable(allMissionUpHeros) " .. LengthOfTable(allMissionUpHeros)) return allMissionUpHeros end function this.RefreshAllMissionUpHeros() @@ -21,13 +21,15 @@ function this.RefreshAllMissionUpHeros() for i = 1, #missionInfo do for j = 1, #missionInfo[i].heroId do allMissionUpHeros[missionInfo[i].heroId[j]] = missionInfo[i].heroId[j] - Log("missionInfo[i].heroId[j] "..missionInfo[i].heroId[j]) + Log("missionInfo[i].heroId[j] " .. missionInfo[i].heroId[j]) end end end function this.RefreshUsedTimes() - PlayerManager.missingRefreshCount = PrivilegeManager.GetPrivilegeUsedTimes(ConfigManager.GetConfigData(ConfigName.MazeTreasureSetting,1).RefreshVIP) - Game.GlobalEvent:DispatchEvent(GameEvent.FindTreasure.RefreshFindTreasure,true) + PlayerManager.missingRefreshCount = PrivilegeManager.GetPrivilegeUsedTimes(ConfigManager.GetConfigData( + ConfigName.MazeTreasureSetting, 1) + .RefreshVIP) + Game.GlobalEvent:DispatchEvent(GameEvent.FindTreasure.RefreshFindTreasure, true) end function this.RefreshFindTreasureRedPoint() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.FINDTREASURE) then @@ -35,12 +37,27 @@ function this.RefreshFindTreasureRedPoint() end TaskManager.SetFindTreasureDataState() local missionInfo = TaskManager.GetTypeTaskList(TaskTypeDef.FindTreasure) + for i = 1, #missionInfo do - if missionInfo[i].state == 1 then - return true + if missionInfo[i].state == 1 then + return true + elseif missionInfo[i].state == 0 and missionInfo[i].heroId and #missionInfo[i].heroId <= 0 then + local conFigData = ConfigManager.GetConfigData(ConfigName.MazeTreasure, + math.floor(missionInfo[i].missionId % 10000)) + local isJian = PrivilegeManager.GetSerData(155) ~= nil -- PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.FINDTREASURE_EXPERT) > 0 + local privilegeTypeConfig = ConfigManager.GetConfigDataByKey(ConfigName.PrivilegeTypeConfig, + "PrivilegeType", PRIVILEGE_TYPE.FINDTREASURE_EXPERT) + local jianNum = (privilegeTypeConfig and isJian) and (privilegeTypeConfig.Condition[1][2]) / 10000 or 1 + local takeItemNum = isJian and (conFigData.TakeItem[2] + conFigData.TakeItem[2] * jianNum) or + conFigData.TakeItem[2] + if BagManager.GetItemCountById(FindTreasureManager.materialItemId) >= takeItemNum then + return true + end + end end - local mazeTreasureMax = ConfigManager.GetConfigData(ConfigName.PlayerLevelConfig,PlayerManager.level).MazeTreasureMax + local mazeTreasureMax = ConfigManager.GetConfigData(ConfigName.PlayerLevelConfig, PlayerManager.level) + .MazeTreasureMax if BagManager.GetItemCountById(FindTreasureManager.materialItemId) >= mazeTreasureMax then return true end @@ -65,4 +82,4 @@ function this.GetShowFindTreasureVipRedPoint() end return this.isShowFindTreasureVipRedPoint end -return this \ No newline at end of file +return this