Commit e639a6b9d44e88b8a255ad38b0035b167d308be2

Authored by zhangqijia
1 parent 1199daf9

fix: 挂机图鉴-绑定关卡

1. 绑定的关卡需要已经解锁
2. 通关10120刷新宝鉴
3。 关卡10120是从表获取的数据
Showing 2 changed files with 55 additions and 11 deletions   Show diff stats
src/actions/HangAction.lua
... ... @@ -266,7 +266,7 @@ function _M.endBattleRpc(agent, data)
266 266 -- end
267 267 --end
268 268  
269   - if role:checkHangPass(carbonId) then
  269 + if role:checkHangPass(carbonId) then
270 270 return 4
271 271 end
272 272  
... ... @@ -338,6 +338,12 @@ function _M.endBattleRpc(agent, data)
338 338 -- hangInfo.bossTime = skynet.timex() + cfg.idle_time
339 339 --end
340 340 end
  341 +
  342 + --刷新宝藏图鉴
  343 + if isWin and globalCsv.idle_treasure_point and globalCsv.idle_treasure_point == carbonId then
  344 + role.dailyData:getTreasrueList()
  345 + end
  346 +
341 347 role:updateProperty({field = "hangInfo", value = hangInfo})
342 348  
343 349 role:checkBattle("hang", {
... ...
src/models/Daily.lua
... ... @@ -97,7 +97,7 @@ function Daily:checkUnlock(treaval)
97 97 local treasureC = treaval.unlock:toArray(true, "=")
98 98 local show = false
99 99 if treasureC[1] == 1 then --通关关卡
100   - if not self.owner:checkHangPass(treasureC[2]) then show = true end
  100 + if self.owner:checkHangPass(treasureC[2]) then show = true end
101 101 elseif treasureC[1] == 2 then --通关拾荒章节=x层
102 102 local chapterId = treasureC[2]
103 103 local layer = 1
... ... @@ -128,16 +128,22 @@ function Daily:checkTreasureExpired(treasureAttr, treasureList)
128 128 -- check finish
129 129 if curInfo["expire_time"] then
130 130 if curInfo.cool_time > 1 then
131   - if skynet.timex() >= curInfo["expire_time"] then --已过期
  131 + if skynet.timex() >= curInfo["expire_time"] then
132 132 treasureList[treasureAttr.id] = nil
133   - elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却
  133 + curInfo = clone(treasureAttr)
  134 + elseif skynet.timex() >= curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却
134 135 curInfo = nil
  136 + else
  137 + curInfo = clone(treasureAttr)
135 138 end
136 139 else
137 140 if skynet.timex() >= curInfo["expire_time"] then
138 141 treasureList[treasureAttr.id] = nil
139 142 end
  143 + curInfo = clone(treasureAttr)
140 144 end
  145 + else
  146 + curInfo = clone(treasureAttr)
141 147 end
142 148 else
143 149 curInfo = clone(treasureAttr)
... ... @@ -158,14 +164,51 @@ function Daily:checkTreasureBase(treasureList, treasureBase, removeId)
158 164 tmptreasure[val.id] = val
159 165 end
160 166 end
161   -
  167 +
162 168 end
163 169 return tmptreasure
164 170 end
165 171  
  172 +--绑定通关关卡
  173 +function Daily:checkChapters()
  174 + local chapters = {}
  175 + local tmp_chapters = {}
  176 + local treasureList = self:getProperty("treasureList")
  177 + if next(treasureList) ~= nil then
  178 + for id, curInfo in pairs(treasureList) do
  179 + if curInfo["end_time"] then
  180 + if skynet.timex() >= curInfo["end_time"] then
  181 + curInfo = nil
  182 + end
  183 + else
  184 + curInfo = nil
  185 + end
  186 + if curInfo ~= nil then
  187 + tmp_chapters[curInfo.chapter_id] = curInfo
  188 + end
  189 + end
  190 + end
  191 +
  192 + for chapter_id, val in pairs(csvdb["idle_battleCsv"]) do
  193 + if self.owner:checkHangPass(chapter_id) then
  194 + if next(tmp_chapters) == nil then
  195 + chapters[chapter_id] = val
  196 + else
  197 + if not tmp_chapters[chapter_id] then
  198 + chapters[chapter_id] = val
  199 + end
  200 + end
  201 + end
  202 + end
  203 + return chapters
  204 +end
  205 +
166 206 --权重
167 207 function Daily:checkTreasureWeight(treasureList, tmptreasure, treasureBase)
168 208 local removeId
  209 + local chapters = self:checkChapters()
  210 + if next(chapters) == nil then return end
  211 +
169 212 while next(tmptreasure) do
170 213 local tmp = self:checkTreasureBase(tmptreasure, treasureBase, removeId)
171 214 local id = math.randWeight(tmp, "weight") --宝藏id
... ... @@ -180,8 +223,7 @@ function Daily:checkTreasureWeight(treasureList, tmptreasure, treasureBase)
180 223 else
181 224 break
182 225 end
183   -
184   - local chapterId = math.randWeight(csvdb["idle_battleCsv"], "treasure_weight") --关卡id
  226 + local chapterId = math.randWeight(chapters, "treasure_weight") --关卡id
185 227 if not chapterId then
186 228 break
187 229 end
... ... @@ -263,7 +305,6 @@ function Daily:buyTreasure(treasureList)
263 305 treasureBase = treasureBase - val.treasure_value
264 306 if treasureBase < 0 then
265 307 treasureBase = treasureBase + val.treasure_value
266   - print("资源余额不足")
267 308 return
268 309 else
269 310 boughtTreasurer[id] = val
... ... @@ -280,7 +321,6 @@ end
280 321  
281 322 --宝藏图鉴
282 323 function Daily:getTreasrueList()
283   - print("宝藏图鉴...")
284 324 local tmpcsv = csvdb["idle_treasureCsv"]
285 325 local treasureList = self:getProperty("treasureList") --挖宝列表 过期删除 领取奖励删除 跨天更新
286 326 local tmptreasure = {}
... ... @@ -303,7 +343,6 @@ end
303 343  
304 344 --检索挖宝列表
305 345 function Daily:checkTreasureList(chapterId)
306   - print("检索挖宝列表")
307 346 local treasureList = self:getProperty("treasureList")
308 347 local tmptreasure = {}
309 348 for id, val in pairs(treasureList) do
... ... @@ -314,7 +353,6 @@ function Daily:checkTreasureList(chapterId)
314 353 end
315 354  
316 355 if next(tmptreasure) == nil then
317   - print("宝藏列表为空")
318 356 return nil
319 357 end
320 358 local boughtTreasurer = self:buyTreasure(tmptreasure)
... ...