Commit 9cede2e2bfdcc5685bb167c6bcde5ad3a9a755f3
1 parent
6198b5d8
主推红点 和冒险次数
Showing
5 changed files
with
49 additions
and
9 deletions
Show diff stats
src/GlobalVar.lua
... | ... | @@ -76,7 +76,13 @@ FuncOpenType = { |
76 | 76 | AdvWS = 6, -- 工坊解锁 |
77 | 77 | AdvWheelSurf = 7, -- 抽奖解锁 |
78 | 78 | TimeBoxSlot = 8, -- 时钟箱槽 |
79 | + AdvCount = 9, -- 冒险 次数上限 | |
80 | + AdvCountEL = 10, -- 无尽冒险 次数上限 | |
79 | 81 | } |
82 | +TypeIsFunc = {} | |
83 | +for _, v in pairs(FuncOpenType) do | |
84 | + TypeIsFunc[v] = true | |
85 | +end | |
80 | 86 | |
81 | 87 | -- 关卡通关相关的 功能开放 对应 guide_unlock |
82 | 88 | FuncUnlock = { |
... | ... | @@ -90,10 +96,6 @@ FuncUnlock = { |
90 | 96 | Adv = 8, -- 冒险 |
91 | 97 | } |
92 | 98 | |
93 | -TypeIsFunc = {} | |
94 | -for _, v in pairs(FuncOpenType) do | |
95 | - TypeIsFunc[v] = true | |
96 | -end | |
97 | 99 | |
98 | 100 | -- 物品起始id |
99 | 101 | ItemStartId = { |
... | ... | @@ -252,3 +254,8 @@ SettingStatus = { |
252 | 254 | } |
253 | 255 | |
254 | 256 | EMAIL_LIMIT = 20 --邮件最大数量 |
257 | + | |
258 | +RedPointTags = { | |
259 | + PvpCR = 1, | |
260 | + PvpHR = 2, | |
261 | +} | ... | ... |
src/actions/PvpAction.lua
... | ... | @@ -381,6 +381,8 @@ function _M.endBattleRpc(agent, data) |
381 | 381 | sdelta = matchScore - oldMatchScore, |
382 | 382 | })) |
383 | 383 | red:ltrim(dbKey, 0, 9) |
384 | + | |
385 | + rpcRole(match.id, "redPTag", RedPointTags.PvpCR, now) | |
384 | 386 | end |
385 | 387 | end) |
386 | 388 | |
... | ... | @@ -670,6 +672,7 @@ function _M.endBattleHRpc(agent, data) |
670 | 672 | record = recordBattle, |
671 | 673 | })) |
672 | 674 | red:ltrim(dbKey, 0, 9) |
675 | + rpcRole(match.id, "redPTag", RedPointTags.PvpHR, now) | |
673 | 676 | end |
674 | 677 | end) |
675 | 678 | |
... | ... | @@ -786,7 +789,7 @@ function _M.recordListRpc(agent, data) |
786 | 789 | info.video = temp.video |
787 | 790 | info.sdelta = temp.sdelta |
788 | 791 | end |
789 | - | |
792 | + role:clearRedPTag(RedPointTags.PvpCR) | |
790 | 793 | elseif ptype == 2 then -- 高级pvp |
791 | 794 | local rlist = redisproxy:lrange(string.format(RECORD_PVP_HIGH, roleId), 0 , 9) |
792 | 795 | local tempList = {} |
... | ... | @@ -806,6 +809,8 @@ function _M.recordListRpc(agent, data) |
806 | 809 | info.sdelta = temp.sdelta |
807 | 810 | info.record = temp.record |
808 | 811 | end |
812 | + role:clearRedPTag(RedPointTags.PvpHR) | |
813 | + | |
809 | 814 | else |
810 | 815 | return |
811 | 816 | end | ... | ... |
src/models/Role.lua
... | ... | @@ -150,6 +150,8 @@ Role.schema = { |
150 | 150 | |
151 | 151 | sudoku = {"table", {}}, -- 九宫格 {[-1] = 1, task = {[1] = {}, [2] = {}}}} -- [-1] 阶段 如果为 -1 关闭(都做完了), task 当前阶段任务进度, reward 连串奖励领取情况 |
152 | 152 | sign = {"table", {}}, -- 签到记录 {[1] = 20181029} |
153 | + | |
154 | + redp = {"table", {}}, -- 待消除红点 -- 通常打开对应界面就消除的红点 红点消除的方法 在对应的协议中使用 {tag = pms } | |
153 | 155 | } |
154 | 156 | |
155 | 157 | |
... | ... | @@ -359,6 +361,8 @@ function Role:data() |
359 | 361 | |
360 | 362 | sudoku = self:getProperty("sudoku"), |
361 | 363 | sign = self:getProperty("sign"), |
364 | + | |
365 | + redp = self:getProperty("redp"), | |
362 | 366 | } |
363 | 367 | end |
364 | 368 | ... | ... |
src/models/RoleCross.lua
... | ... | @@ -67,6 +67,15 @@ RoleCross.bind = function (Role) |
67 | 67 | return info |
68 | 68 | end |
69 | 69 | |
70 | + function Role:redPTag(tag, pms) | |
71 | + pms = pms or 1 | |
72 | + local redp = self:getProperty("redp") | |
73 | + if not redp[tag] or redp[tag] ~= pms then | |
74 | + redp[tag] = pms | |
75 | + self:updateProperty({field = "redp", value = redp}) | |
76 | + end | |
77 | + end | |
78 | + | |
70 | 79 | function Role:accountInit(initData) |
71 | 80 | -- 道具 |
72 | 81 | local reward = {} |
... | ... | @@ -318,6 +327,16 @@ function CMD.pvpHRankInfo(roleId) |
318 | 327 | return info |
319 | 328 | end |
320 | 329 | |
330 | +-- 记录红点 | |
331 | +function CMD.redPTag(roleId, tag, pms) | |
332 | + pms = pms or 1 | |
333 | + local redp = CMD.getProperty(roleId, "redp") | |
334 | + if not redp[tag] or redp[tag] ~= pms then | |
335 | + redp[tag] = pms | |
336 | + CMD.setProperty(roleId, "redp", redp) | |
337 | + end | |
338 | +end | |
339 | + | |
321 | 340 | RoleCross.handle = function(cmd, roleId, ...) |
322 | 341 | SRole = SRole or require("models.Role") |
323 | 342 | if CMD[cmd] then | ... | ... |
src/models/RolePlugin.lua
... | ... | @@ -830,13 +830,11 @@ function RolePlugin.bind(Role) |
830 | 830 | end |
831 | 831 | |
832 | 832 | function Role:getAdvHangLimit() |
833 | - -- todo | |
834 | - return globalCsv.adv_daily_cross_count | |
833 | + return globalCsv.adv_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCount) | |
835 | 834 | end |
836 | 835 | |
837 | 836 | function Role:getAdvElLimit() |
838 | - -- todo | |
839 | - return globalCsv.adv_endless_daily_cross_count | |
837 | + return globalCsv.adv_endless_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCountEL) | |
840 | 838 | end |
841 | 839 | |
842 | 840 | -- 走 guide_unlock 表的 被动解锁 |
... | ... | @@ -1392,6 +1390,13 @@ function RolePlugin.bind(Role) |
1392 | 1390 | return false |
1393 | 1391 | end |
1394 | 1392 | |
1393 | + -- 消除指定tag 红点 | |
1394 | + function Role:clearRedPTag(tag) | |
1395 | + local redp = self:getProperty("redp") | |
1396 | + redp[tag] = nil | |
1397 | + self:updateProperty({field = "redp", value = redp}) | |
1398 | + end | |
1399 | + | |
1395 | 1400 | end |
1396 | 1401 | |
1397 | 1402 | return RolePlugin |
1398 | 1403 | \ No newline at end of file | ... | ... |