From b858575a718111e505b52d7e08a84efe33fc22a9 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sun, 1 Aug 2021 02:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetWorldArenaChallengeRequestHandler.java | 10 +++++--- .../ljsd/jieling/logic/GlobleSystemLogic.java | 23 +++++++++++-------- .../ljsd/jieling/logic/arena/ArenaLogic.java | 16 ++++++++++--- .../logic/rank/rankImpl/CrossArenaRank.java | 2 ++ 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java index d6ab1fa8e..277767f82 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java @@ -26,6 +26,7 @@ import com.ljsd.jieling.logic.dao.gm.ArenaOfUser; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.FightUtil; import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; @@ -156,11 +157,12 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler1000) { ArenaOfUser arenaOfUser = CrossServiceLogic.getInstance().query(proto.getChallengeUid()); teamInfo = FightUtil.makeCrossPersonData(arenaOfUser); arenaEnemys =ArenaLogic.getInstance().getUserCrossArenaEnemy(crossGroup,arenaOfUser,proto.getChallengeRank(),false).build(); - + defendForce = arenaOfUser.getHeroManager().getTotalForce(); } else { //机器人 @@ -169,13 +171,15 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.WORLD_CALCUL_LEVE_RAND, "", 0, rankEndLine - 1); + if(users.size()>=50) { + for (int j = 0; j > rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.WORLD_CALCUL_LEVE_RAND, "", 0, rankEndLine - 1); - for (ZSetOperations.TypedTuple item : rankInfo) { - double score = item.getScore(); - sum+=score; + for (ZSetOperations.TypedTuple item : rankInfo) { + double score = item.getScore(); + sum+=score; // if(i==rankEndLine){ // //更新line名分数缓存 // setGloableWorldLeveCacheLine((int)score); // } + } + + level = (int) Math.ceil(sum / (double) Math.min(rankInfo.size(), rankEndLine)); } - int level = (int) Math.ceil(sum / (double) Math.min(rankInfo.size(), rankEndLine)); setGlobalWorldLevelCache(level); LOGGER.info("计算了一次世界等级->{}",level); // if (rankInfo.size() > rankEndLine + 100) { 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 5dee066c5..938ae711e 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 @@ -47,6 +47,7 @@ import rpc.protocols.ArenaInfoProto; import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; import rpc.protocols.MessageTypeProto; +import rpc.world.WorldProto; import util.MathUtils; import util.StringUtil; import util.TimeUtils; @@ -68,7 +69,7 @@ public class ArenaLogic { public static ArenaLogic getInstance() { return ArenaLogic.Instance.instance; } - + private int curSeason; private int viewSeason; @@ -607,7 +608,7 @@ public class ArenaLogic { } return ""; } - + public void updateArenaSeason(int curSeason){ this.curSeason = curSeason; //初始化竞技场新周期数据 @@ -700,6 +701,10 @@ public class ArenaLogic { private void b2r(){ if(state != RELAX_STATE){ if(state==BATTLE_STATE){ + Map sessionMap = OnlineUserManager.sessionMap; + for(Map.Entry entry:sessionMap.entrySet()){ + MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true); + } LOGGER.info("罗浮争锋,发奖"); int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); if(crossGroup==-1){ @@ -734,13 +739,14 @@ public class ArenaLogic { } try { - MongoUtil.getInstence().lastUpdate(); + MongoUtil.getLjsdMongoTemplate().lastUpdate(); } catch (Exception e) { e.printStackTrace(); } } LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",state); setState(RELAX_STATE); + } } @@ -760,6 +766,10 @@ public class ArenaLogic { return; } initRank(); + Map sessionMap = OnlineUserManager.sessionMap; + for(Map.Entry entry:sessionMap.entrySet()){ + MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true); + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index 634aa80f6..ab06fda14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -65,6 +65,7 @@ public class CrossArenaRank extends AbstractRank { .setLevel(100) .setUserSkin(80012) .setRankInfo(everyRankInfo) + .setServerName(CrossServiceLogic.getInstance().findServerName(mapEntry.getServerID())) .setSex(0); builder.addRanks(everyRank); }else{ @@ -84,6 +85,7 @@ public class CrossArenaRank extends AbstractRank { .setRankInfo(everyRankInfo) .setForce(query.getHeroManager().getTotalForce()) .setPracticeLevel(query.getPlayerManager().getPracticeLevel()) + .setServerName(query.getPlayerManager().getServerName()) .setSex(0); builder.addRanks(everyRank); }