Commit 6133e29fec175d91020abcd550c79798a830bdc3

Authored by zhouhaihai
1 parent bc36785e

新加任务

Showing 2 changed files with 21 additions and 0 deletions   Show diff stats
src/adv/Adv.lua
... ... @@ -1307,6 +1307,7 @@ local function clickLinkChoose(self, room, block, params)
1307 1307 self.lchoose[startId] = (self.lchoose[startId] or 0) + 1
1308 1308 self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId)
1309 1309 self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid)
  1310 + self:checkTask(Adv.TaskType.FinishStoryId, 1, chooseData.storyid)
1310 1311 local advStoryB = self.owner:getProperty("advStoryB")
1311 1312 advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1
1312 1313 self.owner:setProperty("advStoryB", advStoryB)
... ... @@ -1401,6 +1402,7 @@ end
1401 1402  
1402 1403 local function clickClick(self, room, block, params)
1403 1404 local clickData = csvdb["event_clickCsv"][block.event.id]
  1405 + local oldId = block.event.id
1404 1406 if not clickData then return end
1405 1407 local clearBlock = true
1406 1408 local doEffect = {
... ... @@ -1423,8 +1425,11 @@ local function clickClick(self, room, block, params)
1423 1425 end
1424 1426 end,
1425 1427 }
  1428 +
1426 1429 assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id)
1427 1430 doEffect[clickData.type]()
  1431 + self:checkTask(Adv.TaskType.Click, 1, oldId)
  1432 +
1428 1433 if clearBlock then
1429 1434 block:clear()
1430 1435 end
... ... @@ -1850,11 +1855,14 @@ function Adv:enemyDead(enemy, escape)
1850 1855 self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1)
1851 1856  
1852 1857 if monsterData.type == 2 then
  1858 + self:checkTask(Adv.TaskType.KillBoss, 1, enemyId)
1853 1859 self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId)
1854 1860 self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1)
1855 1861 self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1)
1856 1862 self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1)
1857 1863 self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1)
  1864 + elseif monsterData.type == 3 then
  1865 + self:checkTask(Adv.TaskType.KillElite, 1, enemyId)
1858 1866 end
1859 1867 end
1860 1868 end
... ...
src/adv/AdvTask.lua
... ... @@ -11,6 +11,11 @@ function AdvTask.bind(Adv)
11 11 Shop = 5, --和指定商人交易N次
12 12 Build = 6, --和指定建筑交互N次
13 13 KillAll = 7, --消灭本层所有怪物
  14 + KillElite = 8, --击杀精英怪
  15 + KillBoss = 9, --击杀Boss
  16 + RelayOpen = 10, -- 解锁中继营地
  17 + FinishStoryId = 11, -- 完成故事
  18 + Click = 12, -- 点击点击事件
14 19 }
15 20  
16 21 -- 检查任务状态 在新领取任务的时候回进行检查
... ... @@ -48,6 +53,13 @@ function AdvTask.bind(Adv)
48 53 end
49 54 end
50 55  
  56 + checkTaskFunc[Adv.TaskType.RelayOpen] = function()
  57 + local limit = tonum(taskData.value2, 0)
  58 + if self.level > limit or (self.level == limit and self.isRelay) then
  59 + return -1
  60 + end
  61 + end
  62 +
51 63 if checkTaskFunc[taskData.condition] then
52 64 status = checkTaskFunc[taskData.condition]()
53 65 else
... ... @@ -84,6 +96,7 @@ function AdvTask.bind(Adv)
84 96 end
85 97 end
86 98 self:addTask()
  99 + self:checkTask(Adv.TaskType.RelayOpen) --每一层都检查一下
87 100 end
88 101  
89 102 function Adv:checkTask(taskType, count, cond)
... ...