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 | 1303 | return true |
| 1304 | 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 | 1306 | local eventCallFunc = { |
| 1314 | 1307 | [AdvEventType.Out] = clickOut, |
| 1315 | 1308 | [AdvEventType.InOut] = clickOut, |
| ... | ... | @@ -1323,7 +1316,6 @@ local eventCallFunc = { |
| 1323 | 1316 | [AdvEventType.Build] = clickBuild, |
| 1324 | 1317 | [AdvEventType.Click] = clickClick, |
| 1325 | 1318 | [AdvEventType.Layer] = clickLayer, |
| 1326 | - [AdvEventType.Task] = clickTask, | |
| 1327 | 1319 | } |
| 1328 | 1320 | |
| 1329 | 1321 | --点击处理 roomId, blockId | ... | ... |
src/adv/AdvBlock.lua
| ... | ... | @@ -198,7 +198,6 @@ function Block:getEventData() |
| 198 | 198 | [AdvEventType.Trap] = "event_trapCsv", |
| 199 | 199 | [AdvEventType.Click] = "event_clickCsv", |
| 200 | 200 | [AdvEventType.Layer] = "event_layerCsv", |
| 201 | - [AdvEventType.Task] = "event_questCsv", | |
| 202 | 201 | [AdvEventType.LinkChoose] = "event_linkchooseCsv", |
| 203 | 202 | } |
| 204 | 203 | ... | ... |
src/adv/AdvMap.lua
| ... | ... | @@ -224,8 +224,6 @@ function Map:getBlocksBySize(roomId, blockId, size) |
| 224 | 224 | return blocks |
| 225 | 225 | end |
| 226 | 226 | |
| 227 | - | |
| 228 | - | |
| 229 | 227 | -----------------------------随机地图----------------------------- |
| 230 | 228 | |
| 231 | 229 | -- isEnter isNewRelay 区分中继层的类型 --是否是开始进入 是否是第一次进入 |
| ... | ... | @@ -295,6 +293,7 @@ createMap = function(self, mapId, isEnter, isNewRelay) |
| 295 | 293 | return false |
| 296 | 294 | end |
| 297 | 295 | haveBoss = true |
| 296 | + self.haveBoss = true -- 刷新任务用的临时变量 | |
| 298 | 297 | end |
| 299 | 298 | randomFunc[AdvEventType.LinkChoose] = function() |
| 300 | 299 | if haveLChoose then return false end |
| ... | ... | @@ -337,9 +336,6 @@ createMap = function(self, mapId, isEnter, isNewRelay) |
| 337 | 336 | randomFunc[AdvEventType.Click] = randomCommon |
| 338 | 337 | --跨层点 |
| 339 | 338 | randomFunc[AdvEventType.Layer] = randomCommon |
| 340 | - --层级任务 | |
| 341 | - randomFunc[AdvEventType.Task] = randomCommon | |
| 342 | - | |
| 343 | 339 | |
| 344 | 340 | if randomFunc[etype] then |
| 345 | 341 | if randomFunc[etype]() ~= false then |
| ... | ... | @@ -517,9 +513,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 |
| 517 | 513 | ["event_trapCsv"] = AdvEventType.Trap, |
| 518 | 514 | ["event_clickCsv"] = AdvEventType.Click, |
| 519 | 515 | ["event_layerCsv"] = AdvEventType.Layer, |
| 520 | - ["event_questCsv"] = AdvEventType.Task, | |
| 521 | 516 | ["event_linkchooseCsv"] = AdvEventType.LinkChoose, |
| 522 | - | |
| 523 | 517 | } |
| 524 | 518 | local eventLib = {} |
| 525 | 519 | ... | ... |
src/adv/AdvTask.lua
| ... | ... | @@ -83,6 +83,7 @@ function AdvTask.bind(Adv) |
| 83 | 83 | end |
| 84 | 84 | end |
| 85 | 85 | end |
| 86 | + self:addTask() | |
| 86 | 87 | end |
| 87 | 88 | |
| 88 | 89 | function Adv:checkTask(taskType, count, cond) |
| ... | ... | @@ -109,7 +110,26 @@ function AdvTask.bind(Adv) |
| 109 | 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 | 133 | local taskData = csvdb["event_questCsv"][taskId] |
| 114 | 134 | if taskData then |
| 115 | 135 | self.advTask[taskId] = 0 | ... | ... |