diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 99f1d1b..21378d0 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -162,7 +162,6 @@ AdvEventType = { Trap = 6, --陷阱 Click = 7, --点击生效 Layer = 8, --切换层的点 - Task = 9, --任务 } AdvBackEventType = { diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 2942469..c24737f 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -1303,13 +1303,6 @@ local function clickLayer(self, room, block, params) return true end -local function clickTask(self, room, block, params) - if self:addTask(block.event.id) then --增加任务 - block:clear() - return true - end -end - local eventCallFunc = { [AdvEventType.Out] = clickOut, [AdvEventType.InOut] = clickOut, @@ -1323,7 +1316,6 @@ local eventCallFunc = { [AdvEventType.Build] = clickBuild, [AdvEventType.Click] = clickClick, [AdvEventType.Layer] = clickLayer, - [AdvEventType.Task] = clickTask, } --点击处理 roomId, blockId diff --git a/src/adv/AdvBlock.lua b/src/adv/AdvBlock.lua index 8b1897a..912148c 100644 --- a/src/adv/AdvBlock.lua +++ b/src/adv/AdvBlock.lua @@ -198,7 +198,6 @@ function Block:getEventData() [AdvEventType.Trap] = "event_trapCsv", [AdvEventType.Click] = "event_clickCsv", [AdvEventType.Layer] = "event_layerCsv", - [AdvEventType.Task] = "event_questCsv", [AdvEventType.LinkChoose] = "event_linkchooseCsv", } diff --git a/src/adv/AdvMap.lua b/src/adv/AdvMap.lua index 5cd0418..81d9e55 100644 --- a/src/adv/AdvMap.lua +++ b/src/adv/AdvMap.lua @@ -224,8 +224,6 @@ function Map:getBlocksBySize(roomId, blockId, size) return blocks end - - -----------------------------随机地图----------------------------- -- isEnter isNewRelay 区分中继层的类型 --是否是开始进入 是否是第一次进入 @@ -295,6 +293,7 @@ createMap = function(self, mapId, isEnter, isNewRelay) return false end haveBoss = true + self.haveBoss = true -- 刷新任务用的临时变量 end randomFunc[AdvEventType.LinkChoose] = function() if haveLChoose then return false end @@ -337,9 +336,6 @@ createMap = function(self, mapId, isEnter, isNewRelay) randomFunc[AdvEventType.Click] = randomCommon --跨层点 randomFunc[AdvEventType.Layer] = randomCommon - --层级任务 - randomFunc[AdvEventType.Task] = randomCommon - if randomFunc[etype] then if randomFunc[etype]() ~= false then @@ -517,9 +513,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 ["event_trapCsv"] = AdvEventType.Trap, ["event_clickCsv"] = AdvEventType.Click, ["event_layerCsv"] = AdvEventType.Layer, - ["event_questCsv"] = AdvEventType.Task, ["event_linkchooseCsv"] = AdvEventType.LinkChoose, - } local eventLib = {} diff --git a/src/adv/AdvTask.lua b/src/adv/AdvTask.lua index 7b7d07f..7b0433d 100644 --- a/src/adv/AdvTask.lua +++ b/src/adv/AdvTask.lua @@ -83,6 +83,7 @@ function AdvTask.bind(Adv) end end end + self:addTask() end function Adv:checkTask(taskType, count, cond) @@ -109,7 +110,26 @@ function AdvTask.bind(Adv) end -- 点击任务地块领取任务 - function Adv:addTask(taskId) + function Adv:addTask() + if self.isRelay or self.haveBoss then return end + + local chapterId, level = self.chapterId, self.level + if self:isEndless() then + level = AdvCommon.getEndlessDataLv(chapterId, level) + end + local advEventOpenStatus = self.owner:advEventOpenStatus() + local pool = {} + for id, data in pairs(csvdb["event_questCsv"]) do + if data.levelchapter == chapterId and (data.unlockType == 0 or (advEventOpenStatus[etype] or {})[data.unlockType]) then + if AdvCommon.checkIsIn(level, data.leveltype, data.levellimit) then + pool[id] = {showup = data.showup} + end + end + end + + if not next(pool) then return end + + local taskId = math.randWeight(pool, "showup") local taskData = csvdb["event_questCsv"][taskId] if taskData then self.advTask[taskId] = 0 -- libgit2 0.21.2