Commit e994ca55fad96ba5e09f3dc2c7588f31730501f1

Authored by zhouhaihai
1 parent ef250300

任务 自动领取

src/GlobalVar.lua
... ... @@ -162,7 +162,6 @@ AdvEventType = {
162 162 Trap = 6, --陷阱
163 163 Click = 7, --点击生效
164 164 Layer = 8, --切换层的点
165   - Task = 9, --任务
166 165 }
167 166  
168 167 AdvBackEventType = {
... ...
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
... ...