Commit e994ca55fad96ba5e09f3dc2c7588f31730501f1
1 parent
ef250300
任务 自动领取
Showing
5 changed files
with
22 additions
and
18 deletions
Show diff stats
src/GlobalVar.lua
src/adv/Adv.lua
| @@ -1303,13 +1303,6 @@ local function clickLayer(self, room, block, params) | @@ -1303,13 +1303,6 @@ local function clickLayer(self, room, block, params) | ||
| 1303 | return true | 1303 | return true |
| 1304 | end | 1304 | end |
| 1305 | 1305 | ||
| 1306 | -local function clickTask(self, room, block, params) | ||
| 1307 | - if self:addTask(block.event.id) then --增加任务 | ||
| 1308 | - block:clear() | ||
| 1309 | - return true | ||
| 1310 | - end | ||
| 1311 | -end | ||
| 1312 | - | ||
| 1313 | local eventCallFunc = { | 1306 | local eventCallFunc = { |
| 1314 | [AdvEventType.Out] = clickOut, | 1307 | [AdvEventType.Out] = clickOut, |
| 1315 | [AdvEventType.InOut] = clickOut, | 1308 | [AdvEventType.InOut] = clickOut, |
| @@ -1323,7 +1316,6 @@ local eventCallFunc = { | @@ -1323,7 +1316,6 @@ local eventCallFunc = { | ||
| 1323 | [AdvEventType.Build] = clickBuild, | 1316 | [AdvEventType.Build] = clickBuild, |
| 1324 | [AdvEventType.Click] = clickClick, | 1317 | [AdvEventType.Click] = clickClick, |
| 1325 | [AdvEventType.Layer] = clickLayer, | 1318 | [AdvEventType.Layer] = clickLayer, |
| 1326 | - [AdvEventType.Task] = clickTask, | ||
| 1327 | } | 1319 | } |
| 1328 | 1320 | ||
| 1329 | --点击处理 roomId, blockId | 1321 | --点击处理 roomId, blockId |
src/adv/AdvBlock.lua
| @@ -198,7 +198,6 @@ function Block:getEventData() | @@ -198,7 +198,6 @@ function Block:getEventData() | ||
| 198 | [AdvEventType.Trap] = "event_trapCsv", | 198 | [AdvEventType.Trap] = "event_trapCsv", |
| 199 | [AdvEventType.Click] = "event_clickCsv", | 199 | [AdvEventType.Click] = "event_clickCsv", |
| 200 | [AdvEventType.Layer] = "event_layerCsv", | 200 | [AdvEventType.Layer] = "event_layerCsv", |
| 201 | - [AdvEventType.Task] = "event_questCsv", | ||
| 202 | [AdvEventType.LinkChoose] = "event_linkchooseCsv", | 201 | [AdvEventType.LinkChoose] = "event_linkchooseCsv", |
| 203 | } | 202 | } |
| 204 | 203 |
src/adv/AdvMap.lua
| @@ -224,8 +224,6 @@ function Map:getBlocksBySize(roomId, blockId, size) | @@ -224,8 +224,6 @@ function Map:getBlocksBySize(roomId, blockId, size) | ||
| 224 | return blocks | 224 | return blocks |
| 225 | end | 225 | end |
| 226 | 226 | ||
| 227 | - | ||
| 228 | - | ||
| 229 | -----------------------------随机地图----------------------------- | 227 | -----------------------------随机地图----------------------------- |
| 230 | 228 | ||
| 231 | -- isEnter isNewRelay 区分中继层的类型 --是否是开始进入 是否是第一次进入 | 229 | -- isEnter isNewRelay 区分中继层的类型 --是否是开始进入 是否是第一次进入 |
| @@ -295,6 +293,7 @@ createMap = function(self, mapId, isEnter, isNewRelay) | @@ -295,6 +293,7 @@ createMap = function(self, mapId, isEnter, isNewRelay) | ||
| 295 | return false | 293 | return false |
| 296 | end | 294 | end |
| 297 | haveBoss = true | 295 | haveBoss = true |
| 296 | + self.haveBoss = true -- 刷新任务用的临时变量 | ||
| 298 | end | 297 | end |
| 299 | randomFunc[AdvEventType.LinkChoose] = function() | 298 | randomFunc[AdvEventType.LinkChoose] = function() |
| 300 | if haveLChoose then return false end | 299 | if haveLChoose then return false end |
| @@ -337,9 +336,6 @@ createMap = function(self, mapId, isEnter, isNewRelay) | @@ -337,9 +336,6 @@ createMap = function(self, mapId, isEnter, isNewRelay) | ||
| 337 | randomFunc[AdvEventType.Click] = randomCommon | 336 | randomFunc[AdvEventType.Click] = randomCommon |
| 338 | --跨层点 | 337 | --跨层点 |
| 339 | randomFunc[AdvEventType.Layer] = randomCommon | 338 | randomFunc[AdvEventType.Layer] = randomCommon |
| 340 | - --层级任务 | ||
| 341 | - randomFunc[AdvEventType.Task] = randomCommon | ||
| 342 | - | ||
| 343 | 339 | ||
| 344 | if randomFunc[etype] then | 340 | if randomFunc[etype] then |
| 345 | if randomFunc[etype]() ~= false then | 341 | if randomFunc[etype]() ~= false then |
| @@ -517,9 +513,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | @@ -517,9 +513,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | ||
| 517 | ["event_trapCsv"] = AdvEventType.Trap, | 513 | ["event_trapCsv"] = AdvEventType.Trap, |
| 518 | ["event_clickCsv"] = AdvEventType.Click, | 514 | ["event_clickCsv"] = AdvEventType.Click, |
| 519 | ["event_layerCsv"] = AdvEventType.Layer, | 515 | ["event_layerCsv"] = AdvEventType.Layer, |
| 520 | - ["event_questCsv"] = AdvEventType.Task, | ||
| 521 | ["event_linkchooseCsv"] = AdvEventType.LinkChoose, | 516 | ["event_linkchooseCsv"] = AdvEventType.LinkChoose, |
| 522 | - | ||
| 523 | } | 517 | } |
| 524 | local eventLib = {} | 518 | local eventLib = {} |
| 525 | 519 |
src/adv/AdvTask.lua
| @@ -83,6 +83,7 @@ function AdvTask.bind(Adv) | @@ -83,6 +83,7 @@ function AdvTask.bind(Adv) | ||
| 83 | end | 83 | end |
| 84 | end | 84 | end |
| 85 | end | 85 | end |
| 86 | + self:addTask() | ||
| 86 | end | 87 | end |
| 87 | 88 | ||
| 88 | function Adv:checkTask(taskType, count, cond) | 89 | function Adv:checkTask(taskType, count, cond) |
| @@ -109,7 +110,26 @@ function AdvTask.bind(Adv) | @@ -109,7 +110,26 @@ function AdvTask.bind(Adv) | ||
| 109 | end | 110 | end |
| 110 | 111 | ||
| 111 | -- 点击任务地块领取任务 | 112 | -- 点击任务地块领取任务 |
| 112 | - function Adv:addTask(taskId) | 113 | + function Adv:addTask() |
| 114 | + if self.isRelay or self.haveBoss then return end | ||
| 115 | + | ||
| 116 | + local chapterId, level = self.chapterId, self.level | ||
| 117 | + if self:isEndless() then | ||
| 118 | + level = AdvCommon.getEndlessDataLv(chapterId, level) | ||
| 119 | + end | ||
| 120 | + local advEventOpenStatus = self.owner:advEventOpenStatus() | ||
| 121 | + local pool = {} | ||
| 122 | + for id, data in pairs(csvdb["event_questCsv"]) do | ||
| 123 | + if data.levelchapter == chapterId and (data.unlockType == 0 or (advEventOpenStatus[etype] or {})[data.unlockType]) then | ||
| 124 | + if AdvCommon.checkIsIn(level, data.leveltype, data.levellimit) then | ||
| 125 | + pool[id] = {showup = data.showup} | ||
| 126 | + end | ||
| 127 | + end | ||
| 128 | + end | ||
| 129 | + | ||
| 130 | + if not next(pool) then return end | ||
| 131 | + | ||
| 132 | + local taskId = math.randWeight(pool, "showup") | ||
| 113 | local taskData = csvdb["event_questCsv"][taskId] | 133 | local taskData = csvdb["event_questCsv"][taskId] |
| 114 | if taskData then | 134 | if taskData then |
| 115 | self.advTask[taskId] = 0 | 135 | self.advTask[taskId] = 0 |