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 |