From 9cede2e2bfdcc5685bb167c6bcde5ad3a9a755f3 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Tue, 16 Jun 2020 11:55:17 +0800 Subject: [PATCH] 主推红点 和冒险次数 --- src/GlobalVar.lua | 15 +++++++++++---- src/actions/PvpAction.lua | 7 ++++++- src/models/Role.lua | 4 ++++ src/models/RoleCross.lua | 19 +++++++++++++++++++ src/models/RolePlugin.lua | 13 +++++++++---- 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 398a9cb..c2fbf66 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -76,7 +76,13 @@ FuncOpenType = { AdvWS = 6, -- 工坊解锁 AdvWheelSurf = 7, -- 抽奖解锁 TimeBoxSlot = 8, -- 时钟箱槽 + AdvCount = 9, -- 冒险 次数上限 + AdvCountEL = 10, -- 无尽冒险 次数上限 } +TypeIsFunc = {} +for _, v in pairs(FuncOpenType) do + TypeIsFunc[v] = true +end -- 关卡通关相关的 功能开放 对应 guide_unlock FuncUnlock = { @@ -90,10 +96,6 @@ FuncUnlock = { Adv = 8, -- 冒险 } -TypeIsFunc = {} -for _, v in pairs(FuncOpenType) do - TypeIsFunc[v] = true -end -- 物品起始id ItemStartId = { @@ -252,3 +254,8 @@ SettingStatus = { } EMAIL_LIMIT = 20 --邮件最大数量 + +RedPointTags = { + PvpCR = 1, + PvpHR = 2, +} diff --git a/src/actions/PvpAction.lua b/src/actions/PvpAction.lua index 1bd8d37..b365ae8 100644 --- a/src/actions/PvpAction.lua +++ b/src/actions/PvpAction.lua @@ -381,6 +381,8 @@ function _M.endBattleRpc(agent, data) sdelta = matchScore - oldMatchScore, })) red:ltrim(dbKey, 0, 9) + + rpcRole(match.id, "redPTag", RedPointTags.PvpCR, now) end end) @@ -670,6 +672,7 @@ function _M.endBattleHRpc(agent, data) record = recordBattle, })) red:ltrim(dbKey, 0, 9) + rpcRole(match.id, "redPTag", RedPointTags.PvpHR, now) end end) @@ -786,7 +789,7 @@ function _M.recordListRpc(agent, data) info.video = temp.video info.sdelta = temp.sdelta end - + role:clearRedPTag(RedPointTags.PvpCR) elseif ptype == 2 then -- 高级pvp local rlist = redisproxy:lrange(string.format(RECORD_PVP_HIGH, roleId), 0 , 9) local tempList = {} @@ -806,6 +809,8 @@ function _M.recordListRpc(agent, data) info.sdelta = temp.sdelta info.record = temp.record end + role:clearRedPTag(RedPointTags.PvpHR) + else return end diff --git a/src/models/Role.lua b/src/models/Role.lua index 0ca0f1d..d91bfe4 100644 --- a/src/models/Role.lua +++ b/src/models/Role.lua @@ -150,6 +150,8 @@ Role.schema = { sudoku = {"table", {}}, -- 九宫格 {[-1] = 1, task = {[1] = {}, [2] = {}}}} -- [-1] 阶段 如果为 -1 关闭(都做完了), task 当前阶段任务进度, reward 连串奖励领取情况 sign = {"table", {}}, -- 签到记录 {[1] = 20181029} + + redp = {"table", {}}, -- 待消除红点 -- 通常打开对应界面就消除的红点 红点消除的方法 在对应的协议中使用 {tag = pms } } @@ -359,6 +361,8 @@ function Role:data() sudoku = self:getProperty("sudoku"), sign = self:getProperty("sign"), + + redp = self:getProperty("redp"), } end diff --git a/src/models/RoleCross.lua b/src/models/RoleCross.lua index f84c27a..5884703 100644 --- a/src/models/RoleCross.lua +++ b/src/models/RoleCross.lua @@ -67,6 +67,15 @@ RoleCross.bind = function (Role) return info end + function Role:redPTag(tag, pms) + pms = pms or 1 + local redp = self:getProperty("redp") + if not redp[tag] or redp[tag] ~= pms then + redp[tag] = pms + self:updateProperty({field = "redp", value = redp}) + end + end + function Role:accountInit(initData) -- 道具 local reward = {} @@ -318,6 +327,16 @@ function CMD.pvpHRankInfo(roleId) return info end +-- 记录红点 +function CMD.redPTag(roleId, tag, pms) + pms = pms or 1 + local redp = CMD.getProperty(roleId, "redp") + if not redp[tag] or redp[tag] ~= pms then + redp[tag] = pms + CMD.setProperty(roleId, "redp", redp) + end +end + RoleCross.handle = function(cmd, roleId, ...) SRole = SRole or require("models.Role") if CMD[cmd] then diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index 2221247..ce1bbcd 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -830,13 +830,11 @@ function RolePlugin.bind(Role) end function Role:getAdvHangLimit() - -- todo - return globalCsv.adv_daily_cross_count + return globalCsv.adv_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCount) end function Role:getAdvElLimit() - -- todo - return globalCsv.adv_endless_daily_cross_count + return globalCsv.adv_endless_daily_cross_count + self:getFuncLv(FuncOpenType.AdvCountEL) end -- 走 guide_unlock 表的 被动解锁 @@ -1392,6 +1390,13 @@ function RolePlugin.bind(Role) return false end + -- 消除指定tag 红点 + function Role:clearRedPTag(tag) + local redp = self:getProperty("redp") + redp[tag] = nil + self:updateProperty({field = "redp", value = redp}) + end + end return RolePlugin \ No newline at end of file -- libgit2 0.21.2