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 | ... | ... |