Commit 78065fee355a7b599e64f03138e6ea505dbc2699
1 parent
7597d623
fix: 额外宝藏 不可以绑定的关卡(逻辑与每日宝藏不一样)
1. 未过期(未挖,在挖,未领) 2. 正在挂机
Showing
2 changed files
with
65 additions
and
18 deletions
Show diff stats
src/actions/GmAction.lua
@@ -1224,4 +1224,11 @@ function _M.treasure_map(role, pms) | @@ -1224,4 +1224,11 @@ function _M.treasure_map(role, pms) | ||
1224 | return treasureMapCount | 1224 | return treasureMapCount |
1225 | end | 1225 | end |
1226 | 1226 | ||
1227 | +table.insert(helpDes, {"清空", "treasure_clear"}) | ||
1228 | +function _M.treasure_clear(role, pms) | ||
1229 | + role.dailyData:updateProperty({field = "treasureExtraCount", value = 0}) | ||
1230 | + role.dailyData:updateProperty({field = "treasureListExtra", value = {}}) | ||
1231 | + return "成功" | ||
1232 | +end | ||
1233 | + | ||
1227 | return _M | 1234 | return _M |
1228 | \ No newline at end of file | 1235 | \ No newline at end of file |
src/models/DailyPlugin.lua
@@ -22,20 +22,21 @@ function DailyPlugin.bind(Daily) | @@ -22,20 +22,21 @@ function DailyPlugin.bind(Daily) | ||
22 | --CD | 22 | --CD |
23 | function Daily:checkTreasureExpired(treasureAttr, treasureList) | 23 | function Daily:checkTreasureExpired(treasureAttr, treasureList) |
24 | local curInfo = treasureList[treasureAttr.id] | 24 | local curInfo = treasureList[treasureAttr.id] |
25 | + local now = skynet.timex() | ||
25 | if curInfo then | 26 | if curInfo then |
26 | -- check finish | 27 | -- check finish |
27 | if curInfo["expire_time"] then | 28 | if curInfo["expire_time"] then |
28 | if curInfo.cool_time > 1 then | 29 | if curInfo.cool_time > 1 then |
29 | - if skynet.timex() >= curInfo["expire_time"] then | 30 | + if now >= curInfo["expire_time"] then |
30 | treasureList[treasureAttr.id] = nil | 31 | treasureList[treasureAttr.id] = nil |
31 | curInfo = clone(treasureAttr) | 32 | curInfo = clone(treasureAttr) |
32 | - elseif skynet.timex() >= curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 | 33 | + elseif now >= curInfo["expire_time"] - curInfo.cool_time * oneDay then --未冷却 |
33 | curInfo = nil | 34 | curInfo = nil |
34 | else | 35 | else |
35 | curInfo = clone(treasureAttr) | 36 | curInfo = clone(treasureAttr) |
36 | end | 37 | end |
37 | else | 38 | else |
38 | - if skynet.timex() >= curInfo["expire_time"] then | 39 | + if now >= curInfo["expire_time"] then |
39 | treasureList[treasureAttr.id] = nil | 40 | treasureList[treasureAttr.id] = nil |
40 | end | 41 | end |
41 | curInfo = clone(treasureAttr) | 42 | curInfo = clone(treasureAttr) |
@@ -48,19 +49,24 @@ function DailyPlugin.bind(Daily) | @@ -48,19 +49,24 @@ function DailyPlugin.bind(Daily) | ||
48 | return curInfo | 49 | return curInfo |
49 | end | 50 | end |
50 | 51 | ||
51 | - --绑定通关关卡 | 52 | + --绑定通关关卡 每日宝藏 |
52 | function Daily:checkChapters(treasureList, treasureListOther) | 53 | function Daily:checkChapters(treasureList, treasureListOther) |
53 | local chapters = {} | 54 | local chapters = {} |
54 | local tmp_chapters = {} | 55 | local tmp_chapters = {} |
55 | 56 | ||
57 | + --不可以绑定的关卡 | ||
58 | + --1. 正在挖宝,未挖到 | ||
59 | + --2. 已经挖到宝藏,但未领取 | ||
60 | + --3. 正在挂机 | ||
61 | + local now = skynet.timex() | ||
56 | for _, curInfo in pairs(treasureList or {}) do | 62 | for _, curInfo in pairs(treasureList or {}) do |
57 | - if curInfo["expire_time"] or not curInfo["end_time"] then | 63 | + if (not curInfo["expire_time"] and curInfo["end_time"]) then |
58 | tmp_chapters[curInfo.chapter_id] = curInfo | 64 | tmp_chapters[curInfo.chapter_id] = curInfo |
59 | end | 65 | end |
60 | end | 66 | end |
61 | 67 | ||
62 | for _, curInfo in pairs(treasureListOther or {}) do | 68 | for _, curInfo in pairs(treasureListOther or {}) do |
63 | - if curInfo["expire_time"] or not curInfo["end_time"] then | 69 | + if (not curInfo["expire_time"] and curInfo["end_time"]) then |
64 | tmp_chapters[curInfo.chapter_id] = curInfo | 70 | tmp_chapters[curInfo.chapter_id] = curInfo |
65 | end | 71 | end |
66 | end | 72 | end |
@@ -69,10 +75,43 @@ function DailyPlugin.bind(Daily) | @@ -69,10 +75,43 @@ function DailyPlugin.bind(Daily) | ||
69 | for chapter_id, val in pairs(csvdb["idle_battleCsv"]) do | 75 | for chapter_id, val in pairs(csvdb["idle_battleCsv"]) do |
70 | if chapter_id ~= hangInfo.carbonId then | 76 | if chapter_id ~= hangInfo.carbonId then |
71 | if self.owner:checkHangPass(chapter_id) then | 77 | if self.owner:checkHangPass(chapter_id) then |
72 | - if next(tmp_chapters) and not tmp_chapters[chapter_id] then | ||
73 | - chapters[chapter_id] = val | ||
74 | - else | ||
75 | - chapters[chapter_id] = val | 78 | + if not tmp_chapters[chapter_id] then |
79 | + chapters[chapter_id] = {treasure_weight=val.treasure_weight} | ||
80 | + end | ||
81 | + end | ||
82 | + end | ||
83 | + | ||
84 | + end | ||
85 | + return chapters | ||
86 | + end | ||
87 | + | ||
88 | + --额外宝藏 | ||
89 | + function Daily:checkChaptersExtra(treasureList, treasureListOther) | ||
90 | + local chapters = {} | ||
91 | + local tmp_chapters = {} | ||
92 | + | ||
93 | + --不可以绑定的关卡 | ||
94 | + --1. 未过期(未挖,在挖,未领) | ||
95 | + --2. 正在挂机 | ||
96 | + local now = skynet.timex() | ||
97 | + for _, curInfo in pairs(treasureList or {}) do | ||
98 | + if not curInfo["expire_time"] then | ||
99 | + tmp_chapters[curInfo.chapter_id] = curInfo | ||
100 | + end | ||
101 | + end | ||
102 | + | ||
103 | + for _, curInfo in pairs(treasureListOther or {}) do | ||
104 | + if not curInfo["expire_time"] then | ||
105 | + tmp_chapters[curInfo.chapter_id] = curInfo | ||
106 | + end | ||
107 | + end | ||
108 | + | ||
109 | + local hangInfo = self.owner:getProperty("hangInfo") or {} | ||
110 | + for chapter_id, val in pairs(csvdb["idle_battleCsv"]) do | ||
111 | + if chapter_id ~= hangInfo.carbonId then | ||
112 | + if self.owner:checkHangPass(chapter_id) then | ||
113 | + if not tmp_chapters[chapter_id] then | ||
114 | + chapters[chapter_id] = {treasure_weight=val.treasure_weight} | ||
76 | end | 115 | end |
77 | end | 116 | end |
78 | end | 117 | end |
@@ -130,7 +169,7 @@ function DailyPlugin.bind(Daily) | @@ -130,7 +169,7 @@ function DailyPlugin.bind(Daily) | ||
130 | 169 | ||
131 | --只抓一个 额外宝藏 | 170 | --只抓一个 额外宝藏 |
132 | function Daily:getOneTreasureExtra(treasureList, tmpTreasure, treasureBase, treasureListOther) | 171 | function Daily:getOneTreasureExtra(treasureList, tmpTreasure, treasureBase, treasureListOther) |
133 | - local chapters = self:checkChapters(treasureList, treasureListOther) | 172 | + local chapters = self:checkChaptersExtra(treasureList, treasureListOther) |
134 | if not chapters or not next(chapters) then return end | 173 | if not chapters or not next(chapters) then return end |
135 | 174 | ||
136 | --扣除在挖宝列表里未过期宝藏的资源值 | 175 | --扣除在挖宝列表里未过期宝藏的资源值 |
@@ -177,14 +216,15 @@ function DailyPlugin.bind(Daily) | @@ -177,14 +216,15 @@ function DailyPlugin.bind(Daily) | ||
177 | function Daily:checkTreasureChapterId(curInfo, treasureList, chapterId, treasureBase) | 216 | function Daily:checkTreasureChapterId(curInfo, treasureList, chapterId, treasureBase) |
178 | if not curInfo then return nil end | 217 | if not curInfo then return nil end |
179 | 218 | ||
219 | + local now = skynet.timex() | ||
180 | local treasure = nil | 220 | local treasure = nil |
181 | --开始挖宝关卡ID=挂机关卡ID | 221 | --开始挖宝关卡ID=挂机关卡ID |
182 | if chapterId == curInfo.chapter_id then | 222 | if chapterId == curInfo.chapter_id then |
183 | --开始挖宝 | 223 | --开始挖宝 |
184 | if not curInfo["end_time"] then | 224 | if not curInfo["end_time"] then |
185 | - curInfo["end_time"] = skynet.timex() + curInfo.working_time | 225 | + curInfo["end_time"] = now + curInfo.working_time |
186 | else | 226 | else |
187 | - if skynet.timex() >= curInfo["end_time"] then | 227 | + if now >= curInfo["end_time"] then |
188 | if curInfo.cool_time > 1 then | 228 | if curInfo.cool_time > 1 then |
189 | --宝藏冷却时间 | 229 | --宝藏冷却时间 |
190 | if not curInfo["expire_time"] then | 230 | if not curInfo["expire_time"] then |
@@ -192,11 +232,11 @@ function DailyPlugin.bind(Daily) | @@ -192,11 +232,11 @@ function DailyPlugin.bind(Daily) | ||
192 | treasureBase = treasureBase - curInfo["treasure_value"] | 232 | treasureBase = treasureBase - curInfo["treasure_value"] |
193 | 233 | ||
194 | treasure = treasureList[curInfo.id] | 234 | treasure = treasureList[curInfo.id] |
195 | - curInfo["expire_time"] = skynet.timex() + curInfo.cool_time * oneDay | 235 | + curInfo["expire_time"] = now + curInfo.cool_time * oneDay |
196 | end | 236 | end |
197 | else | 237 | else |
198 | --已经领取宝藏 检索宝藏冷却时间 | 238 | --已经领取宝藏 检索宝藏冷却时间 |
199 | - if skynet.timex() >= curInfo["expire_time"] then | 239 | + if now >= curInfo["expire_time"] then |
200 | treasureList[curInfo.id] = nil | 240 | treasureList[curInfo.id] = nil |
201 | end | 241 | end |
202 | end | 242 | end |
@@ -213,7 +253,7 @@ function DailyPlugin.bind(Daily) | @@ -213,7 +253,7 @@ function DailyPlugin.bind(Daily) | ||
213 | else | 253 | else |
214 | --已经开始挖宝 | 254 | --已经开始挖宝 |
215 | if curInfo["end_time"] then | 255 | if curInfo["end_time"] then |
216 | - if skynet.timex() >= curInfo["end_time"] then | 256 | + if now >= curInfo["end_time"] then |
217 | if curInfo.cool_time > 1 then | 257 | if curInfo.cool_time > 1 then |
218 | --宝藏冷却时间 | 258 | --宝藏冷却时间 |
219 | if not curInfo["expire_time"] then | 259 | if not curInfo["expire_time"] then |
@@ -221,12 +261,12 @@ function DailyPlugin.bind(Daily) | @@ -221,12 +261,12 @@ function DailyPlugin.bind(Daily) | ||
221 | treasureBase = treasureBase - curInfo["treasure_value"] | 261 | treasureBase = treasureBase - curInfo["treasure_value"] |
222 | 262 | ||
223 | treasure = treasureList[curInfo.id] | 263 | treasure = treasureList[curInfo.id] |
224 | - curInfo["expire_time"] = skynet.timex() + curInfo.cool_time * oneDay | 264 | + curInfo["expire_time"] = now + curInfo.cool_time * oneDay |
225 | end | 265 | end |
226 | 266 | ||
227 | else | 267 | else |
228 | --已经领取宝藏 检索宝藏冷却时间 | 268 | --已经领取宝藏 检索宝藏冷却时间 |
229 | - if skynet.timex() >= curInfo["expire_time"] then | 269 | + if now >= curInfo["expire_time"] then |
230 | treasureList[curInfo.id] = nil | 270 | treasureList[curInfo.id] = nil |
231 | end | 271 | end |
232 | end | 272 | end |