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