Commit 1199daf93d7c3ac2618479aab6a38ab04f339653
1 parent
a1fd1815
fix: 挂机图鉴, 增加宝藏CD检查
1. 开始挖宝藏有结束时间,无过期时间 2. 用户获取宝藏后,宝藏才进入CD状态
Showing
2 changed files
with
59 additions
and
29 deletions
Show diff stats
src/actions/HangAction.lua
... | ... | @@ -27,7 +27,7 @@ local function getHangTime(role) |
27 | 27 | return nowCoinTime - hangInfo.coinTime |
28 | 28 | end |
29 | 29 | |
30 | -local function checkReward(role) | |
30 | +local function checkReward(role, isTreasure) | |
31 | 31 | local hangInfo = role:getProperty("hangInfo") |
32 | 32 | if not hangInfo.carbonId or not hangInfo.coinTime or not hangInfo.itemTime then |
33 | 33 | return false |
... | ... | @@ -126,11 +126,15 @@ local function checkReward(role) |
126 | 126 | end |
127 | 127 | |
128 | 128 | --挂机得到的宝藏加入到挂机奖励 |
129 | - local treasureList= role.dailyData:checkTreasureList(hangInfo.carbonId) | |
130 | - for id, val in pairs(treasureList) do | |
131 | - local award = val.award:toNumMap() | |
132 | - for k,v in pairs(award) do | |
133 | - items[k] = (award[k] or 0) + v | |
129 | + if isTreasure or false == true then | |
130 | + local treasureList= role.dailyData:checkTreasureList(hangInfo.carbonId) | |
131 | + if next(treasureList) ~= nil then | |
132 | + for id, val in pairs(treasureList) do | |
133 | + local award = val.award:toNumMap() | |
134 | + for k,v in pairs(award) do | |
135 | + items[k] = (award[k] or 0) + v | |
136 | + end | |
137 | + end | |
134 | 138 | end |
135 | 139 | end |
136 | 140 | |
... | ... | @@ -418,7 +422,7 @@ end |
418 | 422 | function _M.getRewardRpc(agent , data) |
419 | 423 | local role = agent.role |
420 | 424 | local hangTime = getHangTime(role) |
421 | - checkReward(role) | |
425 | + checkReward(role, true) | |
422 | 426 | local items = role:getProperty("hangBag") |
423 | 427 | if not next(items) then return end |
424 | 428 | local reward, change = role:award(items, {log = {desc = "hangReward"}}) | ... | ... |
src/models/Daily.lua
... | ... | @@ -128,13 +128,13 @@ 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 | 133 | elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 |
134 | 134 | curInfo = nil |
135 | 135 | end |
136 | 136 | else |
137 | - if skynet.timex() > curInfo["expire_time"] then | |
137 | + if skynet.timex() >= curInfo["expire_time"] then | |
138 | 138 | treasureList[treasureAttr.id] = nil |
139 | 139 | end |
140 | 140 | end |
... | ... | @@ -168,7 +168,6 @@ function Daily:checkTreasureWeight(treasureList, tmptreasure, treasureBase) |
168 | 168 | local removeId |
169 | 169 | while next(tmptreasure) do |
170 | 170 | local tmp = self:checkTreasureBase(tmptreasure, treasureBase, removeId) |
171 | - print(treasureBase) | |
172 | 171 | local id = math.randWeight(tmp, "weight") --宝藏id |
173 | 172 | if not id then |
174 | 173 | break |
... | ... | @@ -202,28 +201,55 @@ function Daily:checkTreasureChapterId(curInfo, treasureList, chapterId) |
202 | 201 | return treasure |
203 | 202 | end |
204 | 203 | |
205 | - if chapterId == curInfo.chapter_id then --开始挖宝关卡ID=挂机关卡ID | |
206 | - if not curInfo["expire_time"] then | |
207 | - if curInfo.cool_time > 1 then | |
208 | - curInfo["expire_time"] = skynet.timex() + curInfo.working_time + curInfo.cool_time * oneDay | |
209 | - else | |
210 | - curInfo["expire_time"] = skynet.timex() + curInfo.working_time | |
211 | - end | |
204 | + --开始挖宝关卡ID=挂机关卡ID | |
205 | + if chapterId == curInfo.chapter_id then | |
206 | + --开始挖宝 | |
207 | + if not curInfo["end_time"] then | |
208 | + curInfo["end_time"] = skynet.timex() + curInfo.working_time | |
212 | 209 | else |
213 | - if skynet.timex() > curInfo["expire_time"] then --已过期 | |
214 | - treasure = table.remove(treasureList, curInfo.id) | |
215 | - elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 | |
216 | - treasure = curInfo | |
210 | + --宝藏冷却时间 | |
211 | + if not curInfo["expire_time"] then | |
212 | + --已挖到 | |
213 | + if skynet.timex() >= curInfo["end_time"] then | |
214 | + treasure = treasureList[curInfo.id] | |
215 | + if curInfo.cool_time > 1 then | |
216 | + curInfo["expire_time"] = skynet.timex() + curInfo.cool_time * oneDay | |
217 | + else | |
218 | + curInfo["expire_time"] = skynet.timex() | |
219 | + end | |
220 | + if skynet.timex() >= curInfo["expire_time"] then | |
221 | + table.remove(treasureList, curInfo.id) | |
222 | + end | |
223 | + end | |
224 | + else | |
225 | + --已经领取宝藏 检索宝藏冷却时间 | |
226 | + if skynet.timex() >= curInfo["expire_time"] then | |
227 | + table.remove(treasureList, curInfo.id) | |
228 | + end | |
217 | 229 | end |
218 | 230 | end |
219 | 231 | else |
220 | - if curInfo["expire_time"] then | |
221 | - if skynet.timex() > curInfo["expire_time"] then --已过期 | |
222 | - treasure = table.remove(treasureList, curInfo.id) | |
223 | - elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 | |
224 | - treasure = curInfo | |
225 | - else | |
226 | - curInfo["expire_time"] = nil | |
232 | + --已经开始挖宝 | |
233 | + if curInfo["end_time"] then | |
234 | + if not curInfo["expire_time"] then --宝藏冷却时间 | |
235 | + if skynet.timex() >= curInfo["end_time"] then --已挖到 | |
236 | + treasure = treasureList[curInfo.id] | |
237 | + if curInfo.cool_time > 1 then | |
238 | + curInfo["expire_time"] = skynet.timex() + curInfo.cool_time * oneDay | |
239 | + else | |
240 | + curInfo["expire_time"] = skynet.timex() | |
241 | + end | |
242 | + if skynet.timex() >= curInfo["expire_time"] then | |
243 | + table.remove(treasureList, curInfo.id) | |
244 | + end | |
245 | + else | |
246 | + --未挖到直接删除 | |
247 | + table.remove(treasureList, curInfo.id) | |
248 | + end | |
249 | + else --已经领取宝藏 检索宝藏冷却时间 | |
250 | + if skynet.timex() >= curInfo["expire_time"] then | |
251 | + table.remove(treasureList, curInfo.id) | |
252 | + end | |
227 | 253 | end |
228 | 254 | end |
229 | 255 | end |
... | ... | @@ -236,7 +262,7 @@ function Daily:buyTreasure(treasureList) |
236 | 262 | for id, val in pairs(treasureList) do |
237 | 263 | treasureBase = treasureBase - val.treasure_value |
238 | 264 | if treasureBase < 0 then |
239 | - treasureBase = treasureBase + val.treasure_value | |
265 | + treasureBase = treasureBase + val.treasure_value | |
240 | 266 | print("资源余额不足") |
241 | 267 | return |
242 | 268 | else | ... | ... |