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 |