Commit dfa9ae5e737b325137ef3231056df4149df6b98c
1 parent
b23cd820
战令任务活动
Showing
12 changed files
with
152 additions
and
74 deletions
Show diff stats
src/ProtocolCode.lua
... | ... | @@ -232,7 +232,7 @@ actionCodes = { |
232 | 232 | Activity_commonSignRpc = 666, |
233 | 233 | Activity_friendHelpRpc = 667, |
234 | 234 | Activity_battleCommandRpc = 668, |
235 | - Activity_actCalendaTmpTaskRpc = 669, | |
235 | + Activity_actBattleCommandTaskRpc = 669, | |
236 | 236 | Activity_newSignRpc = 670, |
237 | 237 | Activity_advLevelRpc = 671, |
238 | 238 | Activity_buyBattleCommandLvlRpc = 672, | ... | ... |
src/actions/ActivityAction.lua
... | ... | @@ -266,15 +266,15 @@ function _M.actCalendaTaskRpc(agent, data) |
266 | 266 | return true |
267 | 267 | end |
268 | 268 | |
269 | -function _M.actCalendaTmpTaskRpc(agent, data) | |
269 | +function _M.actBattleCommandTaskRpc(agent, data) | |
270 | 270 | local role = agent.role |
271 | 271 | local msg = MsgPack.unpack(data) |
272 | 272 | local taskId = msg.id |
273 | - local calTask = role:getProperty("calTask1") or {} | |
273 | + local calTask = role:getProperty("bcTask") or {} | |
274 | 274 | local record = calTask["r"] or {} |
275 | 275 | local flag = record[taskId] or 0 |
276 | 276 | if flag == 1 then return 1 end |
277 | - local open, actId = role.activity:isOpen("CalendaTaskTmp") | |
277 | + local open, actId = role.activity:isOpen("BattleCommandTask") | |
278 | 278 | local actData = csvdb["activity_ctrlCsv"][actId] |
279 | 279 | if not open then return 2 end |
280 | 280 | if not actData then return 3 end |
... | ... | @@ -287,22 +287,28 @@ function _M.actCalendaTmpTaskRpc(agent, data) |
287 | 287 | |
288 | 288 | if (calTask[taskId] or 0) < taskCfg.condition1 then return 7 end |
289 | 289 | |
290 | + local open, actId = role.activity:isOpen("BattleCommand") | |
291 | + local actData = csvdb["activity_ctrlCsv"][actId] | |
292 | + if not open then return 2 end | |
293 | + if not actData then return 3 end | |
294 | + | |
295 | + | |
290 | 296 | record[taskId] = 1 |
291 | 297 | calTask["r"] = record |
292 | 298 | |
293 | - role:updateProperty({field = "calTask", value = calTask}) | |
299 | + role:updateProperty({field = "bcTask", value = calTask}) | |
294 | 300 | |
295 | - local reward, change = role:award(taskCfg.reward, {log = {desc = "calendaTask"}}) | |
301 | + local reward, change = role:award(taskCfg.reward, {log = {desc = "battleCommandTask"}}) | |
296 | 302 | |
297 | 303 | role:log("activity", { |
298 | 304 | activity_id = taskId, -- 活动ID(或活动指定任务的ID) |
299 | - activity_type = role.activity.ActivityType.CalendaTaskTmp, -- 活动类型,见活动类型枚举表 | |
305 | + activity_type = role.activity.ActivityType.BattleCommandTask, -- 活动类型,见活动类型枚举表 | |
300 | 306 | activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} |
301 | 307 | }) |
302 | 308 | |
303 | 309 | role:checkTaskEnter("FinishSpeTask", {taskId = taskId, actId = actId}) |
304 | 310 | |
305 | - SendPacket(actionCodes.Activity_actCalendaTmpTaskRpc, MsgPack.pack(role:packReward(reward, change))) | |
311 | + SendPacket(actionCodes.Activity_actBattleCommandTaskRpc, MsgPack.pack(role:packReward(reward, change))) | |
306 | 312 | |
307 | 313 | return true |
308 | 314 | end | ... | ... |
src/actions/AdvAction.lua
... | ... | @@ -146,6 +146,7 @@ function _M.startAdvRpc( agent, data ) |
146 | 146 | |
147 | 147 | if not checkFormat(role) then return 7 end |
148 | 148 | |
149 | + local cost = 0 | |
149 | 150 | if AdvCommon.isEndless(chapterId) then -- 无尽模式判断 |
150 | 151 | |
151 | 152 | if chapterId ~= role.advElChapter then return end -- 不是当前进行的章节 |
... | ... | @@ -164,6 +165,7 @@ function _M.startAdvRpc( agent, data ) |
164 | 165 | end |
165 | 166 | |
166 | 167 | role.dailyData:updateProperty({field = "advElC", delta = 1}) |
168 | + cost = 1 | |
167 | 169 | else -- 普通模式判断 |
168 | 170 | if layer >= chapterData.limitlevel then return 4 end |
169 | 171 | |
... | ... | @@ -178,7 +180,9 @@ function _M.startAdvRpc( agent, data ) |
178 | 180 | if not role:advChapterIsOpen(chapterId) then return 5 end |
179 | 181 | |
180 | 182 | role:changeAdvCount(relayData.supply) |
183 | + cost = relayData.supply | |
181 | 184 | end |
185 | + role:checkTaskEnter("AdvCostPower", {count = cost}) | |
182 | 186 | |
183 | 187 | local support = {} -- 支援效果 |
184 | 188 | if AdvCommon.isEndless(chapterId) then | ... | ... |
src/actions/HeroAction.lua
... | ... | @@ -976,6 +976,9 @@ function _M.drawHeroRpc(agent, data) |
976 | 976 | end |
977 | 977 | |
978 | 978 | role:checkTaskEnter("DrawHero", {pool = btype, count = drawCount[drawType]}) |
979 | + if btype ~= 3 then | |
980 | + role:checkTaskEnter("DrawHeroNotFriend", {pool = btype, count = drawCount[drawType]}) | |
981 | + end | |
979 | 982 | if ssrCount > 0 then |
980 | 983 | role:checkTaskEnter("DrawSSR", {count = ssrCount}) |
981 | 984 | end | ... | ... |
src/actions/RoleAction.lua
... | ... | @@ -165,6 +165,7 @@ function _M.loginRpc( agent, data ) |
165 | 165 | role.activity:checkActivityStatus(now, false, false) |
166 | 166 | role:log("onLogin") |
167 | 167 | end |
168 | + role:checkTaskEnter("Login", {}) | |
168 | 169 | |
169 | 170 | redisproxy:zadd(FRIEND_RECOMMEND, now, roleId) |
170 | 171 | |
... | ... | @@ -850,6 +851,8 @@ function _M.taskRpc(agent, data) |
850 | 851 | -- 日常活动完成 |
851 | 852 | if taskType == 1 then |
852 | 853 | role:checkTaskEnter("DailyTask", {pre = (taskStatus["a"] or 0), cur = active}) |
854 | + else | |
855 | + role:checkTaskEnter("WeekTask", {pre = (taskStatus["a"] or 0), cur = active}) | |
853 | 856 | end |
854 | 857 | |
855 | 858 | role:changeUpdates({ | ... | ... |
src/models/Activity.lua
... | ... | @@ -38,7 +38,7 @@ Activity.ActivityType = { |
38 | 38 | NewSign = 36, -- 活动签到,单独的签到界面 |
39 | 39 | HeroBackFree = 37, -- 无损耗归还 |
40 | 40 | |
41 | - CalendaTaskTmp = 38, -- 新春任务活动 | |
41 | + BattleCommandTask = 38, -- 战令任务活动 | |
42 | 42 | } |
43 | 43 | |
44 | 44 | local function checkActivityType(activityType) |
... | ... | @@ -471,7 +471,7 @@ activityFunc[Activity.ActivityType.PayBack] = { |
471 | 471 | -- 英雄帖 |
472 | 472 | activityFunc[Activity.ActivityType.CalendaTask] = { |
473 | 473 | ["init"] = function(self, actType, isCrossDay, notify) |
474 | - local calTask = self.owner:getProperty("CalTask") | |
474 | + local calTask = self.owner:getProperty("calTask") | |
475 | 475 | calTask = {} |
476 | 476 | local role = self.owner |
477 | 477 | local buildL = role.dinerData:getProperty("buildL") |
... | ... | @@ -497,32 +497,49 @@ activityFunc[Activity.ActivityType.CalendaTask] = { |
497 | 497 | |
498 | 498 | end, |
499 | 499 | ["crossDay"] = function(self, actType, notify, actId) |
500 | - local actData = self.owner:getProperty("CalTask") or {} | |
500 | + local actData = self.owner:getProperty("calTask") or {} | |
501 | 501 | local record = actData["r"] or {} |
502 | 502 | local actCfg = csvdb["activity_taskCsv"][actId] |
503 | 503 | if not actCfg then return end |
504 | 504 | local change = false |
505 | 505 | for taskId, cfg in pairs(actCfg) do |
506 | - if cfg["resetType"] == 1 then -- 每日充值 | |
506 | + if cfg["resetType"] == 1 then -- 每日重置 | |
507 | 507 | record[taskId] = nil |
508 | 508 | actData[taskId] = nil |
509 | 509 | change = true |
510 | 510 | end |
511 | 511 | end |
512 | 512 | if change then |
513 | - self.owner:updateProperty({field="CalTask", value=actData}) | |
513 | + self.owner:updateProperty({field="calTask", value=actData}) | |
514 | + end | |
515 | + end, | |
516 | + ["crossWeek"] = function(self, actType, notify, actId) | |
517 | + local actData = self.owner:getProperty("calTask") or {} | |
518 | + local record = actData["r"] or {} | |
519 | + local actCfg = csvdb["activity_taskCsv"][actId] | |
520 | + if not actCfg then return end | |
521 | + local change = false | |
522 | + for taskId, cfg in pairs(actCfg) do | |
523 | + if cfg["resetType"] == 2 then -- 每周重置 | |
524 | + record[taskId] = nil | |
525 | + actData[taskId] = nil | |
526 | + change = true | |
527 | + end | |
528 | + end | |
529 | + if change then | |
530 | + self.owner:updateProperty({field="calTask", value=actData}) | |
514 | 531 | end |
515 | 532 | end, |
516 | 533 | ["close"] = function(self, actType, notify) |
517 | - self.owner:updateProperty({field="CalTask", value={}}) | |
534 | + self.owner:updateProperty({field="calTask", value={}}) | |
518 | 535 | end, |
519 | 536 | } |
520 | 537 | |
521 | 538 | -- 活动任务 仅供春节活动使用 防冲突 |
522 | -activityFunc[Activity.ActivityType.CalendaTaskTmp] = { | |
539 | +activityFunc[Activity.ActivityType.BattleCommandTask] = { | |
523 | 540 | ["init"] = function(self, actType, isCrossDay, notify) |
524 | - local calTask = self.owner:getProperty("CalTask1") | |
525 | - calTask = {} | |
541 | + local bcTask = self.owner:getProperty("bcTask") | |
542 | + bcTask = {} | |
526 | 543 | local role = self.owner |
527 | 544 | local buildL = role.dinerData:getProperty("buildL") |
528 | 545 | local curLevel = buildL:getv(1, 1) |
... | ... | @@ -547,7 +564,7 @@ activityFunc[Activity.ActivityType.CalendaTaskTmp] = { |
547 | 564 | |
548 | 565 | end, |
549 | 566 | ["crossDay"] = function(self, actType, notify, actId) |
550 | - local actData = self.owner:getProperty("CalTask1") or {} | |
567 | + local actData = self.owner:getProperty("bcTask") or {} | |
551 | 568 | local record = actData["r"] or {} |
552 | 569 | local actCfg = csvdb["activity_taskCsv"][actId] |
553 | 570 | if not actCfg then return end |
... | ... | @@ -560,11 +577,28 @@ activityFunc[Activity.ActivityType.CalendaTaskTmp] = { |
560 | 577 | end |
561 | 578 | end |
562 | 579 | if change then |
563 | - self.owner:updateProperty({field="CalTask1", value=actData}) | |
580 | + self.owner:updateProperty({field="bcTask", value=actData}) | |
581 | + end | |
582 | + end, | |
583 | + ["crossWeek"] = function(self, actType, notify, actId) | |
584 | + local actData = self.owner:getProperty("bcTask") or {} | |
585 | + local record = actData["r"] or {} | |
586 | + local actCfg = csvdb["activity_taskCsv"][actId] | |
587 | + if not actCfg then return end | |
588 | + local change = false | |
589 | + for taskId, cfg in pairs(actCfg) do | |
590 | + if cfg["resetType"] == 2 then -- 每周重置 | |
591 | + record[taskId] = nil | |
592 | + actData[taskId] = nil | |
593 | + change = true | |
594 | + end | |
595 | + end | |
596 | + if change then | |
597 | + self.owner:updateProperty({field="bcTask", value=actData}) | |
564 | 598 | end |
565 | 599 | end, |
566 | 600 | ["close"] = function(self, actType, notify) |
567 | - self.owner:updateProperty({field="CalTask1", value={}}) | |
601 | + self.owner:updateProperty({field="bcTask", value={}}) | |
568 | 602 | end, |
569 | 603 | } |
570 | 604 | |
... | ... | @@ -696,6 +730,18 @@ function Activity:refreshDailyData(notify) |
696 | 730 | end |
697 | 731 | end |
698 | 732 | |
733 | +function Activity:refreshWeekData(notify) | |
734 | + for actId, status in pairs(self._isOpen) do | |
735 | + local actData = csvdb["activity_ctrlCsv"][actId] | |
736 | + if status and actData then | |
737 | + local actType = actData.showType | |
738 | + if activityFunc[actType] and activityFunc[actType]['crossWeek'] then | |
739 | + activityFunc[actType]["crossWeek"](self, actType, notify, actId) | |
740 | + end | |
741 | + end | |
742 | + end | |
743 | +end | |
744 | + | |
699 | 745 | function Activity:checkActivity(notNotify, activityType, ...) |
700 | 746 | if not activityType then return end |
701 | 747 | if not self:isOpen(activityType) then return end |
... | ... | @@ -963,7 +1009,7 @@ activityFunc[Activity.ActivityType.CommonSignIn] = { |
963 | 1009 | local actData = self:getActData(actType) or {} |
964 | 1010 | local actCfg = csvdb["activity_ctrlCsv"][actId] |
965 | 1011 | if not actCfg then return end |
966 | - local conArr = actCfg.condition2:toArray("true", "=") | |
1012 | + local conArr = actCfg.condition2:toArray(true, "=") | |
967 | 1013 | -- 0 登录即可, 1 达到指定活跃度 |
968 | 1014 | if conArr[1] ~= 1 then |
969 | 1015 | return |
... | ... | @@ -978,7 +1024,7 @@ activityFunc[Activity.ActivityType.CommonSignIn] = { |
978 | 1024 | |
979 | 1025 | activityFunc[Activity.ActivityType.BattleCommand] = { |
980 | 1026 | ["init"] = function (self, actType, isCrossDay, notify, actId) |
981 | - local data = {unlock = 0, freeR = "", payR = "", lvl = 0, sum = 0} | |
1027 | + local data = {unlock = 0, freeR = "", payR = "", lvl = 0, sum = 0, week = 0} | |
982 | 1028 | self:updateActData(actType, data, not notify) |
983 | 1029 | end, |
984 | 1030 | ["check"] = function(self, actType, notify, id, count) -- 检查 itemid, count |
... | ... | @@ -987,8 +1033,13 @@ activityFunc[Activity.ActivityType.BattleCommand] = { |
987 | 1033 | local actCfg = csvdb["activity_ctrlCsv"][actId] |
988 | 1034 | if not actCfg then return end |
989 | 1035 | if actCfg.condition1 == "" then return end |
990 | - local itemId = tonumber(actCfg.condition2) | |
1036 | + local arr = actCfg.condition2:toArray(true, "=") | |
1037 | + local itemId, limit = arr[1], arr[2] | |
991 | 1038 | if itemId == id and count > 0 then |
1039 | + if actData["week"] >= limit then | |
1040 | + return | |
1041 | + end | |
1042 | + actData["week"] = actData["week"] + count | |
992 | 1043 | local total = actData["sum"] + count |
993 | 1044 | local curLvl = actData["lvl"] or 0 |
994 | 1045 | if actCfg.condition == 1 then -- 代表sum需要转换为等级 |
... | ... | @@ -1009,6 +1060,11 @@ activityFunc[Activity.ActivityType.BattleCommand] = { |
1009 | 1060 | self:updateActData(actType, actData) |
1010 | 1061 | end |
1011 | 1062 | end, |
1063 | + ["crossWeek"] = function(self, actType, notify, actId) | |
1064 | + local actData = self:getActData(actType) or {} | |
1065 | + actData["week"] = 0 | |
1066 | + self:updateActData(actType, actData, true) | |
1067 | + end, | |
1012 | 1068 | } |
1013 | 1069 | |
1014 | 1070 | ... | ... |
src/models/Role.lua
... | ... | @@ -184,7 +184,7 @@ Role.schema = { |
184 | 184 | feedback = {"table", {}}, -- 反馈相关信息 {flag = false, count = 0} flag是否评论过,count 提示次数 |
185 | 185 | |
186 | 186 | calTask = {"table", {}}, -- 英雄令活动 日历任务活动 |
187 | - calTask1 = {"table", {}}, -- 英雄令活动 日历任务活动 临时使用 | |
187 | + bcTask = {"table", {}}, -- 英雄令活动 日历任务活动 临时使用 | |
188 | 188 | radioTask = {"table", {}}, -- 电台任务 {id = {time=end_ts,heros=heros}} 表crusadeCsv |
189 | 189 | } |
190 | 190 | |
... | ... | @@ -412,7 +412,7 @@ function Role:data() |
412 | 412 | feedback = self:getProperty("feedback"), |
413 | 413 | ctime = self:getProperty("ctime"), |
414 | 414 | calTask = self:getProperty("calTask"), |
415 | - calTask1 = self:getProperty("calTask1"), | |
415 | + bcTask = self:getProperty("bcTask"), | |
416 | 416 | radioTask = self:getProperty("radioTask"), |
417 | 417 | } |
418 | 418 | end | ... | ... |
src/models/RoleLog.lua
src/models/RolePlugin.lua
... | ... | @@ -135,6 +135,15 @@ function RolePlugin.bind(Role) |
135 | 135 | self:addPotion({id = itemId, count = count, notNotify = pms.notNotify, log = pms.log}) |
136 | 136 | end, |
137 | 137 | } |
138 | + | |
139 | + if count > 0 then | |
140 | + local itemCfg = csvdb["itemCsv"][itemId] | |
141 | + local itemType = 0 | |
142 | + if itemCfg then | |
143 | + itemType = itemCfg.type | |
144 | + end | |
145 | + self:checkTaskEnter("AddItem", {id = itemId, count = count, type = itemType}) | |
146 | + end | |
138 | 147 | -- 对数量筛查 |
139 | 148 | count = checkItemCount(self, itemId, count) |
140 | 149 | if count ~= 0 then |
... | ... | @@ -362,9 +371,6 @@ function RolePlugin.bind(Role) |
362 | 371 | if not params.notNotify then |
363 | 372 | SendPacket(actionCodes.Role_updateItems, MsgPack.pack({[params.itemId] = nums})) |
364 | 373 | end |
365 | - if params.count > 0 then | |
366 | - self:checkTaskEnter("AddItem", {id = params.itemId, count = params.count}) | |
367 | - end | |
368 | 374 | end |
369 | 375 | |
370 | 376 | function Role:checkItemEnough(itemCountT) |
... | ... | @@ -518,6 +524,8 @@ function RolePlugin.bind(Role) |
518 | 524 | end |
519 | 525 | |
520 | 526 | self:notifyUpdateProperty("diamond", self:getAllDiamond()) |
527 | + | |
528 | + self:checkTaskEnter("CostDiamond", {count = count}) | |
521 | 529 | return true |
522 | 530 | end |
523 | 531 | ... | ... |
src/models/RoleTask.lua
... | ... | @@ -15,6 +15,7 @@ local TaskType = { |
15 | 15 | HeroLvlCollect = 10, -- 英雄等级收集进度 |
16 | 16 | HeroQualityCollect = 11, -- 英雄品质收集进度 |
17 | 17 | HeroStarCollect = 12, -- 英雄星级收集进度 |
18 | + DrawHeroNotFriend = 13, -- 非友情招募 -- count | |
18 | 19 | |
19 | 20 | --装备相关 |
20 | 21 | AddEquip = 101, -- 获得装备 - equipId rarity |
... | ... | @@ -53,6 +54,7 @@ local TaskType = { |
53 | 54 | AdvMineLayer = 414, -- 宝藏洞激活 |
54 | 55 | AdvKillBoss = 415, -- 拾荒击杀boss |
55 | 56 | AdvHangHeroCnt = 416, -- 拾荒人数 |
57 | + AdvCostPower = 417, -- 消耗体力 | |
56 | 58 | |
57 | 59 | --爬塔相关 |
58 | 60 | TowerPass = 501, -- 爬塔通关 - level |
... | ... | @@ -98,6 +100,9 @@ local TaskType = { |
98 | 100 | RadioTaskStart = 905, -- 电台任务开始 |
99 | 101 | FinishSpeTask = 906, -- 指定任务完成 |
100 | 102 | AddItem = 907, -- 获得道具 |
103 | + Login = 908, -- 登入 | |
104 | + CostDiamond = 909, -- 消耗钻石 | |
105 | + WeekTask = 910, -- 完成每周活跃任务 | |
101 | 106 | |
102 | 107 | --功能未实现 todo |
103 | 108 | AdvShop = 1002, -- 冒险商城 |
... | ... | @@ -284,42 +289,20 @@ local CalendaTaskListener = { |
284 | 289 | [TaskType.AdvMineKill] = {{26, 1}}, |
285 | 290 | [TaskType.PvpBattle] = {{27, 1}}, |
286 | 291 | [TaskType.FinishSpeTask] = {{28, 3, f("taskId"), f("actId")}}, |
287 | - | |
292 | + [TaskType.Login] = {{29, 1}}, | |
293 | + [TaskType.DailyTask] = {{30, 2, f("cur")}}, | |
294 | + [TaskType.WeekTask] = {{31, 2, f("cur")}}, | |
295 | + [TaskType.MakeFood] = {{32, 1, f("count")}}, | |
296 | + [TaskType.AddItem] = {{33, 3, f("type"), f("count")}}, | |
297 | + [TaskType.CostDiamond] = {{34, 1, f("count")}}, | |
298 | + [TaskType.DrawHeroNotFriend] = {{35, 1, f("count")}}, | |
299 | + [TaskType.AdvCostPower] = {{36, 1, f("count")}}, | |
288 | 300 | } |
289 | 301 | } |
290 | 302 | |
291 | -local CalendaTaskTmpListener = { | |
292 | - func = "checkCalendaTaskTmp", | |
293 | - listen = { | |
294 | - [TaskType.DrawHero] = {{1, 1, f("count")}}, | |
295 | - [TaskType.BonusPass]= {{2, 1, f("count")}}, | |
296 | - [TaskType.AdvStart]= {{3, 1}}, | |
297 | - [TaskType.DinerLevelUp]= {{4, 2, f("level")}}, | |
298 | - [TaskType.HeroLvlCollect]= {{5, 3}}, -- x名y级英雄 | |
299 | - [TaskType.AdvHang]= {{6, 1}}, ---- | |
300 | - [TaskType.HeroQualityCollect]= {{7, 3}}, | |
301 | - [TaskType.OverOderTask]= {{8, 1}}, | |
302 | - [TaskType.VillageApply]= {{9, 1}}, | |
303 | - [TaskType.PvpWin]= {{10, 2, f("score")}}, | |
304 | - [TaskType.DinerPopular]= {{11, 2, f("count")}}, | |
305 | - [TaskType.RoleLevelUp]= {{12, 2, f("level")}}, | |
306 | - [TaskType.TowerPass]= {{13, 2, f("level")}}, | |
307 | - [TaskType.HeroTalent]= {{14, 1}}, | |
308 | - [TaskType.HangPass]= {{15, 3}}, | |
309 | - [TaskType.HeroStarCollect]= {{16, 3}}, | |
310 | - [TaskType.FoodSell]= {{17, 1, f("count")}}, | |
311 | - [TaskType.HangGet]= {{18, 3, f("reward")}}, | |
312 | - [TaskType.RuneQualityCollect]= {{19, 3}}, | |
313 | - [TaskType.OpenBox]= {{20, 3, f("count"), f("quality")}}, | |
314 | - [TaskType.RadioTaskStart] = {{21, 1}, {22, 3, f("heroCnt")}}, | |
315 | - [TaskType.BonusQuick] = {{23, 1, f("count")}}, | |
316 | - [TaskType.AdvHangHeroCnt] = {{24, 3, f("HeroCnt")}}, | |
317 | - [TaskType.AdvKillBoss] = {{25, 1}}, | |
318 | - [TaskType.AdvMineKill] = {{26, 1}}, | |
319 | - [TaskType.PvpBattle] = {{27, 1}}, | |
320 | - [TaskType.FinishSpeTask] = {{28, 3, f("taskId"), f("actId")}}, | |
321 | - | |
322 | - } | |
303 | +local BattleCommandTaskListener = { | |
304 | + func = "checkBattleCommandTask", | |
305 | + listen = CalendaTaskListener["listen"] | |
323 | 306 | } |
324 | 307 | |
325 | 308 | local TaskListeners = { |
... | ... | @@ -330,7 +313,7 @@ local TaskListeners = { |
330 | 313 | ActivityListener, |
331 | 314 | StoreListener, |
332 | 315 | CalendaTaskListener, |
333 | - CalendaTaskTmpListener, | |
316 | + BattleCommandTaskListener, | |
334 | 317 | } |
335 | 318 | |
336 | 319 | local RoleTask = {} |
... | ... | @@ -659,15 +642,17 @@ function RoleTask.bind(Role) |
659 | 642 | end |
660 | 643 | |
661 | 644 | function Role:checkCalendaTask(notNotify, mainType, subType, param1, param2) |
662 | - --print("check calenda taskl", mainType, subType, param1, param2) | |
645 | + --print("check calenda task", mainType, subType, param1, param2) | |
646 | + local actEnum = "CalendaTask" | |
647 | + local keyName = "calTask" | |
663 | 648 | if not self.activity then return end |
664 | - local open, actId = self.activity:isOpen("CalendaTask") | |
649 | + local open, actId = self.activity:isOpen(actEnum) | |
665 | 650 | local actData = csvdb["activity_ctrlCsv"][actId] |
666 | 651 | if not actData then return end |
667 | 652 | if not open then return end |
668 | 653 | |
669 | 654 | local change = false |
670 | - local calTask = self:getProperty("calTask") or {} | |
655 | + local calTask = self:getProperty(keyName) or {} | |
671 | 656 | param1 = param1 or 1 |
672 | 657 | |
673 | 658 | local cid = actData.condition |
... | ... | @@ -742,7 +727,7 @@ function RoleTask.bind(Role) |
742 | 727 | calTask[id] = count |
743 | 728 | elseif cfg.type == 20 then -- 开启x品质时钟箱子 |
744 | 729 | if cfg.condition2 <= (param2 or 0) then |
745 | - calTask[id] = (calTask[id] or 0) + param2 | |
730 | + calTask[id] = (calTask[id] or 0) + param1 | |
746 | 731 | end |
747 | 732 | elseif cfg.type == 15 then -- 通关关卡 |
748 | 733 | if (calTask[id] or 0) == 0 then |
... | ... | @@ -761,26 +746,32 @@ function RoleTask.bind(Role) |
761 | 746 | if actId == param2 and cfg.condition2 == param1 then |
762 | 747 | calTask[id] = (calTask[id] or 0) + 1 |
763 | 748 | end |
749 | + elseif cfg.type == 33 then -- 获得指定类型道具多少个 | |
750 | + if cfg.condition2 == param1 then | |
751 | + calTask[id] = (calTask[id] or 0) + (param2 or 0) | |
752 | + end | |
764 | 753 | end |
765 | 754 | end |
766 | 755 | end |
767 | 756 | end |
768 | 757 | end |
769 | 758 | end |
770 | - self:updateProperty({field = "calTask", value = calTask, notNotify = notNotify}) | |
759 | + self:updateProperty({field = keyName, value = calTask, notNotify = notNotify}) | |
771 | 760 | --dump(calTask) |
772 | 761 | end |
773 | 762 | |
774 | - function Role:checkCalendaTaskTmp(notNotify, mainType, subType, param1, param2) | |
775 | - --print("check calenda taskl", mainType, subType, param1, param2) | |
763 | + function Role:checkBattleCommandTask(notNotify, mainType, subType, param1, param2) | |
764 | + --print("check battle command task", mainType, subType, param1, param2) | |
765 | + local actEnum = "BattleCommandTask" | |
766 | + local keyName = "bcTask" | |
776 | 767 | if not self.activity then return end |
777 | - local open, actId = self.activity:isOpen("CalendaTaskTmp") | |
768 | + local open, actId = self.activity:isOpen(actEnum) | |
778 | 769 | local actData = csvdb["activity_ctrlCsv"][actId] |
779 | 770 | if not actData then return end |
780 | 771 | if not open then return end |
781 | 772 | |
782 | 773 | local change = false |
783 | - local calTask = self:getProperty("calTask1") or {} | |
774 | + local calTask = self:getProperty(keyName) or {} | |
784 | 775 | param1 = param1 or 1 |
785 | 776 | |
786 | 777 | local cid = actData.condition |
... | ... | @@ -855,7 +846,7 @@ function RoleTask.bind(Role) |
855 | 846 | calTask[id] = count |
856 | 847 | elseif cfg.type == 20 then -- 开启x品质时钟箱子 |
857 | 848 | if cfg.condition2 <= (param2 or 0) then |
858 | - calTask[id] = (calTask[id] or 0) + param2 | |
849 | + calTask[id] = (calTask[id] or 0) + param1 | |
859 | 850 | end |
860 | 851 | elseif cfg.type == 15 then -- 通关关卡 |
861 | 852 | if (calTask[id] or 0) == 0 then |
... | ... | @@ -874,13 +865,17 @@ function RoleTask.bind(Role) |
874 | 865 | if actId == param2 and cfg.condition2 == param1 then |
875 | 866 | calTask[id] = (calTask[id] or 0) + 1 |
876 | 867 | end |
868 | + elseif cfg.type == 33 then -- 获得指定类型道具多少个 | |
869 | + if cfg.condition2 == param1 then | |
870 | + calTask[id] = (calTask[id] or 0) + (param2 or 0) | |
871 | + end | |
877 | 872 | end |
878 | 873 | end |
879 | 874 | end |
880 | 875 | end |
881 | 876 | end |
882 | 877 | end |
883 | - self:updateProperty({field = "calTask1", value = calTask, notNotify = notNotify}) | |
878 | + self:updateProperty({field = keyName, value = calTask, notNotify = notNotify}) | |
884 | 879 | --dump(calTask) |
885 | 880 | end |
886 | 881 | ... | ... |
src/models/RoleTimeReset.lua