Commit 1313eac009b7a8a180713b9c67cf8e56bf8a1ff4

Authored by zhouhaihai
1 parent cd498e53

冒险的一些bug

src/actions/AdvAction.lua
... ... @@ -694,13 +694,14 @@ function _M.rankRpc(agent, data)
694 694 local role = agent.role
695 695  
696 696 local list = {}
697   - local ids = redisproxy:zrevrange(RANK_ADV, 0 , 99)
  697 + local ids = redisproxy:zrevrange(RANK_ADV, 0 , 99, "WITHSCORES")
698 698 local redret = {}
699 699 if ids and next(ids) then
700 700 redret = redisproxy:pipelining(function (red)
701   - for i = 1, #ids do
  701 + for i = 1, #ids, 2 do
702 702 local roleId = ids[i]
703   - table.insert(list, {roleId = tonumber(roleId)})
  703 + local score = tonum(ids[i + 1])
  704 + table.insert(list, {roleId = tonumber(roleId), score = score})
704 705 red:hget(RANK_ADV_INFO, roleId)
705 706 end
706 707 end)
... ...
src/adv/Adv.lua
... ... @@ -377,6 +377,11 @@ function Adv:initBattle()
377 377 self.battle:triggerPassive(passiveC[1], passiveC[2])
378 378 end
379 379 self.cachePassiveEvent = {}
  380 +
  381 + -- after init battle
  382 + for idx, map in pairs(self.maps) do
  383 + map:initBattleAfter()
  384 + end
380 385 end
381 386  
382 387 function Adv:triggerPassive(condType, params)
... ... @@ -1142,6 +1147,7 @@ local function clickLayer(self, room, block, params)
1142 1147  
1143 1148 self.maps[mapIdx] = AdvMap.new(self, mapIdx, mapId)
1144 1149 self.battle:initMapEnemys(mapIdx)
  1150 + self.maps[mapIdx]:initBattleAfter()
1145 1151 self:checkAchievement(Adv.AchievType.EnterILayer, 1, mapId)
1146 1152 end
1147 1153 self:backLayer(1)
... ...
src/adv/AdvMap.lua
... ... @@ -34,6 +34,12 @@ function Map:loadRooms(rooms)
34 34 end
35 35 end
36 36  
  37 +function Map:initBattleAfter()
  38 + for roomId, room in pairs(self.rooms) do
  39 + room:initBattleAfter()
  40 + end
  41 +end
  42 +
37 43 function Map:getDB()
38 44 local map = {}
39 45 map.mapId = self.mapId
... ...
src/adv/AdvRoom.lua
... ... @@ -12,6 +12,7 @@ function Room:ctor(map, roomId, csvData, info, isPath)
12 12 self.isPath = isPath
13 13 self.isBossRoom = false -- boss房间 --击败boss 以后重置为false
14 14 self.isShow = false
  15 + self.battleAfterCall = {}
15 16  
16 17 self.blocks = {}
17 18 self:loadBlocks(csvData, info)
... ... @@ -38,10 +39,19 @@ function Room:loadBlocks(csvData, info)
38 39 end
39 40 --中继层全部开放 boss 房间 开启所有的地块
40 41 if self.map.adv.isRelay or (self.isBossRoom and self.isShow and isFirstOpen) then
41   - for _, block in pairs(self.blocks) do
42   - self:openBlock(block)
43   - end
  42 + table.insert(self.battleAfterCall, function()
  43 + for _, block in pairs(self.blocks) do
  44 + self:openBlock(block)
  45 + end
  46 + end)
  47 + end
  48 +end
  49 +
  50 +function Room:initBattleAfter()
  51 + for _, callback in ipairs(self.battleAfterCall) do
  52 + callback()
44 53 end
  54 + self.battleAfterCall = {}
45 55 end
46 56  
47 57 function Room:getDB()
... ...
src/adv/AdvTask.lua
... ... @@ -137,7 +137,7 @@ function AdvTask.bind(Adv)
137 137  
138 138 local item = csvdb["event_dropCsv"][taskData.drop]["range"]:randWeight(true)
139 139 reward[item[1]] = (reward[item[1]] or 0) + item[2]
140   - reward = self.owner:award(reward)
  140 + reward = self:award(reward)
141 141  
142 142 self.advTask[taskId] = nil
143 143 ok = true
... ...