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