Commit 42327de833d1b029f6090e3a8e110312ab254b50
1 parent
85a09163
高级竞技场红点
Showing
3 changed files
with
30 additions
and
11 deletions
Show diff stats
src/actions/PvpAction.lua
| @@ -824,18 +824,8 @@ function _M.highDivisionGiftRpc(agent, data) | @@ -824,18 +824,8 @@ function _M.highDivisionGiftRpc(agent, data) | ||
| 824 | 824 | ||
| 825 | local pvpHGTime = role:getProperty("pvpHGTime") | 825 | local pvpHGTime = role:getProperty("pvpHGTime") |
| 826 | if pvpHGTime == 0 then return end | 826 | if pvpHGTime == 0 then return end |
| 827 | - local score = role:unpackPvpScore(redisproxy:zscore(role:getPvpDBKey(RANK_PVP_HIGHT), roleId)) | ||
| 828 | 827 | ||
| 829 | - local divisionId = nil | ||
| 830 | - for _id, division in ipairs(csvdb["pvp_group_divisionCsv"]) do | ||
| 831 | - if score >= division.division then | ||
| 832 | - divisionId = _id | ||
| 833 | - else | ||
| 834 | - break | ||
| 835 | - end | ||
| 836 | - end | ||
| 837 | - | ||
| 838 | - local newTime, newReward = role:calculatePvpHGift(divisionId) | 828 | + local newTime, newReward = role:calculatePvpHGift(role:getPvpHDivision()) |
| 839 | if not next(newReward) then return end | 829 | if not next(newReward) then return end |
| 840 | 830 | ||
| 841 | role:updateProperties({ | 831 | role:updateProperties({ |
src/models/RolePlugin.lua
| @@ -1291,6 +1291,7 @@ function RolePlugin.bind(Role) | @@ -1291,6 +1291,7 @@ function RolePlugin.bind(Role) | ||
| 1291 | end | 1291 | end |
| 1292 | local breathes = { | 1292 | local breathes = { |
| 1293 | ["email"] = breath(120), -- email | 1293 | ["email"] = breath(120), -- email |
| 1294 | + ["pvphg"] = breath(300), -- 高级竞技场 奖励满的红点 | ||
| 1294 | } | 1295 | } |
| 1295 | function Role:checkNewEvent(now) | 1296 | function Role:checkNewEvent(now) |
| 1296 | if now - self:getProperty("ltime") < 5 then | 1297 | if now - self:getProperty("ltime") < 5 then |
| @@ -1337,6 +1338,21 @@ function RolePlugin.bind(Role) | @@ -1337,6 +1338,21 @@ function RolePlugin.bind(Role) | ||
| 1337 | end | 1338 | end |
| 1338 | end | 1339 | end |
| 1339 | end | 1340 | end |
| 1341 | + | ||
| 1342 | + checks["pvphg"] = function() | ||
| 1343 | + if not self:isTimeResetOpen(TimeReset.PvpHight) then return end | ||
| 1344 | + | ||
| 1345 | + local pvpHGTime = self:getProperty("pvpHGTime") | ||
| 1346 | + if pvpHGTime == 0 then return end | ||
| 1347 | + local division = self:getPvpHDivision() | ||
| 1348 | + local divisionData = csvdb["pvp_group_divisionCsv"][division] | ||
| 1349 | + | ||
| 1350 | + local newTime, newReward = self:calculatePvpHGift(division) | ||
| 1351 | + if table.pack(next(newReward))[2] >= divisionData.limit then | ||
| 1352 | + return true | ||
| 1353 | + end | ||
| 1354 | + | ||
| 1355 | + end | ||
| 1340 | 1356 | ||
| 1341 | local events = {} | 1357 | local events = {} |
| 1342 | for name, breath in pairs(breathes) do | 1358 | for name, breath in pairs(breathes) do |
src/models/RolePvp.lua
| @@ -82,6 +82,19 @@ function Role:changePvpScoreCommon(matchId, isWin) | @@ -82,6 +82,19 @@ function Role:changePvpScoreCommon(matchId, isWin) | ||
| 82 | return table.unpack(result) | 82 | return table.unpack(result) |
| 83 | end | 83 | end |
| 84 | 84 | ||
| 85 | +function Role:getPvpHDivision(score) | ||
| 86 | + local score = score or self:unpackPvpScore(redisproxy:zscore(self:getPvpDBKey(RANK_PVP_HIGHT), self:getProperty("id"))) | ||
| 87 | + local divisionId = nil | ||
| 88 | + for _id, division in ipairs(csvdb["pvp_group_divisionCsv"]) do | ||
| 89 | + if score >= division.division then | ||
| 90 | + divisionId = _id | ||
| 91 | + else | ||
| 92 | + break | ||
| 93 | + end | ||
| 94 | + end | ||
| 95 | + return divisionId | ||
| 96 | +end | ||
| 97 | + | ||
| 85 | function Role:calculatePvpHGift(division) | 98 | function Role:calculatePvpHGift(division) |
| 86 | local now = skynet.timex() | 99 | local now = skynet.timex() |
| 87 | local oldTime = self:getProperty("pvpHGTime") | 100 | local oldTime = self:getProperty("pvpHGTime") |