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,7 +76,13 @@ FuncOpenType = { | ||
76 | AdvWS = 6, -- 工坊解锁 | 76 | AdvWS = 6, -- 工坊解锁 |
77 | AdvWheelSurf = 7, -- 抽奖解锁 | 77 | AdvWheelSurf = 7, -- 抽奖解锁 |
78 | TimeBoxSlot = 8, -- 时钟箱槽 | 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 | -- 关卡通关相关的 功能开放 对应 guide_unlock | 87 | -- 关卡通关相关的 功能开放 对应 guide_unlock |
82 | FuncUnlock = { | 88 | FuncUnlock = { |
@@ -90,10 +96,6 @@ FuncUnlock = { | @@ -90,10 +96,6 @@ FuncUnlock = { | ||
90 | Adv = 8, -- 冒险 | 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 | -- 物品起始id | 100 | -- 物品起始id |
99 | ItemStartId = { | 101 | ItemStartId = { |
@@ -252,3 +254,8 @@ SettingStatus = { | @@ -252,3 +254,8 @@ SettingStatus = { | ||
252 | } | 254 | } |
253 | 255 | ||
254 | EMAIL_LIMIT = 20 --邮件最大数量 | 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,6 +381,8 @@ function _M.endBattleRpc(agent, data) | ||
381 | sdelta = matchScore - oldMatchScore, | 381 | sdelta = matchScore - oldMatchScore, |
382 | })) | 382 | })) |
383 | red:ltrim(dbKey, 0, 9) | 383 | red:ltrim(dbKey, 0, 9) |
384 | + | ||
385 | + rpcRole(match.id, "redPTag", RedPointTags.PvpCR, now) | ||
384 | end | 386 | end |
385 | end) | 387 | end) |
386 | 388 | ||
@@ -670,6 +672,7 @@ function _M.endBattleHRpc(agent, data) | @@ -670,6 +672,7 @@ function _M.endBattleHRpc(agent, data) | ||
670 | record = recordBattle, | 672 | record = recordBattle, |
671 | })) | 673 | })) |
672 | red:ltrim(dbKey, 0, 9) | 674 | red:ltrim(dbKey, 0, 9) |
675 | + rpcRole(match.id, "redPTag", RedPointTags.PvpHR, now) | ||
673 | end | 676 | end |
674 | end) | 677 | end) |
675 | 678 | ||
@@ -786,7 +789,7 @@ function _M.recordListRpc(agent, data) | @@ -786,7 +789,7 @@ function _M.recordListRpc(agent, data) | ||
786 | info.video = temp.video | 789 | info.video = temp.video |
787 | info.sdelta = temp.sdelta | 790 | info.sdelta = temp.sdelta |
788 | end | 791 | end |
789 | - | 792 | + role:clearRedPTag(RedPointTags.PvpCR) |
790 | elseif ptype == 2 then -- 高级pvp | 793 | elseif ptype == 2 then -- 高级pvp |
791 | local rlist = redisproxy:lrange(string.format(RECORD_PVP_HIGH, roleId), 0 , 9) | 794 | local rlist = redisproxy:lrange(string.format(RECORD_PVP_HIGH, roleId), 0 , 9) |
792 | local tempList = {} | 795 | local tempList = {} |
@@ -806,6 +809,8 @@ function _M.recordListRpc(agent, data) | @@ -806,6 +809,8 @@ function _M.recordListRpc(agent, data) | ||
806 | info.sdelta = temp.sdelta | 809 | info.sdelta = temp.sdelta |
807 | info.record = temp.record | 810 | info.record = temp.record |
808 | end | 811 | end |
812 | + role:clearRedPTag(RedPointTags.PvpHR) | ||
813 | + | ||
809 | else | 814 | else |
810 | return | 815 | return |
811 | end | 816 | end |
src/models/Role.lua
@@ -150,6 +150,8 @@ Role.schema = { | @@ -150,6 +150,8 @@ Role.schema = { | ||
150 | 150 | ||
151 | sudoku = {"table", {}}, -- 九宫格 {[-1] = 1, task = {[1] = {}, [2] = {}}}} -- [-1] 阶段 如果为 -1 关闭(都做完了), task 当前阶段任务进度, reward 连串奖励领取情况 | 151 | sudoku = {"table", {}}, -- 九宫格 {[-1] = 1, task = {[1] = {}, [2] = {}}}} -- [-1] 阶段 如果为 -1 关闭(都做完了), task 当前阶段任务进度, reward 连串奖励领取情况 |
152 | sign = {"table", {}}, -- 签到记录 {[1] = 20181029} | 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,6 +361,8 @@ function Role:data() | ||
359 | 361 | ||
360 | sudoku = self:getProperty("sudoku"), | 362 | sudoku = self:getProperty("sudoku"), |
361 | sign = self:getProperty("sign"), | 363 | sign = self:getProperty("sign"), |
364 | + | ||
365 | + redp = self:getProperty("redp"), | ||
362 | } | 366 | } |
363 | end | 367 | end |
364 | 368 |
src/models/RoleCross.lua
@@ -67,6 +67,15 @@ RoleCross.bind = function (Role) | @@ -67,6 +67,15 @@ RoleCross.bind = function (Role) | ||
67 | return info | 67 | return info |
68 | end | 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 | function Role:accountInit(initData) | 79 | function Role:accountInit(initData) |
71 | -- 道具 | 80 | -- 道具 |
72 | local reward = {} | 81 | local reward = {} |
@@ -318,6 +327,16 @@ function CMD.pvpHRankInfo(roleId) | @@ -318,6 +327,16 @@ function CMD.pvpHRankInfo(roleId) | ||
318 | return info | 327 | return info |
319 | end | 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 | RoleCross.handle = function(cmd, roleId, ...) | 340 | RoleCross.handle = function(cmd, roleId, ...) |
322 | SRole = SRole or require("models.Role") | 341 | SRole = SRole or require("models.Role") |
323 | if CMD[cmd] then | 342 | if CMD[cmd] then |
src/models/RolePlugin.lua
@@ -830,13 +830,11 @@ function RolePlugin.bind(Role) | @@ -830,13 +830,11 @@ function RolePlugin.bind(Role) | ||
830 | end | 830 | end |
831 | 831 | ||
832 | function Role:getAdvHangLimit() | 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 | end | 834 | end |
836 | 835 | ||
837 | function Role:getAdvElLimit() | 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 | end | 838 | end |
841 | 839 | ||
842 | -- 走 guide_unlock 表的 被动解锁 | 840 | -- 走 guide_unlock 表的 被动解锁 |
@@ -1392,6 +1390,13 @@ function RolePlugin.bind(Role) | @@ -1392,6 +1390,13 @@ function RolePlugin.bind(Role) | ||
1392 | return false | 1390 | return false |
1393 | end | 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 | end | 1400 | end |
1396 | 1401 | ||
1397 | return RolePlugin | 1402 | return RolePlugin |
1398 | \ No newline at end of file | 1403 | \ No newline at end of file |