Commit f76d63e1368189161505410fcd9679124dc9b99b

Authored by liuzujun
1 parent fc6a75e0

联动任务活动

src/actions/ActivityAction.lua
@@ -259,7 +259,10 @@ function _M.actCalendaTaskRpc(agent, data) @@ -259,7 +259,10 @@ function _M.actCalendaTaskRpc(agent, data)
259 activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} 259 activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...}
260 }) 260 })
261 261
  262 + role:checkTaskEnter("FinishSpeTask", {taskId = taskId, actId = actId})
  263 +
262 SendPacket(actionCodes.Activity_actCalendaTaskRpc, MsgPack.pack(role:packReward(reward, change))) 264 SendPacket(actionCodes.Activity_actCalendaTaskRpc, MsgPack.pack(role:packReward(reward, change)))
  265 +
263 return true 266 return true
264 end 267 end
265 268
src/actions/AdvAction.lua
@@ -344,6 +344,7 @@ function _M.endHangRpc(agent, data) @@ -344,6 +344,7 @@ function _M.endHangRpc(agent, data)
344 adv_idle_time = adv_idle_time * 60 344 adv_idle_time = adv_idle_time * 60
345 345
346 local reward, isFull, change, heroFaithMap 346 local reward, isFull, change, heroFaithMap
  347 + local heroCnt = 0
347 if skynet.timex() >= info.time then 348 if skynet.timex() >= info.time then
348 -- 最新需求加成取消 349 -- 最新需求加成取消
349 --[[ 350 --[[
@@ -378,6 +379,7 @@ function _M.endHangRpc(agent, data) @@ -378,6 +379,7 @@ function _M.endHangRpc(agent, data)
378 for _, heroId in pairs(info.format.heros) do 379 for _, heroId in pairs(info.format.heros) do
379 local curFaith = addHeroFaith(role, heroId, exp) 380 local curFaith = addHeroFaith(role, heroId, exp)
380 heroFaithMap[heroId] = curFaith 381 heroFaithMap[heroId] = curFaith
  382 + heroCnt = heroCnt + 1
381 end 383 end
382 384
383 local totalReward = campSiteData.idleReward_1 .. " " .. campSiteData.idleReward_2 385 local totalReward = campSiteData.idleReward_1 .. " " .. campSiteData.idleReward_2
@@ -406,6 +408,7 @@ function _M.endHangRpc(agent, data) @@ -406,6 +408,7 @@ function _M.endHangRpc(agent, data)
406 role:mylog("adv_action", {desc = "endHang", int1 = chapterId, short1 = cancel and 1 or 0}) 408 role:mylog("adv_action", {desc = "endHang", int1 = chapterId, short1 = cancel and 1 or 0})
407 409
408 role:checkTaskEnter("AdvHang", {}) 410 role:checkTaskEnter("AdvHang", {})
  411 + role:checkTaskEnter("AdvHangHeroCnt", {count = heroCnt})
409 412
410 SendPacket(actionCodes.Adv_endHangRpc, MsgPack.pack({reward = reward, change = change, isFull = isFull, heroFaith = heroFaithMap})) 413 SendPacket(actionCodes.Adv_endHangRpc, MsgPack.pack({reward = reward, change = change, isFull = isFull, heroFaith = heroFaithMap}))
411 return true 414 return true
src/actions/GmAction.lua
@@ -546,11 +546,23 @@ end @@ -546,11 +546,23 @@ end
546 546
547 function _M.test(role, pms) 547 function _M.test(role, pms)
548 local id = tonum(pms.pm1, 0) 548 local id = tonum(pms.pm1, 0)
  549 + local actid = nil
  550 + if id > 100 then
  551 + actid = tonum(pms.pm2, 0)
  552 + end
549 --local hero = require ("actions.HeroAction") 553 --local hero = require ("actions.HeroAction")
550 --hero.unlockPoolRpc({role = role}, MsgPack.pack({type = id})) 554 --hero.unlockPoolRpc({role = role}, MsgPack.pack({type = id}))
551 555
552 --role:sendMail(13, nil, "1=2", {111}) 556 --role:sendMail(13, nil, "1=2", {111})
553 - dump(redisproxy:zrevrange("rank:tower", 0 , 10, "WITHSCORES")) 557 + local file = io.open("draw_hero_"..id..".csv", "a")
  558 + for i=1, 10000 do
  559 + local heroIds = _M.drawHero(role, id, actid)
  560 + for k, v in ipairs(heroIds) do
  561 + print((i - 1)* 10 + k, v)
  562 + file:write(v.."\n")
  563 + end
  564 + end
  565 + io.close(file)
554 return "成功" 566 return "成功"
555 end 567 end
556 568
@@ -575,5 +587,259 @@ function _M.cz(role, pms) @@ -575,5 +587,259 @@ function _M.cz(role, pms)
575 return "指令成功" 587 return "指令成功"
576 end 588 end
577 589
  590 +function _M.drawHero(role, t, act)
  591 + local btype = t -- 1 2 3 4 5 卡池类型 4新手卡池 5心愿卡池
  592 + local subType = 1-- 定向卡池需要传 子类型
  593 + local drawType = 2 -- 1 单抽 2 十连
  594 + if btype ~= 1 then
  595 + subType = 1
  596 + end
  597 +
  598 + local actid = act
  599 + -- 另开活动卡池
  600 + if actid then
  601 + --if not role.activity:isOpenById(actid, "ActHeroPool") then return end
  602 + local cfg = csvdb["activity_ctrlCsv"][actid]
  603 + if not cfg then return end
  604 +
  605 + btype = cfg.condition
  606 + end
  607 +
  608 + local buildTypeData = csvdb["build_typeCsv"][btype]
  609 + if not buildTypeData then return 2 end
  610 +
  611 + local drawCount = {1, 10} -- 抽取次数
  612 + if not drawCount[drawType] then return 3 end
  613 +
  614 + local draw_floor_back_counts = globalCsv.draw_floor_back_counts[btype]
  615 + local floorHeroCount = role:getProperty("floorHero")[btype] or 0
  616 +
  617 + -- 抽取的池子
  618 + local poolMap = buildTypeData["pool"]:toNumMap()
  619 + local poolId = poolMap[subType]
  620 + if not poolId then return 5 end
  621 +
  622 + --TODO 活动覆盖
  623 + local actPoolId = role.activity:getActivityPool(btype, subType)
  624 + if actPoolId ~= 0 then
  625 + poolId = actPoolId
  626 + end
  627 +
  628 + local unitPool = csvdb["build_unitCsv"][poolId]
  629 + if not unitPool then return 7 end
  630 +
  631 + -- 开始抽
  632 + local resultPool = {}
  633 + local function fillDrawPool(isFloorBack)
  634 + local condition = {"rare"}
  635 + local values = {}
  636 +
  637 +
  638 + for idx, field in ipairs(condition) do
  639 + if not values[idx] then
  640 + local lpool = {}
  641 + local curIdx = 1
  642 + while unitPool[field .. "_" .. curIdx] do
  643 + lpool[curIdx] = {unitPool[field .. "_" .. curIdx]}
  644 + curIdx = curIdx + 1
  645 + end
  646 +
  647 + if next(lpool) then
  648 + values[idx] = math.randWeight(lpool, 1)
  649 + end
  650 + end
  651 + end
  652 +
  653 + local weight = 0
  654 + local up_pool = nil
  655 + local rand_v = math.randomInt(1, 100)
  656 + if values[1] == HeroQuality.SR then
  657 + weight = unitPool["up_sr_weight"]
  658 + up_pool = unitPool["up_sr_id"]
  659 + elseif values[1] == HeroQuality.SSR then
  660 + weight = unitPool["up_ssr_weight"]
  661 + up_pool = unitPool["up_ssr_id"]
  662 + end
  663 + --print(poolId, rand_v, weight, up_pool, values[1])
  664 + if rand_v < weight and up_pool then
  665 + up_pool = up_pool:toArray(true, "=")
  666 + if btype == 5 then -- 爱心卡池,使用玩家设置的备选池子
  667 + up_pool = role:getProperty("wishPool")
  668 + up_pool[1] = 606
  669 + up_pool[2] = 607
  670 + up_pool[3] = 608
  671 + end
  672 + for k, v in ipairs(up_pool) do
  673 + resultPool[v] = {1}
  674 + end
  675 + else
  676 + for itemId, oneData in pairs(isFloorBack and csvdb["build_floorCsv"] or csvdb["build_poolCsv"]) do
  677 + local pool_str = "pool_" .. poolId
  678 + if oneData[pool_str] and oneData[pool_str] ~= "" then
  679 + local itemData = csvdb["itemCsv"][itemId]
  680 + while itemData do
  681 + if itemData.type ~= ItemType.Hero then break end
  682 + local heroData = csvdb["unitCsv"][itemData.id - ItemStartId.Hero]
  683 + if not heroData then break end
  684 + local ok = true
  685 + -- 保底是全随机,不用比较类型
  686 + if not isFloorBack then
  687 + for idx, field in ipairs(condition) do
  688 + if heroData[field] ~= values[idx] then ok = false break end
  689 + end
  690 + end
  691 + if not ok then break end
  692 + if oneData[pool_str] > 0 then
  693 + resultPool[itemId] = {oneData[pool_str]} -- itemId, count, 概率
  694 + end
  695 + break
  696 + end
  697 + end
  698 + end
  699 + end
  700 + end
  701 +
  702 + local guideHero = nil
  703 + if role:getProperty("newerGuide") == "8=1" then
  704 + guideHero = globalCsv.newdraw_hero_item_id or 503
  705 + end
  706 +
  707 + local ssrCount = 0
  708 + local reward = {}
  709 + local logReward = {}
  710 + local result = {}
  711 + for i = 1, drawCount[drawType] do
  712 + floorHeroCount = floorHeroCount + 1
  713 + local isFloorBack = draw_floor_back_counts and floorHeroCount >= draw_floor_back_counts
  714 + resultPool = {}
  715 + fillDrawPool(isFloorBack)
  716 + if not next(resultPool) then
  717 + skynet.error("random pool error, poolId:" .. poolId, isFloorBack)
  718 + return 8
  719 + end
  720 +
  721 + local itemId = math.randWeight(resultPool, 1)
  722 + if guideHero then
  723 + itemId = guideHero
  724 + end
  725 +
  726 + local itemData = csvdb["itemCsv"][itemId]
  727 + if itemData.quality == HeroQuality.SSR then
  728 + ssrCount = ssrCount + 1
  729 + if not guideHero then
  730 + -- 广播获得ssr英雄
  731 + local ntf = {heroId = itemData.id - ItemStartId.Hero, nick = role:getProperty("name")}
  732 + --mcast_util.pub_world(actionCodes.Role_broadGetSSR, MsgPack.pack(ntf))
  733 + end
  734 + end
  735 +
  736 + if btype == 4 and role:getProperty("newerDraw") == 0 then -- 新手卡池
  737 + if itemData.quality == HeroQuality.SSR then
  738 + floorHeroCount = 0
  739 + end
  740 + else
  741 + if itemData.quality >= HeroQuality.SR then
  742 + floorHeroCount = 0
  743 + end
  744 + end
  745 +
  746 + if role:isHaveHero(itemData.id - ItemStartId.Hero) then
  747 + local fragId = itemData.id - ItemStartId.Hero
  748 + local heroData = csvdb["unitCsv"][fragId]
  749 + local count = globalCsv.draw_unit_tofragment[heroData.rare]
  750 + role:award({[fragId] = count}, {log = {desc = "drawHero", int1 = btype, int2 = poolId}})
  751 + logReward[fragId] = (logReward[fragId] or 0) + count
  752 + table.insert(reward, {id = fragId, count = count, from = itemId, fcount = 1})
  753 + else
  754 + role:award({[itemId] = 1}, {log = {desc = "drawHero", int1 = btype, int2 = poolId}})
  755 + logReward[itemId] = (logReward[itemId] or 0) + 1
  756 + table.insert(reward, {id = itemId, count = 1})
  757 + end
  758 + end
  759 +
  760 + if draw_floor_back_counts then
  761 + local floorHero = role:getProperty("floorHero")
  762 + floorHero[btype] = floorHeroCount
  763 + role:setProperty("floorHero", floorHero)
  764 + end
  765 +
  766 + if btype == 4 then
  767 + local newCount = role:getProperty("newerDraw")
  768 + role:updateProperty({field="newerDraw", value = newCount + drawCount[drawType]})
  769 + end
  770 +
  771 + --SendPacket(actionCodes.Hero_drawHeroRpc, MsgPack.pack({reward = reward})) -- 这个 reward 是数组
  772 + for k, v in pairs(reward) do
  773 + local hero = v
  774 + if hero["from"] then
  775 + result[#result+1] = hero["from"]
  776 + else
  777 + result[#result+1] = hero["id"]
  778 + end
  779 + end
  780 +
  781 + local feedbackId = buildTypeData["can_feedback"] or 0
  782 + if feedbackId ~= 0 then
  783 + -- 达到一定次数,给响应奖励
  784 + local oldVal = role:getProperty("repayHero") or 0
  785 + if actid then
  786 + local actData = role.activity:getActData("ActHeroPool")
  787 + oldVal = actData[btype] or 0
  788 + end
  789 + local newVal = oldVal + drawCount[drawType]
  790 + local drawCardReward, val = role:getDrawCardExtraReward(feedbackId, oldVal, newVal)
  791 + -- 空字符穿代表直接给英雄 走以前repayHeroRpc
  792 + if drawCardReward == "" then
  793 + local repayHeroMaxCount = role:getProperty("repayMaxC") or 0
  794 + repayHeroMaxCount = repayHeroMaxCount + 1
  795 +
  796 + role:updateProperty({field = "repayMaxC", value = repayHeroMaxCount})
  797 + local even = repayHeroMaxCount % 2
  798 + local id = 0
  799 + if even == 1 then
  800 + id = math.randWeight(csvdb["build_giftCsv"], "pool_"..feedbackId)
  801 + else
  802 + local giftHeroSet = {}
  803 + for gid, cfg in pairs(csvdb["build_giftCsv"]) do
  804 + if cfg["pool_"..feedbackId] ~= 0 and not role:isHaveHero(gid - ItemStartId.Hero) then
  805 + giftHeroSet[gid] = {1}
  806 + end
  807 + end
  808 + if next(giftHeroSet) then
  809 + id = math.randWeight(giftHeroSet, 1)
  810 + end
  811 + end
  812 + if id == 0 then
  813 + id = math.randWeight(csvdb["build_giftCsv"], "pool_"..feedbackId)
  814 + end
  815 +
  816 + local r,change = {}
  817 + local itemData = csvdb["itemCsv"][id]
  818 + --if itemData.type == ItemType.Hero and role:isHaveHero(itemData.id - ItemStartId.Hero) then
  819 + -- local fragId = itemData.id - ItemStartId.Hero
  820 + -- local heroData = csvdb["unitCsv"][fragId]
  821 + -- local count = globalCsv.draw_unit_tofragment[heroData.rare]
  822 + -- r, change = role:award({[fragId] = count}, {log = {desc = "drawHeroExtraReward"}})
  823 + -- --r = {id = fragId, count = count, from = id, fcount = 1}
  824 + --else
  825 + r, change = role:award({[id] = 1}, {log = {desc = "drawHeroExtraReward"}})
  826 + --end
  827 + SendPacket(actionCodes.Hero_drawHeroExtraRewardNtf, MsgPack.pack(role:packReward(r, change)))
  828 + elseif drawCardReward and drawCardReward ~= "" then
  829 + local r,change = {}
  830 + r, change = role:award(drawCardReward, {log = {desc = "drawHeroExtraReward", int1 = oldVal, int2 = newVal}})
  831 + SendPacket(actionCodes.Hero_drawHeroExtraRewardNtf, MsgPack.pack(role:packReward(r, change)))
  832 + end
  833 + if not actid then
  834 + role:updateProperty({field = "repayHero", value = val})
  835 + else
  836 + local actData = role.activity:getActData("ActHeroPool")
  837 + actData[btype] = val
  838 + role.activity:updateActData("ActHeroPool", actData)
  839 + end
  840 + end
  841 + return result
  842 +end
  843 +
578 844
579 return _M 845 return _M
580 \ No newline at end of file 846 \ No newline at end of file
src/actions/HangAction.lua
@@ -581,6 +581,8 @@ function _M.startBonusBattleRpc(agent, data) @@ -581,6 +581,8 @@ function _M.startBonusBattleRpc(agent, data)
581 581
582 local reward, change = bonusWinReward(role, bonusData, 3, count) 582 local reward, change = bonusWinReward(role, bonusData, 3, count)
583 SendPacket(actionCodes.Hang_startBonusBattleRpc, MsgPack.pack({reward = reward, change = change})) 583 SendPacket(actionCodes.Hang_startBonusBattleRpc, MsgPack.pack({reward = reward, change = change}))
  584 +
  585 + role:checkTaskEnter("BonusQuick", {count = count})
584 else 586 else
585 local bTeam = role:getTeamFormatByType(TeamSystemType.BonusBattle) 587 local bTeam = role:getTeamFormatByType(TeamSystemType.BonusBattle)
586 if not next(bTeam) then return 5 end 588 if not next(bTeam) then return 5 end
src/actions/RadioAction.lua
@@ -101,7 +101,7 @@ function _M.startQuestRpc(agent, data) @@ -101,7 +101,7 @@ function _M.startQuestRpc(agent, data)
101 radioTask[id] = taskData 101 radioTask[id] = taskData
102 role:updateProperty({field="radioTask", value=radioTask, notNotify=true}) 102 role:updateProperty({field="radioTask", value=radioTask, notNotify=true})
103 103
104 - SendPacket(actionCodes.Radio_startQuestRpc, MsgPack.pack({id=id, task=taskData})) 104 + SendPacket(actionCodes.Radio_startQuestRpc, MsgPack.pack({id=id, task=taskData}))
105 return true 105 return true
106 end 106 end
107 107
@@ -160,6 +160,7 @@ function _M.finishQuestRpc(agent, data) @@ -160,6 +160,7 @@ function _M.finishQuestRpc(agent, data)
160 msg["heroFaith"] = heroFaithMap 160 msg["heroFaith"] = heroFaithMap
161 SendPacket(actionCodes.Radio_finishQuestRpc, MsgPack.pack(msg)) 161 SendPacket(actionCodes.Radio_finishQuestRpc, MsgPack.pack(msg))
162 162
  163 + role:checkTaskEnter("RadioTaskStart", {heroCnt = #task.heros})
163 164
164 local herolist = {} 165 local herolist = {}
165 for _, heroId in ipairs(task.heros) do 166 for _, heroId in ipairs(task.heros) do
@@ -2187,6 +2187,7 @@ function Adv:enemyDead(enemy, escape) @@ -2187,6 +2187,7 @@ function Adv:enemyDead(enemy, escape)
2187 self:checkAchievement(Adv.AchievType.KillBossNoBuff, 1) 2187 self:checkAchievement(Adv.AchievType.KillBossNoBuff, 1)
2188 self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1) 2188 self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1)
2189 self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1) 2189 self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1)
  2190 + self.owner:checkTaskEnter("AdvKillBoss")
2190 elseif monsterData.type == 3 then 2191 elseif monsterData.type == 3 then
2191 self:checkTask(Adv.TaskType.KillElite, 1, enemyId) 2192 self:checkTask(Adv.TaskType.KillElite, 1, enemyId)
2192 end 2193 end
1 -Subproject commit fcf0c6c46ae54862a6b68b77f87ce0cf8a729da5 1 +Subproject commit 48214b3ec01446368f92b6eb3123fe39c862c0fa
src/models/Activity.lua
@@ -457,8 +457,9 @@ activityFunc[Activity.ActivityType.CalendaTask] = { @@ -457,8 +457,9 @@ activityFunc[Activity.ActivityType.CalendaTask] = {
457 role:checkTaskEnter("RuneQualityCollect", {}) 457 role:checkTaskEnter("RuneQualityCollect", {})
458 458
459 end, 459 end,
460 - -- ["close"] = function(self, actType, notify)  
461 - -- end, 460 + ["close"] = function(self, actType, notify)
  461 + self.owner:updateProperty({field="CalTask", value={}})
  462 + end,
462 } 463 }
463 464
464 -- 兑换 465 -- 兑换
src/models/RoleTask.lua
@@ -34,6 +34,7 @@ local TaskType = { @@ -34,6 +34,7 @@ local TaskType = {
34 HangBattle = 304, -- 挂机战斗 - id 34 HangBattle = 304, -- 挂机战斗 - id
35 HangGetGold = 305, -- 挂机获得齿轮 - count 35 HangGetGold = 305, -- 挂机获得齿轮 - count
36 BonusPass = 306, -- 奖励副本通关 - id count 36 BonusPass = 306, -- 奖励副本通关 - id count
  37 + BonusQuick = 307, -- 奖励关卡扫荡 -- id count
37 38
38 -- 冒险相关 39 -- 冒险相关
39 AdvPass = 401, -- 冒险通过关 - id level score 40 AdvPass = 401, -- 冒险通过关 - id level score
@@ -50,6 +51,8 @@ local TaskType = { @@ -50,6 +51,8 @@ local TaskType = {
50 AdvHang = 412, -- 代理拾荒次数 51 AdvHang = 412, -- 代理拾荒次数
51 AdvMineKill = 413, -- 宝藏怪击杀 52 AdvMineKill = 413, -- 宝藏怪击杀
52 AdvMineLayer = 414, -- 宝藏洞激活 53 AdvMineLayer = 414, -- 宝藏洞激活
  54 + AdvKillBoss = 415, -- 拾荒击杀boss
  55 + AdvHangHeroCnt = 416, -- 拾荒人数
53 56
54 --爬塔相关 57 --爬塔相关
55 TowerPass = 501, -- 爬塔通关 - level 58 TowerPass = 501, -- 爬塔通关 - level
@@ -92,6 +95,8 @@ local TaskType = { @@ -92,6 +95,8 @@ local TaskType = {
92 Pay = 902, -- 充值 95 Pay = 902, -- 充值
93 ShopAll = 903, -- 在任意商店购买 96 ShopAll = 903, -- 在任意商店购买
94 DailyTask = 904, -- 完成每日活跃任务 97 DailyTask = 904, -- 完成每日活跃任务
  98 + RadioTaskStart = 905, -- 电台任务开始
  99 + FinishSpeTask = 906, -- 指定任务完成
95 100
96 --功能未实现 todo 101 --功能未实现 todo
97 AdvShop = 1002, -- 冒险商城 102 AdvShop = 1002, -- 冒险商城
@@ -270,6 +275,14 @@ local CalendaTaskListener = { @@ -270,6 +275,14 @@ local CalendaTaskListener = {
270 [TaskType.HangGet]= {{18, 3, f("reward")}}, 275 [TaskType.HangGet]= {{18, 3, f("reward")}},
271 [TaskType.RuneQualityCollect]= {{19, 3}}, 276 [TaskType.RuneQualityCollect]= {{19, 3}},
272 [TaskType.OpenBox]= {{20, 3, f("count"), f("quality")}}, 277 [TaskType.OpenBox]= {{20, 3, f("count"), f("quality")}},
  278 + [TaskType.RadioTaskStart] = {{21, 1}, {22, 3, f("heroCnt")}},
  279 + [TaskType.BonusQuick] = {{23, 1, f("count")}},
  280 + [TaskType.AdvHangHeroCnt] = {{24, 3, f("HeroCnt")}},
  281 + [TaskType.AdvKillBoss] = {{25, 1}},
  282 + [TaskType.AdvMineKill] = {{26, 1}},
  283 + [TaskType.PvpBattle] = {{27, 1}},
  284 + [TaskType.FinishSpeTask] = {{28, 3, f("taskId"), f("actId")}},
  285 +
273 } 286 }
274 } 287 }
275 288
@@ -702,6 +715,15 @@ function RoleTask.bind(Role) @@ -702,6 +715,15 @@ function RoleTask.bind(Role)
702 calTask[id] = 1 715 calTask[id] = 1
703 end 716 end
704 end 717 end
  718 + elseif cfg.type == 22 then -- 电台任务出勤人数
  719 + calTask[id] = (calTask[id] or 0) + (param1 or 0)
  720 + elseif cfg.type == 24 then -- 代理拾荒出勤人数
  721 + calTask[id] = (calTask[id] or 0) + (param1 or 0)
  722 + elseif cfg.type == 28 then -- 完成指定任务
  723 + print(actId,param2, cfg.condition2, param1)
  724 + if actId == param2 and cfg.condition2 == param1 then
  725 + calTask[id] = (calTask[id] or 0) + 1
  726 + end
705 end 727 end
706 end 728 end
707 end 729 end