Commit f2648427ae9867da4d35e7b3b1a78d1b1e3876d0

Authored by zhouhaihai
1 parent edf2ee12

修改中继营地解锁条件

Showing 2 changed files with 20 additions and 13 deletions   Show diff stats
src/actions/AdvAction.lua
... ... @@ -137,7 +137,8 @@ function _M.startAdvRpc( agent, data )
137 137 local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true)
138 138 if not relayData then return 6 end -- 不是中继层
139 139 if layer ~= 1 then
140   - if (advPass[chapterId] or 0) < relayData.floor then return 21 end
  140 + local advRelay = role:getProperty("advRelay")
  141 + if not (advRelay[chapterId] or {})[layer] then return 21 end -- 没有开放
141 142 end
142 143 if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力
143 144 -- 关卡开放判断
... ... @@ -191,7 +192,7 @@ function _M.startHangRpc(agent, data)
191 192 local format = msg.format --编队
192 193 local index = msg.index or 1--时间索引id
193 194  
194   - local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId]
  195 + local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId]
195 196 if not chapterData then return 1 end
196 197 local campSiteData = chapterData[campId]
197 198 if not campSiteData then return 1 end
... ... @@ -213,7 +214,7 @@ function _M.startHangRpc(agent, data)
213 214 if AdvCommon.isEndless(chapterId) then return 5 end -- 无尽没有代理
214 215  
215 216 local advRelay = role:getProperty("advRelay")
216   - if not next(advRelay[chapterId] or {}) then return 6 end -- 没有开放
  217 + if not (advRelay[chapterId] or {})[campSiteData.floor] then return 6 end -- 没有开放
217 218  
218 219  
219 220 if not role:checkAdvCount(adv_idle_energy) then return 7 end -- 是否有体力
... ...
src/adv/Adv.lua
... ... @@ -140,12 +140,8 @@ function Adv:initByChapter(params)
140 140 local chapter = self:isEndless() and -1 or self.chapterId
141 141 if not (advRelay[chapter] or {})[self.level] then
142 142 isNewRelay = true
143   - advRelay[chapter] = advRelay[chapter] or {}
144   - advRelay[chapter][self.level] = 1
145   - self.owner:updateProperty({field = "advRelay", value = advRelay})
146 143 end
147 144 end
148   -
149 145 self.maps = {}
150 146 self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay)
151 147  
... ... @@ -153,8 +149,6 @@ function Adv:initByChapter(params)
153 149  
154 150 self:initLayerTask()
155 151  
156   -
157   -
158 152 self:checkTask(Adv.TaskType.Arrive)
159 153 self:checkAdvUnlock(1, self.level)
160 154  
... ... @@ -168,6 +162,20 @@ function Adv:initByChapter(params)
168 162 end
169 163 end
170 164  
  165 +function Adv:passAdvRelay()
  166 + local advRelay = self.owner:getProperty("advRelay")
  167 + local chapter = self:isEndless() and -1 or self.chapterId
  168 + if not (advRelay[chapter] or {})[self.level] then
  169 + advRelay[chapter] = advRelay[chapter] or {}
  170 + advRelay[chapter][self.level] = 1
  171 + self.owner:updateProperty({field = "advRelay", value = advRelay})
  172 + local relayData = self:isHaveRelay()
  173 + if relayData and relayData.award ~= "" then
  174 + self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})})
  175 + end
  176 + end
  177 +end
  178 +
171 179 function Adv:clear()
172 180 self.chapterId = nil
173 181 self.level = nil
... ... @@ -1124,6 +1132,7 @@ local function clickOut(self, room, block, params, isExit)
1124 1132 end
1125 1133  
1126 1134 if not self:isEndless() and (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束
  1135 + self:passAdvRelay()
1127 1136 self:over(true)
1128 1137 else
1129 1138 self.battle.player:triggerPassive(Passive.DOWN_LAYER)
... ... @@ -1676,10 +1685,7 @@ function Adv:clickBlock(roomId, blockId, params)
1676 1685 if self.isRelay or checkAroundBlocks() then --开放
1677 1686 self:getCurMap():openBlock(roomId, blockId, true, true)
1678 1687 if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励
1679   - local relayData = self:isHaveRelay()
1680   - if relayData and relayData.award ~= "" then
1681   - self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})})
1682   - end
  1688 + self:passAdvRelay()
1683 1689 end
1684 1690 status = true
1685 1691 end
... ...