From c8a03c009da8e8d6e89d3c813fc7001fb0b6de76 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 7 Nov 2019 17:21:35 +0800 Subject: [PATCH] fix arena season --- .../ljsd/jieling/logic/arena/ArenaLogic.java | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 77a3c51e1..5bf2fb7a1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -128,7 +128,7 @@ public class ArenaLogic { PlayerManager playerInfoManager = user.getPlayerInfoManager(); int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason), Integer.toString(enemyId)).intValue(); if(score == -1){ - score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason-1), Integer.toString(enemyId)).intValue(); + score = SArenaSetting.getSArenaSetting().getScore(); } CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder() .setUid(enemyId) @@ -168,16 +168,8 @@ public class ArenaLogic { int myscoreChange=0; int defScoreChange=0; - if(arenaManager.getCount() != 0){ - myscore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,Integer.toString(curSeason), Integer.toString(uid)).intValue(); - }else{ - if(curSeason>1){ - int lastScore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason - 1), Integer.toString(uid)).intValue(); - if(lastScore!=-1){ - myscore = lastScore; - } - } - + if(arenaManager.getCount() != 0) { + myscore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason), Integer.toString(uid)).intValue(); } user.getTeamPosManager().setCurTeamPosId(teamId); @@ -192,15 +184,17 @@ public class ArenaLogic { defScore = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK,Integer.toString(curSeason), Integer.toString(challengeUid)).intValue(); defScoreChange = calScore(defScore, myscore,fightResult==1?0:1); myscoreChange = calScore(myscore, defScore,fightResult); - arenaRecord.setAttackId(uid); - arenaRecord.setDefScore(defScoreChange); - arenaRecord.setAttackForce( HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE,false)); - arenaRecord.setCreateTime((int)(System.currentTimeMillis()/1000)); - arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD,uid)); - arenaRecord.setFightResult(fightResult^1); - RedisUtil.getInstence().putMapEntry(RedisKey.ARENA_RRECORD,Integer.toString(challengeUid),arenaRecord.getId(),arenaRecord); - RedisUtil.getInstence().incrementZsetScore(RedisKey.ARENA_RANK,Integer.toString(curSeason),Integer.toString(challengeUid),defScoreChange); - MessageUtil.sendRedIndication(challengeUid,GlobalsDef.ARENA_CHALLENGE_TYPE); + if(defUser.getArenaManager().getCount()!=0){ + arenaRecord.setAttackId(uid); + arenaRecord.setDefScore(defScoreChange); + arenaRecord.setAttackForce( HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.TEAM_ARENA_DEFENSE,false)); + arenaRecord.setCreateTime((int)(System.currentTimeMillis()/1000)); + arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD,uid)); + arenaRecord.setFightResult(fightResult^1); + RedisUtil.getInstence().putMapEntry(RedisKey.ARENA_RRECORD,Integer.toString(challengeUid),arenaRecord.getId(),arenaRecord); + RedisUtil.getInstence().incrementZsetScore(RedisKey.ARENA_RANK,Integer.toString(curSeason),Integer.toString(challengeUid),defScoreChange); + MessageUtil.sendRedIndication(challengeUid,GlobalsDef.ARENA_CHALLENGE_TYPE); + } }else{ SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(challengeUid); fightResult = getFightResultByPersonToRobot(user, teamId,sArenaRobotConfig,skipFight,builder); @@ -616,7 +610,6 @@ public class ArenaLogic { title = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_title"); } Set> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK,Integer.toString(curSeason), 0, -1); - int nextSeason = curSeason + 1; if(type == GlobalsDef.ARENA_SEASON_REWARD){ curSeason=0; } @@ -652,9 +645,6 @@ public class ArenaLogic { MailLogic.getInstance().sendMail(user.getId(),title,content,rewardByRank,nowTime, Global.MAIL_EFFECTIVE_TIME); } } - if(type == GlobalsDef.ARENA_SEASON_REWARD){ - RedisUtil.getInstence().updateZsetScores(RedisKey.ARENA_RANK,Integer.toString(nextSeason),arenaRankInfo); - } MongoUtil.getInstence().lastUpdate(); }