diff --git a/src/actions/RoleAction.lua b/src/actions/RoleAction.lua index 9c18d5a..31d1b72 100644 --- a/src/actions/RoleAction.lua +++ b/src/actions/RoleAction.lua @@ -157,6 +157,7 @@ function _M.loginRpc( agent, data ) SERV_OPEN = redisproxy:hget("autoincrement_set", "server_start") role:changeStructVersion() -- 数据结构 版本更新 + role:getAdvData(true) -- 清掉不合格的数据 role:advEndlessSeasonCheck(true) -- 冒险赛季更新检查 -- 跨天登陆事件 diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 7d60397..7975fca 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -20,8 +20,6 @@ function Adv:ctor(owner) self.advTask = self.owner:getProperty("advTask") self.advMTask = self.owner:getProperty("advMTask") self.advTaskChange = false -- 任务改变才更新 - - self:initByInfo(self.owner:getProperty("advInfo")) end function Adv:mylog(contents) @@ -36,7 +34,8 @@ function Adv:mylog(contents) end --初始化adv 信息 -function Adv:initByInfo(advInfo) +function Adv:initByInfo() + local advInfo = self.owner:getProperty("advInfo") if not next(advInfo) then return end --还没有 开始新地图 self.chapterId = advInfo.chapterId @@ -397,10 +396,9 @@ function Adv:isRunning() return false end --- 强制结束 -function Adv:forceOver(notNotify) - if self:isRunning() then - +-- 强制结束 逻辑和adv内部无关 +function Adv:forceOver(notNotify, force) + if self:isRunning() or force then local advTeam = self.owner:getProperty("advTeam") advTeam.player = nil diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index 782d6f7..6832ab5 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -804,9 +804,16 @@ function RolePlugin.bind(Role) return runeSet end - function Role:getAdvData() + function Role:getAdvData(notNotify) if not self.advData then self.advData = require("adv.Adv").new(self) + local status, err = pcall(function() + self.advData:initByInfo() + end) + if not status then + self.advData:forceOver(notNotify, true) + skynet.error("getAdvData error adv initByInfo " .. err) + end end return self.advData end -- libgit2 0.21.2