From 6133e29fec175d91020abcd550c79798a830bdc3 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Mon, 29 Jun 2020 15:58:15 +0800 Subject: [PATCH] 新加任务 --- src/adv/Adv.lua | 8 ++++++++ src/adv/AdvTask.lua | 13 +++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-) diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 75d52f4..ce9c5f0 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -1307,6 +1307,7 @@ local function clickLinkChoose(self, room, block, params) self.lchoose[startId] = (self.lchoose[startId] or 0) + 1 self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId) self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid) + self:checkTask(Adv.TaskType.FinishStoryId, 1, chooseData.storyid) local advStoryB = self.owner:getProperty("advStoryB") advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1 self.owner:setProperty("advStoryB", advStoryB) @@ -1401,6 +1402,7 @@ end local function clickClick(self, room, block, params) local clickData = csvdb["event_clickCsv"][block.event.id] + local oldId = block.event.id if not clickData then return end local clearBlock = true local doEffect = { @@ -1423,8 +1425,11 @@ local function clickClick(self, room, block, params) end end, } + assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id) doEffect[clickData.type]() + self:checkTask(Adv.TaskType.Click, 1, oldId) + if clearBlock then block:clear() end @@ -1850,11 +1855,14 @@ function Adv:enemyDead(enemy, escape) self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1) if monsterData.type == 2 then + self:checkTask(Adv.TaskType.KillBoss, 1, enemyId) self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId) self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1) self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1) self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1) self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1) + elseif monsterData.type == 3 then + self:checkTask(Adv.TaskType.KillElite, 1, enemyId) end end end diff --git a/src/adv/AdvTask.lua b/src/adv/AdvTask.lua index db97f41..ddca25b 100644 --- a/src/adv/AdvTask.lua +++ b/src/adv/AdvTask.lua @@ -11,6 +11,11 @@ function AdvTask.bind(Adv) Shop = 5, --和指定商人交易N次 Build = 6, --和指定建筑交互N次 KillAll = 7, --消灭本层所有怪物 + KillElite = 8, --击杀精英怪 + KillBoss = 9, --击杀Boss + RelayOpen = 10, -- 解锁中继营地 + FinishStoryId = 11, -- 完成故事 + Click = 12, -- 点击点击事件 } -- 检查任务状态 在新领取任务的时候回进行检查 @@ -48,6 +53,13 @@ function AdvTask.bind(Adv) end end + checkTaskFunc[Adv.TaskType.RelayOpen] = function() + local limit = tonum(taskData.value2, 0) + if self.level > limit or (self.level == limit and self.isRelay) then + return -1 + end + end + if checkTaskFunc[taskData.condition] then status = checkTaskFunc[taskData.condition]() else @@ -84,6 +96,7 @@ function AdvTask.bind(Adv) end end self:addTask() + self:checkTask(Adv.TaskType.RelayOpen) --每一层都检查一下 end function Adv:checkTask(taskType, count, cond) -- libgit2 0.21.2