diff --git a/docs/日志说明.xlsx b/docs/日志说明.xlsx index 67cb046..9a82d27 100644 Binary files a/docs/日志说明.xlsx and b/docs/日志说明.xlsx differ diff --git a/src/models/Activity.lua b/src/models/Activity.lua new file mode 100644 index 0000000..3f223e7 --- /dev/null +++ b/src/models/Activity.lua @@ -0,0 +1,81 @@ +local Activity = class("Activity", require("shared.ModelBase")) + + +Activity.ActivityType = { + DoubleDrop = 1, -- 双倍掉落 +} + + +local function checkActivityType(activityType) + if type(activityType) == "string" then + activityType = Activity.ActivityType[activityType] + end + return activityType +end + + +function Activity:ctor(properties) + Activity.super.ctor(self, properties) + + self._isOpen = {} +end + + +Activity.schema = { + ctime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time} + _1 = {"table", {}}, +} + +function Activity:data() + return { + _1 = self:getProperty("_1"), + } +end + + +function Activity:updateProperty(params) + local type, default = table.unpack(self.schema[params.field]) + + if params.delta then + self:incrProperty(params.field, params.delta) + if not params.notNotify then + self.owner:notifyUpdateProperty(params.field, self:getProperty(params.field)) + end + return true + end + if params.value then + self:setProperty(params.field, params.value) + if not params.notNotify then + self.owner:notifyUpdateProperty(params.field, self:getProperty(params.field)) + end + return true + end + return false +end + + +function Activity:isOpen(activityType) + activityType = checkActivityType(activityType) + +end + +-- 跨天刷新 --登录刷新 +function Activity:checkActivityStatus(ltime, now, notify) + +end + +local checkActivityFunc = {} + +checkActivityFunc[Activity.ActivityType.DoubleDrop] = function(self, notNotify, activityType, ...) + +end + +function Activity:checkActivityEnter(notNotify, activityType, ...) + if not activityType then return end + if checkActivityFunc[activityType] then + checkActivityFunc[activityType](self, notNotify, activityType, ...) + end +end + + +return Activity \ No newline at end of file diff --git a/src/models/Role.lua b/src/models/Role.lua index b24a0dc..db76f8d 100644 --- a/src/models/Role.lua +++ b/src/models/Role.lua @@ -23,7 +23,7 @@ function Role:ctor( properties ) self.heros = {} self.runeBag = {} self.advData = nil - + self.activity = nil self.advElChapter = tonum(redisproxy:hget("adv_season", "chapter"), globalCsv.adv_endless_default_chapter) -- 无尽模式记录的赛季对应章节 self.advOverTime = tonum(redisproxy:hget("adv_season", "overTime")) -- 无尽模式关闭时间戳 end diff --git a/src/models/RoleActivity.lua b/src/models/RoleActivity.lua deleted file mode 100644 index b70207f..0000000 --- a/src/models/RoleActivity.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Activity = class("Activity", require("shared.ModelBase")) - - -Activity.ActivityType = { - -} - -local function checkActivityType(activityType) - if type(activityType) == "string" then - activityType = Activity.ActivityType[activityType] - end - return activityType -end - - -function Activity:ctor(properties) - Activity.super.ctor(self, properties) - - self.open = {} - -end - - -Activity.schema = { - _1 = {"table", {}}, -} - -function Activity:data() - return { - _1 = self:getProperty("_1"), - } -end - - - -return Activity \ No newline at end of file diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index dbe77e6..b1807e7 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -10,6 +10,7 @@ function RolePlugin.bind(Role) self:loadRunes() self:loadHeros() self:loadDiner() + self:loadActivity() end function Role:reloadWhenLogin() @@ -507,6 +508,18 @@ function RolePlugin.bind(Role) end end + function Role:loadActivity() + local roleId = self:getProperty("id") + local dataKey = string.format(R_ACTIVITY, roleId) + self.activity = require("models.Activity").new({key = dataKey}) + self.activity.owner = self + if not redisproxy:exists(dataKey) then + self.activity:create() + else + self.activity:load() + end + end + function Role:loadDiner() local roleId = self:getProperty("id") local dataKey = string.format(R_DINER, roleId) diff --git a/src/models/RoleTask.lua b/src/models/RoleTask.lua index 017042a..51a406c 100644 --- a/src/models/RoleTask.lua +++ b/src/models/RoleTask.lua @@ -184,7 +184,7 @@ local AchievListener = { } } -local SudokuListerer = { +local SudokuListener = { func = "checkSudokuTask", listen = { [TaskType.HangPass] = {{1, 1, f("id")}}, @@ -205,12 +205,20 @@ local SudokuListerer = { } } +local ActivityListener = { + func = "checkActivityTask", + listener = { + + } +} + local TaskListeners = { StoryListener, CommonListener, AchievListener, - SudokuListerer, + SudokuListener, + ActivityListener, } local RoleTask = {} @@ -517,6 +525,10 @@ function RoleTask.bind(Role) end end + function Role:checkActivityTask(notNotify, activityType, ...) + self.activity:checkActivityEnter(notNotify, activityType, ...) + end + end return RoleTask \ No newline at end of file -- libgit2 0.21.2