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,7 +27,7 @@ local function getHangTime(role) | ||
| 27 | return nowCoinTime - hangInfo.coinTime | 27 | return nowCoinTime - hangInfo.coinTime |
| 28 | end | 28 | end |
| 29 | 29 | ||
| 30 | -local function checkReward(role) | 30 | +local function checkReward(role, isTreasure) |
| 31 | local hangInfo = role:getProperty("hangInfo") | 31 | local hangInfo = role:getProperty("hangInfo") |
| 32 | if not hangInfo.carbonId or not hangInfo.coinTime or not hangInfo.itemTime then | 32 | if not hangInfo.carbonId or not hangInfo.coinTime or not hangInfo.itemTime then |
| 33 | return false | 33 | return false |
| @@ -126,11 +126,15 @@ local function checkReward(role) | @@ -126,11 +126,15 @@ local function checkReward(role) | ||
| 126 | end | 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 | end | 138 | end |
| 135 | end | 139 | end |
| 136 | 140 | ||
| @@ -418,7 +422,7 @@ end | @@ -418,7 +422,7 @@ end | ||
| 418 | function _M.getRewardRpc(agent , data) | 422 | function _M.getRewardRpc(agent , data) |
| 419 | local role = agent.role | 423 | local role = agent.role |
| 420 | local hangTime = getHangTime(role) | 424 | local hangTime = getHangTime(role) |
| 421 | - checkReward(role) | 425 | + checkReward(role, true) |
| 422 | local items = role:getProperty("hangBag") | 426 | local items = role:getProperty("hangBag") |
| 423 | if not next(items) then return end | 427 | if not next(items) then return end |
| 424 | local reward, change = role:award(items, {log = {desc = "hangReward"}}) | 428 | local reward, change = role:award(items, {log = {desc = "hangReward"}}) |
src/models/Daily.lua
| @@ -128,13 +128,13 @@ function Daily:checkTreasureExpired(treasureAttr, treasureList) | @@ -128,13 +128,13 @@ function Daily:checkTreasureExpired(treasureAttr, treasureList) | ||
| 128 | -- check finish | 128 | -- check finish |
| 129 | if curInfo["expire_time"] then | 129 | if curInfo["expire_time"] then |
| 130 | if curInfo.cool_time > 1 then | 130 | if curInfo.cool_time > 1 then |
| 131 | - if skynet.timex() > curInfo["expire_time"] then --已过期 | 131 | + if skynet.timex() >= curInfo["expire_time"] then --已过期 |
| 132 | treasureList[treasureAttr.id] = nil | 132 | treasureList[treasureAttr.id] = nil |
| 133 | elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 | 133 | elseif skynet.timex() > curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 |
| 134 | curInfo = nil | 134 | curInfo = nil |
| 135 | end | 135 | end |
| 136 | else | 136 | else |
| 137 | - if skynet.timex() > curInfo["expire_time"] then | 137 | + if skynet.timex() >= curInfo["expire_time"] then |
| 138 | treasureList[treasureAttr.id] = nil | 138 | treasureList[treasureAttr.id] = nil |
| 139 | end | 139 | end |
| 140 | end | 140 | end |
| @@ -168,7 +168,6 @@ function Daily:checkTreasureWeight(treasureList, tmptreasure, treasureBase) | @@ -168,7 +168,6 @@ function Daily:checkTreasureWeight(treasureList, tmptreasure, treasureBase) | ||
| 168 | local removeId | 168 | local removeId |
| 169 | while next(tmptreasure) do | 169 | while next(tmptreasure) do |
| 170 | local tmp = self:checkTreasureBase(tmptreasure, treasureBase, removeId) | 170 | local tmp = self:checkTreasureBase(tmptreasure, treasureBase, removeId) |
| 171 | - print(treasureBase) | ||
| 172 | local id = math.randWeight(tmp, "weight") --宝藏id | 171 | local id = math.randWeight(tmp, "weight") --宝藏id |
| 173 | if not id then | 172 | if not id then |
| 174 | break | 173 | break |
| @@ -202,28 +201,55 @@ function Daily:checkTreasureChapterId(curInfo, treasureList, chapterId) | @@ -202,28 +201,55 @@ function Daily:checkTreasureChapterId(curInfo, treasureList, chapterId) | ||
| 202 | return treasure | 201 | return treasure |
| 203 | end | 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 | else | 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 | end | 229 | end |
| 218 | end | 230 | end |
| 219 | else | 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 | end | 253 | end |
| 228 | end | 254 | end |
| 229 | end | 255 | end |
| @@ -236,7 +262,7 @@ function Daily:buyTreasure(treasureList) | @@ -236,7 +262,7 @@ function Daily:buyTreasure(treasureList) | ||
| 236 | for id, val in pairs(treasureList) do | 262 | for id, val in pairs(treasureList) do |
| 237 | treasureBase = treasureBase - val.treasure_value | 263 | treasureBase = treasureBase - val.treasure_value |
| 238 | if treasureBase < 0 then | 264 | if treasureBase < 0 then |
| 239 | - treasureBase = treasureBase + val.treasure_value | 265 | + treasureBase = treasureBase + val.treasure_value |
| 240 | print("资源余额不足") | 266 | print("资源余额不足") |
| 241 | return | 267 | return |
| 242 | else | 268 | else |