Commit 6133e29fec175d91020abcd550c79798a830bdc3
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,6 +1307,7 @@ local function clickLinkChoose(self, room, block, params) | ||
| 1307 | self.lchoose[startId] = (self.lchoose[startId] or 0) + 1 | 1307 | self.lchoose[startId] = (self.lchoose[startId] or 0) + 1 |
| 1308 | self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId) | 1308 | self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId) |
| 1309 | self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid) | 1309 | self:checkAchievement(Adv.AchievType.FinishStoryId, 1, chooseData.storyid) |
| 1310 | + self:checkTask(Adv.TaskType.FinishStoryId, 1, chooseData.storyid) | ||
| 1310 | local advStoryB = self.owner:getProperty("advStoryB") | 1311 | local advStoryB = self.owner:getProperty("advStoryB") |
| 1311 | advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1 | 1312 | advStoryB[chooseData.storyid] = (advStoryB[chooseData.storyid] or 0) + 1 |
| 1312 | self.owner:setProperty("advStoryB", advStoryB) | 1313 | self.owner:setProperty("advStoryB", advStoryB) |
| @@ -1401,6 +1402,7 @@ end | @@ -1401,6 +1402,7 @@ end | ||
| 1401 | 1402 | ||
| 1402 | local function clickClick(self, room, block, params) | 1403 | local function clickClick(self, room, block, params) |
| 1403 | local clickData = csvdb["event_clickCsv"][block.event.id] | 1404 | local clickData = csvdb["event_clickCsv"][block.event.id] |
| 1405 | + local oldId = block.event.id | ||
| 1404 | if not clickData then return end | 1406 | if not clickData then return end |
| 1405 | local clearBlock = true | 1407 | local clearBlock = true |
| 1406 | local doEffect = { | 1408 | local doEffect = { |
| @@ -1423,8 +1425,11 @@ local function clickClick(self, room, block, params) | @@ -1423,8 +1425,11 @@ local function clickClick(self, room, block, params) | ||
| 1423 | end | 1425 | end |
| 1424 | end, | 1426 | end, |
| 1425 | } | 1427 | } |
| 1428 | + | ||
| 1426 | assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id) | 1429 | assert(doEffect[clickData.type], "error effect, event_clickCsv id :" .. block.event.id) |
| 1427 | doEffect[clickData.type]() | 1430 | doEffect[clickData.type]() |
| 1431 | + self:checkTask(Adv.TaskType.Click, 1, oldId) | ||
| 1432 | + | ||
| 1428 | if clearBlock then | 1433 | if clearBlock then |
| 1429 | block:clear() | 1434 | block:clear() |
| 1430 | end | 1435 | end |
| @@ -1850,11 +1855,14 @@ function Adv:enemyDead(enemy, escape) | @@ -1850,11 +1855,14 @@ function Adv:enemyDead(enemy, escape) | ||
| 1850 | self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1) | 1855 | self:checkAchievement(Adv.AchievType.KillWithAMWeapon, 1) |
| 1851 | 1856 | ||
| 1852 | if monsterData.type == 2 then | 1857 | if monsterData.type == 2 then |
| 1858 | + self:checkTask(Adv.TaskType.KillBoss, 1, enemyId) | ||
| 1853 | self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId) | 1859 | self:checkAchievement(Adv.TaskType.KillBoss, 1, enemyId) |
| 1854 | self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1) | 1860 | self:checkAchievement(Adv.TaskType.KillBossWithBuff, 1) |
| 1855 | self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1) | 1861 | self:checkAchievement(Adv.TaskType.KillBossNoBuff, 1) |
| 1856 | self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1) | 1862 | self:checkAchievement(Adv.AchievType.KillBossWithMWeapon, 1) |
| 1857 | self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1) | 1863 | self:checkAchievement(Adv.AchievType.KillBossWithAMWeapon, 1) |
| 1864 | + elseif monsterData.type == 3 then | ||
| 1865 | + self:checkTask(Adv.TaskType.KillElite, 1, enemyId) | ||
| 1858 | end | 1866 | end |
| 1859 | end | 1867 | end |
| 1860 | end | 1868 | end |
src/adv/AdvTask.lua
| @@ -11,6 +11,11 @@ function AdvTask.bind(Adv) | @@ -11,6 +11,11 @@ function AdvTask.bind(Adv) | ||
| 11 | Shop = 5, --和指定商人交易N次 | 11 | Shop = 5, --和指定商人交易N次 |
| 12 | Build = 6, --和指定建筑交互N次 | 12 | Build = 6, --和指定建筑交互N次 |
| 13 | KillAll = 7, --消灭本层所有怪物 | 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,6 +53,13 @@ function AdvTask.bind(Adv) | ||
| 48 | end | 53 | end |
| 49 | end | 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 | if checkTaskFunc[taskData.condition] then | 63 | if checkTaskFunc[taskData.condition] then |
| 52 | status = checkTaskFunc[taskData.condition]() | 64 | status = checkTaskFunc[taskData.condition]() |
| 53 | else | 65 | else |
| @@ -84,6 +96,7 @@ function AdvTask.bind(Adv) | @@ -84,6 +96,7 @@ function AdvTask.bind(Adv) | ||
| 84 | end | 96 | end |
| 85 | end | 97 | end |
| 86 | self:addTask() | 98 | self:addTask() |
| 99 | + self:checkTask(Adv.TaskType.RelayOpen) --每一层都检查一下 | ||
| 87 | end | 100 | end |
| 88 | 101 | ||
| 89 | function Adv:checkTask(taskType, count, cond) | 102 | function Adv:checkTask(taskType, count, cond) |