Commit 5ef0f2c7546e69f5884de79ded06560d53f72c51
Merge branch 'cn/develop' into cn/publish/preview
Showing
3 changed files
with
39 additions
and
7 deletions
Show diff stats
src/actions/RadioAction.lua
@@ -113,14 +113,35 @@ function _M.startQuestRpc(agent, data) | @@ -113,14 +113,35 @@ function _M.startQuestRpc(agent, data) | ||
113 | local msg = MsgPack.unpack(data) | 113 | local msg = MsgPack.unpack(data) |
114 | local id = msg.id | 114 | local id = msg.id |
115 | local heros = msg.heros | 115 | local heros = msg.heros |
116 | - local result = {} | ||
117 | - local radioTask = role:getProperty("radioTask") | ||
118 | - if table.numbers(radioTask) >= getQuestMax(role) then | ||
119 | - return 1 | ||
120 | - end | 116 | + |
121 | -- check id | 117 | -- check id |
122 | local config = csvdb["crusadeCsv"][id] | 118 | local config = csvdb["crusadeCsv"][id] |
123 | - if not config then return 2 end | 119 | + if not config then return 1 end |
120 | + | ||
121 | + local radioTask = role:getProperty("radioTask") | ||
122 | + | ||
123 | + local getActIDs = function () | ||
124 | + local actids = {} | ||
125 | + for _, v in pairs(radioTask or {}) do | ||
126 | + actids[v.actid] = (actids[v.actid] or 0) + 1 | ||
127 | + end | ||
128 | + return actids | ||
129 | + end | ||
130 | + | ||
131 | + local actids = getActIDs() | ||
132 | + if config.activity_ctrl_id == 0 then | ||
133 | + --非活动 判断数量 | ||
134 | + if (actids[config.activity_ctrl_id] or 0) >= getQuestMax(role) then | ||
135 | + return 2 | ||
136 | + end | ||
137 | + | ||
138 | + else | ||
139 | + --活动 同时只能有一个存在 | ||
140 | + if actids[config.activity_ctrl_id] >= 1 then | ||
141 | + return 5 | ||
142 | + end | ||
143 | + end | ||
144 | + | ||
124 | if not role:checkHangPass(config.unlock) then return 3 end | 145 | if not role:checkHangPass(config.unlock) then return 3 end |
125 | if radioTask[id] then return 4 end | 146 | if radioTask[id] then return 4 end |
126 | -- check hero | 147 | -- check hero |
@@ -172,6 +193,7 @@ function _M.startQuestRpc(agent, data) | @@ -172,6 +193,7 @@ function _M.startQuestRpc(agent, data) | ||
172 | local taskData = {} | 193 | local taskData = {} |
173 | taskData["time"] = skynet.timex() + config.time + timeSub | 194 | taskData["time"] = skynet.timex() + config.time + timeSub |
174 | taskData["heros"] = heros | 195 | taskData["heros"] = heros |
196 | + taskData["actid"] = config.activity_ctrl_id | ||
175 | radioTask[id] = taskData | 197 | radioTask[id] = taskData |
176 | role:updateProperty({field="radioTask", value=radioTask, notNotify=true}) | 198 | role:updateProperty({field="radioTask", value=radioTask, notNotify=true}) |
177 | 199 |
src/models/Activity.lua
@@ -1484,7 +1484,7 @@ activityFunc[Activity.ActivityType.RadioTask] = { | @@ -1484,7 +1484,7 @@ activityFunc[Activity.ActivityType.RadioTask] = { | ||
1484 | -- check id | 1484 | -- check id |
1485 | local config = csvdb["crusadeCsv"][id] | 1485 | local config = csvdb["crusadeCsv"][id] |
1486 | if config then | 1486 | if config then |
1487 | - if config.actid == actid then | 1487 | + if config.activity_ctrl_id == actid then |
1488 | radioTask[id] = nil | 1488 | radioTask[id] = nil |
1489 | 1489 | ||
1490 | if not task then return 4 end | 1490 | if not task then return 4 end |
src/models/RolePlugin.lua
@@ -2177,6 +2177,16 @@ function RolePlugin.bind(Role) | @@ -2177,6 +2177,16 @@ function RolePlugin.bind(Role) | ||
2177 | return (hangPass[diff] or 0) >= carbonId | 2177 | return (hangPass[diff] or 0) >= carbonId |
2178 | end | 2178 | end |
2179 | 2179 | ||
2180 | + function Role:checkActivityBattlePass(battleId) | ||
2181 | + local isOpen, actId = self.activity:isOpen("ChallengeLevel") | ||
2182 | + if not isOpen then return end | ||
2183 | + | ||
2184 | + local actData = self.activity:getActData("ChallengeLevel") or {} | ||
2185 | + local battleInfo = actData[battleId] or {} | ||
2186 | + | ||
2187 | + return battleInfo["star"] ~= nil | ||
2188 | + end | ||
2189 | + | ||
2180 | function Role:checkAdvChapterPass(chapterId) | 2190 | function Role:checkAdvChapterPass(chapterId) |
2181 | local chapterData = csvdb["adv_chapterCsv"][chapterId] | 2191 | local chapterData = csvdb["adv_chapterCsv"][chapterId] |
2182 | local advPass = self:getProperty("advPass") or {} | 2192 | local advPass = self:getProperty("advPass") or {} |