Commit b115474f7b74ac50b67d437cb65e34bdc48715c7
1 parent
763d6396
默认积分 1000
Showing
2 changed files
with
18 additions
and
5 deletions
Show diff stats
src/actions/PvpAction.lua
| @@ -94,6 +94,9 @@ function _M.infoRpc(agent, data) | @@ -94,6 +94,9 @@ function _M.infoRpc(agent, data) | ||
| 94 | end) | 94 | end) |
| 95 | local score = role:unpackPvpScore(redret[1] or 0) | 95 | local score = role:unpackPvpScore(redret[1] or 0) |
| 96 | local rank = tonumber(redret[2] or -2) + 1 --排名 1 - ... -1 未上榜 没打过pvp | 96 | local rank = tonumber(redret[2] or -2) + 1 --排名 1 - ... -1 未上榜 没打过pvp |
| 97 | + if rank == -1 then | ||
| 98 | + score = globalCsv.pvp_base_score | ||
| 99 | + end | ||
| 97 | local pvpMC = role:getProperty("pvpMC") | 100 | local pvpMC = role:getProperty("pvpMC") |
| 98 | if not next(pvpMC) then --没有分配过对手 | 101 | if not next(pvpMC) then --没有分配过对手 |
| 99 | role:refreshPvpMatchC(score) | 102 | role:refreshPvpMatchC(score) |
| @@ -101,8 +104,8 @@ function _M.infoRpc(agent, data) | @@ -101,8 +104,8 @@ function _M.infoRpc(agent, data) | ||
| 101 | end | 104 | end |
| 102 | if not next(pvpMC) then return end | 105 | if not next(pvpMC) then return end |
| 103 | 106 | ||
| 104 | - response.score = score | ||
| 105 | response.rank = rank | 107 | response.rank = rank |
| 108 | + response.score = score | ||
| 106 | response.matches = getMatchInfo(role, pvpMC, _pvpBattleInfoCacheC) | 109 | response.matches = getMatchInfo(role, pvpMC, _pvpBattleInfoCacheC) |
| 107 | 110 | ||
| 108 | elseif ptype == 2 then -- 高级pvp | 111 | elseif ptype == 2 then -- 高级pvp |
| @@ -314,7 +317,9 @@ function _M.rankListRpc(agent, data) | @@ -314,7 +317,9 @@ function _M.rankListRpc(agent, data) | ||
| 314 | end) | 317 | end) |
| 315 | local score = role:unpackPvpScore(redret[1] or 0) | 318 | local score = role:unpackPvpScore(redret[1] or 0) |
| 316 | local rank = tonumber(redret[2] or -2) + 1 --排名 1 - ... -1 未上榜 没打过pvp | 319 | local rank = tonumber(redret[2] or -2) + 1 --排名 1 - ... -1 未上榜 没打过pvp |
| 317 | - | 320 | + if rank == -1 then |
| 321 | + score = globalCsv.pvp_base_score | ||
| 322 | + end | ||
| 318 | local rankList = {} | 323 | local rankList = {} |
| 319 | for i = 1, #redret[3], 2 do | 324 | for i = 1, #redret[3], 2 do |
| 320 | local roleId = tonumber(redret[i]) | 325 | local roleId = tonumber(redret[i]) |
src/models/RolePvp.lua
| @@ -6,7 +6,7 @@ RolePvp.bind = function (Role) | @@ -6,7 +6,7 @@ RolePvp.bind = function (Role) | ||
| 6 | local PVP_RANK_TIME_SORT_STD = 1924876800 -- 2030-12-31 00:00:00 | 6 | local PVP_RANK_TIME_SORT_STD = 1924876800 -- 2030-12-31 00:00:00 |
| 7 | local PVP_RANK_TIME_SORT_PLACE = 1000000 -- 时间戳占据 6位数 | 7 | local PVP_RANK_TIME_SORT_PLACE = 1000000 -- 时间戳占据 6位数 |
| 8 | local PVP_RANK_TIME_SORT_PRECISION = 360 -- 时间精度 每6分钟忽略差异 | 8 | local PVP_RANK_TIME_SORT_PRECISION = 360 -- 时间精度 每6分钟忽略差异 |
| 9 | -local PVP_RANK_ROBOT_SCORE = 1000 -- 机器人积分 | 9 | +local PVP_RANK_ROBOT_SCORE = globalCsv.pvp_base_score -- 机器人积分 |
| 10 | 10 | ||
| 11 | 11 | ||
| 12 | function Role:unpackPvpScore(score) | 12 | function Role:unpackPvpScore(score) |
| @@ -70,8 +70,16 @@ end | @@ -70,8 +70,16 @@ end | ||
| 70 | 70 | ||
| 71 | function Role:refreshPvpMatchC(score) | 71 | function Role:refreshPvpMatchC(score) |
| 72 | local roleId = self:getProperty("id") | 72 | local roleId = self:getProperty("id") |
| 73 | - local score = score or self:unpackPvpScore(redisproxy:zscore(RANK_PVP_COMMON, roleId)) | ||
| 74 | - | 73 | + |
| 74 | + if not score then | ||
| 75 | + local tempScore = redisproxy:zscore(RANK_PVP_COMMON, roleId) | ||
| 76 | + if not tempScore then | ||
| 77 | + score = globalCsv.pvp_base_score | ||
| 78 | + else | ||
| 79 | + score = self:unpackPvpScore(tempScore) | ||
| 80 | + end | ||
| 81 | + end | ||
| 82 | + | ||
| 75 | local function getPlayers(levels) | 83 | local function getPlayers(levels) |
| 76 | local redret = redisproxy:pipelining(function(red) | 84 | local redret = redisproxy:pipelining(function(red) |
| 77 | for _, level in ipairs(levels) do | 85 | for _, level in ipairs(levels) do |