From afd6cc17360458df10f03e0662143a1d9a748d53 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 25 Apr 2024 19:35:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=AB=9E=E6=8A=80=E5=9C=BA=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=8C=B9=E9=85=8D=E6=9C=BA=E5=99=A8=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SArenaRobotStaticConfig.java | 111 ++----- .../com/ljsd/jieling/db/redis/RedisKey.java | 1 + .../handler/arena/ArenaRandomHandler.java | 44 +-- .../logic/activity/ActivityTypeEnum.java | 2 +- .../logic/activity/ArenaRankActivity.java | 76 ++--- .../OpenServerCompeteRankActivity.java | 2 +- .../ljsd/jieling/logic/arena/ArenaLogic.java | 300 +++++++++--------- .../logic/arena/CrossYuxulundaoLogic.java | 75 +++-- .../logic/championship/ChampionshipLogic.java | 7 +- .../ljsd/jieling/logic/dao/ArenaManager.java | 85 ----- .../ljsd/jieling/logic/hero/HeroLogic.java | 2 +- .../jieling/logic/player/PlayerLogic.java | 31 +- .../com/ljsd/jieling/logic/rank/RankEnum.java | 2 +- 13 files changed, 307 insertions(+), 431 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java index db8ec129b..e53027237 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java @@ -14,7 +14,7 @@ import util.MathUtils; import java.util.*; public class SArenaRobotStaticConfig extends AbstractClassStaticConfig { - private static TreeMap> force2robotId; + private static TreeMap> force2robotId; @Override public void registConfigs(Set registConfigs) { registConfigs.add(SArenaRobotConfig.class.getAnnotation(Table.class).name()); @@ -26,90 +26,15 @@ public class SArenaRobotStaticConfig extends AbstractClassStaticConfig { Map integerSArenaRobotConfigMap = SArenaRobotConfig.getsArenaRobotConfigMap(); for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){ - List heroList = sArenaRobotConfig.getHeroList(); - List heroList2 = sArenaRobotConfig.getHeroList2(); - List heroList3= sArenaRobotConfig.getHeroList3(); int heroLevel = sArenaRobotConfig.getRoleLv(); - - Map heroMap = new HashMap<>(); - for(Integer heroTid :heroList){ - SCHero scHero = SCHero.getsCHero().get(heroTid); - if(null ==scHero){ - throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid); - } - - CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(); - - int star = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel); - int heroStarBreakId = HeroLogic.getInstance().calRobotStarBreakByLevel(heroTid,heroLevel); - int heroBreakId = HeroLogic.getInstance().calRobotBreakByLevel(heroTid,heroLevel); - - heroBuilder.setId(String.valueOf(scHero.getId())); - heroBuilder.setHeroId(scHero.getId()); - heroBuilder.setLevel(heroLevel); - heroBuilder.setStar(star); - heroBuilder.setStarBreakId(heroStarBreakId); - heroBuilder.setBreakId(heroBreakId); - heroBuilder.setPropertyId(scHero.getPropertyName()); - heroMap.put(heroTid,heroBuilder.build()); - } - sArenaRobotConfig.setHeroMapList(heroMap); - - Map heroMap2 = new HashMap<>(); - for(Integer heroTid :heroList2){ - SCHero scHero = SCHero.getsCHero().get(heroTid); - if(null ==scHero){ - throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid); - } - - CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(); - - int star = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel); - int heroStarBreakId = HeroLogic.getInstance().calRobotStarBreakByLevel(heroTid,heroLevel); - int heroBreakId = HeroLogic.getInstance().calRobotBreakByLevel(heroTid,heroLevel); - - heroBuilder.setId(String.valueOf(scHero.getId())); - heroBuilder.setHeroId(scHero.getId()); - heroBuilder.setLevel(heroLevel); - heroBuilder.setStar(star); - heroBuilder.setStarBreakId(heroStarBreakId); - heroBuilder.setBreakId(heroBreakId); - heroBuilder.setPropertyId(scHero.getPropertyName()); - heroMap2.put(heroTid,heroBuilder.build()); - } - sArenaRobotConfig.setHeroMapList2(heroMap2); - Map heroMap3 = new HashMap<>(); - for(Integer heroTid :heroList3){ - SCHero scHero = SCHero.getsCHero().get(heroTid); - if(null ==scHero){ - throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid); - } - - CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(); - - int star = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel); - int heroStarBreakId = HeroLogic.getInstance().calRobotStarBreakByLevel(heroTid,heroLevel); - int heroBreakId = HeroLogic.getInstance().calRobotBreakByLevel(heroTid,heroLevel); - - heroBuilder.setId(String.valueOf(scHero.getId())); - heroBuilder.setHeroId(scHero.getId()); - heroBuilder.setLevel(heroLevel); - heroBuilder.setStar(star); - heroBuilder.setStarBreakId(heroStarBreakId); - heroBuilder.setBreakId(heroBreakId); - heroBuilder.setPropertyId(scHero.getPropertyName()); - heroMap3.put(heroTid,heroBuilder.build()); - } - sArenaRobotConfig.setHeroMapList3(heroMap3); + sArenaRobotConfig.setHeroMapList(buildHeroProtoMap(sArenaRobotConfig, sArenaRobotConfig.getHeroList(), heroLevel)); + sArenaRobotConfig.setHeroMapList2(buildHeroProtoMap(sArenaRobotConfig, sArenaRobotConfig.getHeroList2(), heroLevel)); + sArenaRobotConfig.setHeroMapList3(buildHeroProtoMap(sArenaRobotConfig, sArenaRobotConfig.getHeroList3(), heroLevel)); int totleForce = HeroLogic.getInstance().calRobotTotalForce(sArenaRobotConfig); sArenaRobotConfig.setTotalForce(totleForce); int totleYxldForce = HeroLogic.getInstance().calRobotYxldTotalForce(sArenaRobotConfig); sArenaRobotConfig.setYxldTotalForce(totleYxldForce); - LinkedList integers = force2robotId.get(totleForce); - if(integers==null){ - integers =new LinkedList<>(); - force2robotId.put(totleForce,integers); - } + LinkedList integers = force2robotId.computeIfAbsent(totleForce, k -> new LinkedList<>()); integers.add(sArenaRobotConfig.getId()); force2robotId.put(totleForce,integers); } @@ -126,6 +51,32 @@ public class SArenaRobotStaticConfig extends AbstractClassStaticConfig { } } + public Map buildHeroProtoMap(SArenaRobotConfig sArenaRobotConfig, List heroList3, int heroLevel) { + Map heroMap = new HashMap<>(); + for(Integer heroTid : heroList3){ + SCHero scHero = SCHero.getsCHero().get(heroTid); + if(null ==scHero){ + throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid); + } + + CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(); + + int star = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel); + int heroStarBreakId = HeroLogic.getInstance().calRobotStarBreakByLevel(heroTid,heroLevel); + int heroBreakId = HeroLogic.getInstance().calRobotBreakByLevel(heroTid,heroLevel); + + heroBuilder.setId(String.valueOf(scHero.getId())); + heroBuilder.setHeroId(scHero.getId()); + heroBuilder.setLevel(heroLevel); + heroBuilder.setStar(star); + heroBuilder.setStarBreakId(heroStarBreakId); + heroBuilder.setBreakId(heroBreakId); + heroBuilder.setPropertyId(scHero.getPropertyName()); + heroMap.put(heroTid,heroBuilder.build()); + } + return heroMap; + } + public static Integer getFloorForce2robotId(int force) { Map.Entry> entry = force2robotId.ceilingEntry(force); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index f9600b4e3..b0473c13a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -388,6 +388,7 @@ public class RedisKey { public static final String NEW_ARENA_RANK = "NEW_ARENA_RANK"; //新竞技场排行榜 public static final String NEW_ARENA_PLAYER = "NEW_ARENA_PLAYER";//新竞技场玩家信息 public static final String NEW_ARENA_RESET = "NEW_ARENA_RESET";//新竞技场重置标记 + public static final String NEW_ARENA_REFRESH_FIRST_MARK = "NEW_ARENA_REFRESH_FIRST_MARK";//新竞技场第一次匹配标记 // public static final String NEW_ARENA_FIRST_PUSH = "NEW_ARENA_FIRST_PUSH";//竞技场第一名推送标记 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaRandomHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaRandomHandler.java index e8f092c41..a9bf85937 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaRandomHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaRandomHandler.java @@ -27,27 +27,27 @@ public class ArenaRandomHandler extends BaseHandler { @Override public void process(ISession session, PacketNetData netData) throws Exception { - int curSeason =ArenaLogic.getInstance().getCurSeason(); - if(curSeason == 0){ - throw new ErrorCodeException(ErrorCode.newDefineCode("season_close")); - } - int uid = session.getUid(); - SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting(); - if(sArenaSetting == null){ - throw new ErrorCodeException(ErrorCode.CFG_NULL); - } - User user = UserManager.getUser(uid); - ArenaManager arenaManager = user.getArenaManager(); - int flushEnenyTime = arenaManager.getFlushTime(); - int coldTime = sArenaSetting.getColdTime(); - int now = (int)(TimeUtils.now()/1000); - if( now - flushEnenyTime < coldTime-1 ){ - throw new ErrorCodeException(ErrorCode.ARENA_RANDOM_ENEMY_CODE_TIME); - } - //刷新选手 - ArenaLogic.getInstance().setMyArenaEnemys(uid,user); - arenaManager.setFlushTime(now); - ArenaInfoProto.ArenaRandomResponse build = ArenaInfoProto.ArenaRandomResponse.newBuilder().addAllArenaEnemys(ArenaLogic.getInstance().getArenaEnemyList(arenaManager.getArenaEnemies())).build(); - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_RANDOM_ENEMY_RESPONSE_VALUE,build,true); +// int curSeason =ArenaLogic.getInstance().getCurSeason(); +// if(curSeason == 0){ +// throw new ErrorCodeException(ErrorCode.newDefineCode("season_close")); +// } +// int uid = session.getUid(); +// SArenaSetting sArenaSetting = SArenaSetting.getSArenaSetting(); +// if(sArenaSetting == null){ +// throw new ErrorCodeException(ErrorCode.CFG_NULL); +// } +// User user = UserManager.getUser(uid); +// ArenaManager arenaManager = user.getArenaManager(); +// int flushEnenyTime = arenaManager.getFlushTime(); +// int coldTime = sArenaSetting.getColdTime(); +// int now = TimeUtils.nowInt(); +// if(now - flushEnenyTime < coldTime - 1){ +// throw new ErrorCodeException(ErrorCode.ARENA_RANDOM_ENEMY_CODE_TIME); +// } +// //刷新选手 +// ArenaLogic.getInstance().setMyArenaEnemys(uid,user); +// arenaManager.setFlushTime(now); +// ArenaInfoProto.ArenaRandomResponse build = ArenaInfoProto.ArenaRandomResponse.newBuilder().addAllArenaEnemys(ArenaLogic.getInstance().getArenaEnemyList(arenaManager.getArenaEnemies())).build(); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_RANDOM_ENEMY_RESPONSE_VALUE,null,true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index 654ec2806..18ea1f93f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -95,7 +95,7 @@ public enum ActivityTypeEnum { CONTINUOUS_GIFT(ActivityType.CONTINUOUS_GIFT,SuperBoxActivity::new),//连续礼包 TRANSFORMATION_DRAW_CARD(ActivityType.TRANSFORMATION_DRAW_CARD,DefaultEmptyActivity::new),//方寸寻宝 CONTINUOUS_GIFT_NEW(ActivityType.CONTINUOUS_GIFT_NEW,ContinuousGiftActivity::new),//新连续礼包 - ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼 +// ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼 NEW_RECHARGE_SUM_DAY_6(ActivityType.NEW_RECHARGE_SUM_DAY_6,NewRechargeSumDayActivity::new),//超值返利6 NEW_RECHARGE_SUM_DAY_12(ActivityType.NEW_RECHARGE_SUM_DAY_12,NewRechargeSumDayActivity::new),//超值返利12 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java index fe6fdb00b..fe9aeddd1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ArenaRankActivity.java @@ -55,44 +55,44 @@ public class ArenaRankActivity extends AbstractActivity { @Override public void onActivityEnd() throws Exception { - LOGGER.info("竞技试炼发奖励 onActivityEnd...{}", id); - ThreadManager.scheduleOne(this::sendReward,0, TimeUnit.NANOSECONDS); +// LOGGER.info("竞技试炼发奖励 onActivityEnd...{}", id); +// ThreadManager.scheduleOne(this::sendReward,0, TimeUnit.NANOSECONDS); } - private void sendReward(){ - Thread.currentThread().setName("sendReward-Activity-"+id); - List sActivityRankingRewards = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); - if (sActivityRankingRewards == null || sActivityRankingRewards.isEmpty()) { - LOGGER.info("竞技试炼未配置奖励 onActivityEnd...{}", id); - return; - } - int curSeason = ArenaLogic.getInstance().getCurSeason(); - Set> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK, Integer.toString(curSeason), 0, -1); - int rank = 1; - int nowTime = (int) (TimeUtils.now() / 1000); - String title = SErrorCodeEerverConfig.getI18NMessage("arena_activity_mail_title"); - for (ZSetOperations.TypedTuple item : arenaRankInfo) { - String value = item.getValue(); - int uid = Integer.parseInt(value); - User user = UserManager.getUserNotCache(uid); - String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("arena_activity_mail_txt", new Object[]{rank}, new int[0], "#"); - int[][] rewardByRank = null; - for (SActivityRankingReward sActivityRankingReward : sActivityRankingRewards) { - if (sActivityRankingReward.getMinRank() >= rank && rank <= sActivityRankingReward.getMaxRank()) { - rewardByRank = sActivityRankingReward.getRankingReward(); - break; - } - } - if (rewardByRank == null) { - break; - } - MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardByRank), nowTime, Global.MAIL_EFFECTIVE_TIME); - rank++; - } - try { - MongoUtil.getInstence().lastUpdate(); - } catch (Exception e) { - e.printStackTrace(); - } - } +// private void sendReward(){ +// Thread.currentThread().setName("sendReward-Activity-"+id); +// List sActivityRankingRewards = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); +// if (sActivityRankingRewards == null || sActivityRankingRewards.isEmpty()) { +// LOGGER.info("竞技试炼未配置奖励 onActivityEnd...{}", id); +// return; +// } +// int curSeason = ArenaLogic.getInstance().getCurSeason(); +// Set> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK, Integer.toString(curSeason), 0, -1); +// int rank = 1; +// int nowTime = (int) (TimeUtils.now() / 1000); +// String title = SErrorCodeEerverConfig.getI18NMessage("arena_activity_mail_title"); +// for (ZSetOperations.TypedTuple item : arenaRankInfo) { +// String value = item.getValue(); +// int uid = Integer.parseInt(value); +// User user = UserManager.getUserNotCache(uid); +// String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("arena_activity_mail_txt", new Object[]{rank}, new int[0], "#"); +// int[][] rewardByRank = null; +// for (SActivityRankingReward sActivityRankingReward : sActivityRankingRewards) { +// if (sActivityRankingReward.getMinRank() >= rank && rank <= sActivityRankingReward.getMaxRank()) { +// rewardByRank = sActivityRankingReward.getRankingReward(); +// break; +// } +// } +// if (rewardByRank == null) { +// break; +// } +// MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardByRank), nowTime, Global.MAIL_EFFECTIVE_TIME); +// rank++; +// } +// try { +// MongoUtil.getInstence().lastUpdate(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java index ee857880b..b8fc14055 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/OpenServerCompeteRankActivity.java @@ -250,7 +250,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity { backRankType = chongRankInfo.getBackRankType(); AbstractRank backRank = RankContext.getRankEnum(backRankType); Set> backRankInfo = backRank.getRankByKey("", 0, -1); - if (backRankInfo != null && backRankInfo.size() > 0){ + if (backRankInfo != null && !backRankInfo.isEmpty()){ LOGGER.info("冲榜备份结束,备份数据已存在,活动id:{},排行榜类型:{},排行榜数量:{}",id,backRankType,backRankInfo.size()); return null; } 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 da08ba3f5..ca7b20523 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 @@ -5,7 +5,6 @@ import com.ljsd.fight.ArenaRecord; import com.ljsd.fight.FightType; import com.ljsd.jieling.config.clazzStaticCfg.SArenaRobotStaticConfig; import com.ljsd.jieling.core.FunctionIdEnum; -import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; @@ -87,19 +86,19 @@ public class ArenaLogic { return viewSeason; } - public List getArenaEnemyList(List arenaEnemies) { - List arenaEnemyList = new ArrayList<>(arenaEnemies.size()); - for (ArenaEnemy arenaEnemy : arenaEnemies) { - int enemyId = arenaEnemy.getEnemyId(); - int enemyType = arenaEnemy.getEnemyType(); - try { - arenaEnemyList.add(getArenaEnemy(enemyId, enemyType)); - } catch (Exception e) { - LOGGER.error("竞技场报错:{}",e.getMessage()); - } - } - return arenaEnemyList; - } +// public List getArenaEnemyList(List arenaEnemies) { +// List arenaEnemyList = new ArrayList<>(arenaEnemies.size()); +// for (ArenaEnemy arenaEnemy : arenaEnemies) { +// int enemyId = arenaEnemy.getEnemyId(); +// int enemyType = arenaEnemy.getEnemyType(); +// try { +// arenaEnemyList.add(getArenaEnemy(enemyId, enemyType)); +// } catch (Exception e) { +// LOGGER.error("竞技场报错:{}",e.getMessage()); +// } +// } +// return arenaEnemyList; +// } public CommonProto.ArenaEnemy getArenaEnemy(int enemyId, int enemyType) throws Exception { if (enemyType == 0) { //机器人 @@ -120,12 +119,7 @@ public class ArenaLogic { User user = UserManager.getUser(enemyId); long totalForce = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.TEAM_ARENA_DEFENSE.getTeamId()); List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.TEAM_ARENA_DEFENSE.getTeamId()); - Map heroMap = user.getHeroManager().getHeroMap(); - List heroTids = new ArrayList<>(teamPosHeroInfoList.size()); - for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) { - heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId()); - } - CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(heroTids).build(); + CommonProto.Team teamBuild = buildTeam(user, teamPosHeroInfoList); PlayerManager playerInfoManager = user.getPlayerInfoManager(); long score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason), Integer.toString(enemyId)).longValue(); if (score == -1) { @@ -147,36 +141,45 @@ public class ArenaLogic { } } - public void setMyArenaEnemys(int uid, User user) { - int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason), Integer.toString(uid)).intValue(); - if (score == -1) { - score = SArenaSetting.getSArenaSetting().getScore(); + public static CommonProto.Team buildTeam(User user, List teamPosHeroInfoList) { + Map heroMap = user.getHeroManager().getHeroMap(); + List heroTids = new ArrayList<>(teamPosHeroInfoList.size()); + for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) { + heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId()); } - ArenaManager arenaManager = user.getArenaManager(); - List arenaEnemies = new ArrayList<>(); - if (curSeason == 1 && arenaManager.getFlushNums() < SArenaSetting.getSArenaSetting().getPveNum()) { - Set robotIds = randomRobot(score, 5); - toArenaEnemy(uid, robotIds, arenaEnemies, GlobalsDef.ARENA_ROBOT_TYPE); - } else { - Set robotIds = randomPerson(uid, score, true); - int type = GlobalsDef.ARENA_PLAYER_TYPE; - toArenaEnemy(uid, robotIds, arenaEnemies, type); - if (robotIds.isEmpty()) { - if (curSeason > 1) { - robotIds = randomPerson(uid, score, false); - } - toArenaEnemy(uid, robotIds, arenaEnemies, type); - } - int size = robotIds.size(); - if (size < 5) { - robotIds = randomRobot(score, 5 - size); - type = GlobalsDef.ARENA_ROBOT_TYPE; - toArenaEnemy(uid, robotIds, arenaEnemies, type); - } - } - arenaManager.setArenaEnemies(arenaEnemies); + return CommonProto.Team.newBuilder().addAllHeroTid(heroTids).build(); } +// public void setMyArenaEnemys(int uid, User user) { +// int score = RedisUtil.getInstence().getZSetScore(RedisKey.ARENA_RANK, Integer.toString(curSeason), Integer.toString(uid)).intValue(); +// if (score == -1) { +// score = SArenaSetting.getSArenaSetting().getScore(); +// } +// ArenaManager arenaManager = user.getArenaManager(); +// List arenaEnemies = new ArrayList<>(); +// if (curSeason == 1 && arenaManager.getFlushNums() < SArenaSetting.getSArenaSetting().getPveNum()) { +// Set robotIds = randomRobot(score, 5); +// toArenaEnemy(uid, robotIds, arenaEnemies, GlobalsDef.ARENA_ROBOT_TYPE); +// } else { +// Set robotIds = randomPerson(uid, score, true); +// int type = GlobalsDef.ARENA_PLAYER_TYPE; +// toArenaEnemy(uid, robotIds, arenaEnemies, type); +// if (robotIds.isEmpty()) { +// if (curSeason > 1) { +// robotIds = randomPerson(uid, score, false); +// } +// toArenaEnemy(uid, robotIds, arenaEnemies, type); +// } +// int size = robotIds.size(); +// if (size < 5) { +// robotIds = randomRobot(score, 5 - size); +// type = GlobalsDef.ARENA_ROBOT_TYPE; +// toArenaEnemy(uid, robotIds, arenaEnemies, type); +// } +// } +// arenaManager.setArenaEnemies(arenaEnemies); +// } + /** * 和竞技场真人对战结果 @@ -249,51 +252,51 @@ public class ArenaLogic { /** * 随机竞技场玩家,老方法 */ - public Set randomPerson(int uid, int myScore, boolean useCurSeason) { - Set result = new HashSet<>(5); - int[][] interval = SArenaSetting.getSArenaSetting().getInterval(); - int matchSeason = curSeason; - if (!useCurSeason) { - matchSeason = curSeason - 1; - } - for (int[] item : interval) { - int low = item[0]; - int high = item[1]; - Set arenaRank = RedisUtil.getInstence().getZsetRange(RedisKey.ARENA_RANK, Integer.toString(matchSeason), myScore * low / 10000.0f - 1, myScore * high / 10000.0f + 1); - LOGGER.info("curSeason={},matchSeason={},the uid={},the myscore={},the low={},the high={},mylow={},myhigh={},", curSeason, matchSeason, uid, myScore, low, high, myScore * low / 10000.0f - 1, myScore * high / 10000.0f + 1); - if (arenaRank != null && !arenaRank.isEmpty()) { - arenaRank.remove(Integer.toString(uid)); - String s = randomSet(arenaRank); - if (!StringUtil.isEmpty(s)) { - result.add(Integer.parseInt(s)); - } - } - } - return result; - } +// public Set randomPerson(int uid, int myScore, boolean useCurSeason) { +// Set result = new HashSet<>(5); +// int[][] interval = SArenaSetting.getSArenaSetting().getInterval(); +// int matchSeason = curSeason; +// if (!useCurSeason) { +// matchSeason = curSeason - 1; +// } +// for (int[] item : interval) { +// int low = item[0]; +// int high = item[1]; +// Set arenaRank = RedisUtil.getInstence().getZsetRange(RedisKey.ARENA_RANK, Integer.toString(matchSeason), myScore * low / 10000.0f - 1, myScore * high / 10000.0f + 1); +// LOGGER.info("curSeason={},matchSeason={},the uid={},the myscore={},the low={},the high={},mylow={},myhigh={},", curSeason, matchSeason, uid, myScore, low, high, myScore * low / 10000.0f - 1, myScore * high / 10000.0f + 1); +// if (arenaRank != null && !arenaRank.isEmpty()) { +// arenaRank.remove(Integer.toString(uid)); +// String s = randomSet(arenaRank); +// if (!StringUtil.isEmpty(s)) { +// result.add(Integer.parseInt(s)); +// } +// } +// } +// return result; +// } - private String randomSet(Set infos) { - if (infos == null || infos.isEmpty()) { - return null; - } - int num = MathUtils.randomInt(infos.size()); - for (String id : infos) { - if (num-- == 0) { - return id; - } - } - return null; - - } - - public void toArenaEnemy(int uid, Set enemyList, List arenaEnemies, int type) { - for (Integer enemyId : enemyList) { - if (1 == type && enemyId == uid) { - continue; - } - arenaEnemies.add(new ArenaEnemy(enemyId, type, type)); - } - } +// private String randomSet(Set infos) { +// if (infos == null || infos.isEmpty()) { +// return null; +// } +// int num = MathUtils.randomInt(infos.size()); +// for (String id : infos) { +// if (num-- == 0) { +// return id; +// } +// } +// return null; +// +// } +// +// public void toArenaEnemy(int uid, Set enemyList, List arenaEnemies, int type) { +// for (Integer enemyId : enemyList) { +// if (1 == type && enemyId == uid) { +// continue; +// } +// arenaEnemies.add(new ArenaEnemy(enemyId, type, type)); +// } +// } // public void getWorldRankByPage(ISession session, int page) { @@ -924,8 +927,6 @@ public class ArenaLogic { // ************************************** 新竞技场逻辑 ************************************** // - public static final String FIRST_PUSH = "first"; - /** * 获取竞技场信息 * @param session 用户session @@ -1027,68 +1028,35 @@ public class ArenaLogic { int size = 4; Map result = new LimitedSizeMap<>(size); + // 每個人第一次初始化機器人 + String markKey = RedisKey.NEW_ARENA_REFRESH_FIRST_MARK + ":" + user.getId(); + String firstMark = redisUtil.getObject(markKey, String.class); + if (firstMark == null){ + refreshRobotList(score, size, result); + redisUtil.set(markKey, "1"); + } + SArenaSetting arenaSetting = SArenaSetting.getSArenaSetting(); int[][] interval = arenaSetting.getInterval(); // 读取配置走正常区间分配 - for (int[] limit : interval) { - // 获取匹配积分区间的最大值和最小值 - double low = score * limit[0] / 10000.0f - 1; - double high = score * limit[1] / 10000.0f + 1; - Set range = redisUtil.getZsetRangeOrigin(key, low, high); - if (range == null || range.isEmpty()){ - continue; - } - List list = new ArrayList<>(range); - Collections.shuffle(list); - for (String id : list) { - int uid = Integer.parseInt(id); - if (uid == user.getId() || result.containsKey(uid)){ - continue; - } - CommonProto.ArenaPersonInfo personInfo = CBean2Proto.getNewArenaPlayerProto(uid, roomId); - if (personInfo == null){ - continue; - } - result.put(uid, personInfo); - if (result.size() == size){ - break; - } + if (result.size() < size){ + for (int[] limit : interval) { + // 获取匹配积分区间的最大值和最小值 + double low = score * limit[0] / 10000.0f - 1; + double high = score * limit[1] / 10000.0f + 1; + Set range = redisUtil.getZsetRangeOrigin(key, low, high); + refreshPersonList(user.getId(), size, roomId, range, result); } } // 长度不足,走顺位排名 if (result.size() < size){ int end = ranking + size; Set zset = redisUtil.getReverseZset(key, ranking, end); - if (zset != null && !zset.isEmpty()){ - for (String id : zset) { - int uid = Integer.parseInt(id); - if (uid == user.getId() || result.containsKey(uid)){ - continue; - } - CommonProto.ArenaPersonInfo personInfo = CBean2Proto.getNewArenaPlayerProto(uid, roomId); - if (personInfo == null){ - continue; - } - result.put(uid, personInfo); - if (result.size() == size){ - break; - } - } - } + refreshPersonList(user.getId(), size, roomId, zset, result); } // 长度不足,走机器人表 if (result.size() < size){ - Set robotIds = randomRobot(score, size); - for (Integer robotId : robotIds) { - CommonProto.ArenaPersonInfo personInfo = CBean2Proto.getNewArenaRobotProto(robotId); - if (personInfo == null){ - continue; - } - result.put(robotId, personInfo); - if (result.size() == size){ - break; - } - } + refreshRobotList(score, size, result); } ArrayList personInfos = new ArrayList<>(result.values()); @@ -1097,6 +1065,42 @@ public class ArenaLogic { return personInfos; } + public void refreshRobotList(long score, int size, Map result) { + Set robotIds = randomRobot(score, size); + for (Integer robotId : robotIds) { + CommonProto.ArenaPersonInfo personInfo = CBean2Proto.getNewArenaRobotProto(robotId); + if (personInfo == null){ + continue; + } + result.put(robotId, personInfo); + if (result.size() == size){ + break; + } + } + } + + public void refreshPersonList(int userId, int size, int roomId, Set set, Map result){ + if (set == null || set.isEmpty()){ + return; + } + ArrayList list = new ArrayList<>(set); + Collections.shuffle(list); + for (String id : list) { + int uid = Integer.parseInt(id); + if (uid == userId || result.containsKey(uid)){ + continue; + } + CommonProto.ArenaPersonInfo personInfo = CBean2Proto.getNewArenaPlayerProto(uid, roomId); + if (personInfo == null){ + continue; + } + result.put(uid, personInfo); + if (result.size() == size){ + break; + } + } + } + /** * 结算上赛季竞技场 * @param session 用户session @@ -1479,11 +1483,11 @@ public class ArenaLogic { NewArenaRank rank = (NewArenaRank) RankEnum.toRank(RankEnum.NEW_ARENA_RANK.getType()); String title = SErrorCodeEerverConfig.getI18NMessage("arena_season_reward_title"); // 最高场房间id - int maxHighRoomId = SArenaRoom.getMaxHighRoomId(); +// int maxHighRoomId = SArenaRoom.getMaxHighRoomId(); for (Integer roomId : crossRooms) { String roomName = SArenaRoom.getRoomName(roomId); int ranking = 1; - int firstUid = 0; +// int firstUid = 0; Set> allRank = rank.getAllRank(roomId); if (allRank == null){ LOGGER.error("高级竞技场赛季发奖退出,找不到房间排行榜,roomId:{}",roomId); @@ -1505,9 +1509,9 @@ public class ArenaLogic { // 重置标记,发送段位分 setNewArenaResetMark(uid, roomId, ranking); // 获取第一名的uid - if (ranking == 1){ - firstUid = uid; - } +// if (ranking == 1){ +// firstUid = uid; +// } }catch (Exception e){ LOGGER.error("高级竞技场赛季发奖报错,已跳过玩家:{},排名:{},错误:{}",value,ranking,e.getMessage()); e.printStackTrace(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java index 11c95dadd..f42857739 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java @@ -139,48 +139,47 @@ public class CrossYuxulundaoLogic { /** * 赛季段位重置 发奖 */ - public void resetSeason(User user) { - PlayerManager player = user.getPlayerInfoManager(); - - } - - public void setMatchRivals(User user) { - int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); - if (crossGroup == -1) { - return; - } - Set robotIds = new HashSet<>(5); - PlayerManager player = user.getPlayerInfoManager(); - ArenaManager arenaManager = user.getArenaManager(); - int curLevel = arenaManager.getCrossYuxulundaoNewLevelId();//当前段位 - List arenaEnemies = new ArrayList<>(); //得存储 - - - Map robotConfigMap = STableManager.getConfig(SMServerRankConfig.class); - if (!robotConfigMap.containsKey(curLevel)) { - return; - } - int[] timePool = robotConfigMap.get(curLevel).getFitRobotPool(); - if (arenaManager.getCrossMatchTimes() < timePool[0]) { - //匹配机器人 - List robotConfig = STableManager.getConfig(SArenaRobotConfig.class).values().stream().filter(n -> n.getPoolId() == timePool[1]).collect(Collectors.toList()); - Collections.shuffle(robotConfig); - robotConfig.subList(0, robotIds.size()).forEach(n -> robotIds.add(n.getId())); - for (int robot : robotIds) { - arenaEnemies.add(new ArenaEnemy(robot, 1, 0)); - } - arenaManager.setCrossMatchTimes(arenaManager.getCrossMatchTimes() + 1); - arenaManager.setArenaEnemies(arenaEnemies); - } else { - //TODO 次数超过后怎么匹配真人 真人不足怎么办 匹配真人的规则 - } - - } +// public void resetSeason(User user) { +// PlayerManager player = user.getPlayerInfoManager(); +// +// } +// +// public void setMatchRivals(User user) { +// int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); +// if (crossGroup == -1) { +// return; +// } +// Set robotIds = new HashSet<>(5); +// ArenaManager arenaManager = user.getArenaManager(); +// int curLevel = arenaManager.getCrossYuxulundaoNewLevelId();//当前段位 +// List arenaEnemies = new ArrayList<>(); //得存储 +// +// +// Map robotConfigMap = STableManager.getConfig(SMServerRankConfig.class); +// if (!robotConfigMap.containsKey(curLevel)) { +// return; +// } +// int[] timePool = robotConfigMap.get(curLevel).getFitRobotPool(); +// if (arenaManager.getCrossMatchTimes() < timePool[0]) { +// //匹配机器人 +// List robotConfig = STableManager.getConfig(SArenaRobotConfig.class).values().stream().filter(n -> n.getPoolId() == timePool[1]).collect(Collectors.toList()); +// Collections.shuffle(robotConfig); +// robotConfig.subList(0, robotIds.size()).forEach(n -> robotIds.add(n.getId())); +// for (int robot : robotIds) { +// arenaEnemies.add(new ArenaEnemy(robot, 1, 0)); +// } +// arenaManager.setCrossMatchTimes(arenaManager.getCrossMatchTimes() + 1); +// arenaManager.setArenaEnemies(arenaEnemies); +// } else { +// //TODO 次数超过后怎么匹配真人 真人不足怎么办 匹配真人的规则 +// } +// +// } /** * 匹配实力相近队手 */ - public void matchRivals(User user) throws Exception { + public void matchRivals(User user) { int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); if (crossGroup == -1) { return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index e19c72e0c..354c5cbe0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -1166,12 +1166,7 @@ public class ChampionshipLogic { long totalForce = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CHAMPION_TEAM.getTeamId()); if (type == 0) { List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(TeamEnum.CHAMPION_TEAM.getTeamId()); - Map heroMap = user.getHeroManager().getHeroMap(); - List heroTids = new ArrayList<>(teamPosHeroInfoList.size()); - for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList) { - heroTids.add(heroMap.get(teamPosHeroInfo.getHeroId()).getTemplateId()); - } - CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(heroTids).build(); + CommonProto.Team teamBuild = ArenaLogic.buildTeam(user, teamPosHeroInfoList); builder.setTeam(teamBuild); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java index 5066c3d17..98cee0135 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java @@ -6,15 +6,8 @@ import java.util.*; public class ArenaManager extends MongoBase { - - private int failNums; //失败次数 - private int successNums; //胜利次数 - private int count; //进攻次数 - private int flushTime; //刷新时间 private int topMaxRank=0; // 我的历史最高排名 - public int worldFreeChallengeTime=0; public int costDallyTime=0; - private List arenaEnemies; private List crossYuxulundaoEnemies; //跨服 玉虚论道 @@ -61,71 +54,6 @@ public class ArenaManager extends MongoBase { return newArenaLvScore; } - public void updateChallenge(int fightResult){ - if(fightResult == 1){ - successNums ++; - updateString("successNums",successNums); - }else{ - failNums++; - updateString("failNums",failNums); - } - count++; - updateString("count",count); - } - - public int getFailNums() { - return failNums; - } - - public int getSuccessNums() { - return successNums; - } - - public int getCount() { - return count; - } - - public int getFlushTime() { - return flushTime; - } - - public List getArenaEnemies() { - return arenaEnemies; - } - - public void setArenaEnemies(List arenaEnemies) { - Collections.shuffle(arenaEnemies); - updateString("arenaEnemies",arenaEnemies); - this.arenaEnemies = arenaEnemies; - } - - public void setFlushTime(int flushTime) { - this.flushTime = flushTime; - updateString("flushTime",flushTime); - } - - public int getFlushNums() { - return 0; - } - - public int getSeason() { - return 0; - } - - - public void resetSeason(int curSeason) { - this.failNums =0; - this.successNums=0; - this.count=0; - this.flushTime=0; - - - updateString("failNums",failNums); - updateString("successNums",successNums); - updateString("count",count); - updateString("flushTime",flushTime); - } - public int getTopMaxRank() { return topMaxRank; } @@ -135,19 +63,6 @@ public class ArenaManager extends MongoBase { updateString("topMaxRank",topMaxRank); } - public List getHadTakeReward() { - return new LinkedList<>(); - } - - public int getWorldFreeChallengeTime() { - return worldFreeChallengeTime; - } - - public void setWorldFreeChallengeTime(int worldFreeChallengeTime) { - updateString("worldFreeChallengeTime",worldFreeChallengeTime); - this.worldFreeChallengeTime = worldFreeChallengeTime; - } - public int getCostDallyTime() { return costDallyTime; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index fae48024c..fe5889e14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -2529,7 +2529,7 @@ public class HeroLogic { } SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(templatePropetyId); if (sPropertyConfig.getIfFormula() == 1) { - sb.append(propertyValue * 0.1 / (sArenaRobotConfig.getRoleLv() + 10) / 100).append(DIVISION); + sb.append(propertyValue * 0.1 / (robotLevel + 10) / 100).append(DIVISION); } else { if (sPropertyConfig.getStyle() == GlobalsDef.PERCENT_TYPE) { sb.append(propertyValue / 10000f).append(DIVISION); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 8750e9009..eff09bec5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -792,25 +792,19 @@ public class PlayerLogic { CommonProto.TeamOneTeamInfo.Builder teamInfo = CommonProto.TeamOneTeamInfo.newBuilder(); if(id ==TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId()){ for(Map.Entry item : sArenaRobotConfig.getHeroMapList().entrySet()){ - Integer heroTid = item.getKey(); - int heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setPropertyId(item.getValue().getPropertyId()).setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); + position = getPosition(sArenaRobotConfig, position, teamInfo, item); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce1()); }else if(id ==TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId()){ for(Map.Entry item : sArenaRobotConfig.getHeroMapList2().entrySet()){ - Integer heroTid = item.getKey(); - int heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setPropertyId(item.getValue().getPropertyId()).setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); + position = getPosition(sArenaRobotConfig, position, teamInfo, item); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce2()); }else if(id ==TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId()){ for(Map.Entry item : sArenaRobotConfig.getHeroMapList3().entrySet()){ - Integer heroTid = item.getKey(); - int heroStar = item.getValue().getStar(); - teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setPropertyId(item.getValue().getPropertyId()).setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).setGodSoulLv(item.getValue().getGodSoulLv()).build()); + position = getPosition(sArenaRobotConfig, position, teamInfo, item); } teamInfo.setTotalForce(sArenaRobotConfig.getYxldTotalForce3()); } @@ -819,6 +813,22 @@ public class PlayerLogic { return oneInfo; } + public int getPosition(SArenaRobotConfig sArenaRobotConfig, int position, CommonProto.TeamOneTeamInfo.Builder teamInfo, Map.Entry item) { + Integer heroTid = item.getKey(); + CommonProto.Hero hero = item.getValue(); + CommonProto.TeamSimpleInfo build = CommonProto.TeamSimpleInfo.newBuilder() + .setPropertyId(hero.getPropertyId()) + .setHeroid(String.valueOf(heroTid)) + .setHeroTid(heroTid) + .setLevel(sArenaRobotConfig.getRoleLv()) + .setStar(hero.getStar()) + .setPosition(position++) + .setGodSoulLv(hero.getGodSoulLv()) + .build(); + teamInfo.addTeam(build); + return position; + } + //获取跨服玩家信息 public CommonProto.TeamOneInfo getCrossYxldMyTeamInfo(User user,List team) throws Exception{ CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(user.getId()); @@ -999,7 +1009,8 @@ public class PlayerLogic { builder.setForce(HeroLogic.getInstance().calForce(robotHeroAttribute)); if(teamId==TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId()){ builder.setHero(sArenaRobotConfig.getHeroMapList().get(scHero.getId())); - }else if(teamId==TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId()){ + } + else if(teamId==TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId()){ builder.setHero(sArenaRobotConfig.getHeroMapList2().get(scHero.getId())); } else if(teamId==TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java index 8963c6a86..88dc82cae 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java @@ -26,7 +26,7 @@ public enum RankEnum { EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new,false),// 达人排行榜 param1:活动进度 param2:无 param3:无 FORCE_CURR_RANK(22,RedisKey.FORCE_CURR_RANK,ForceCurrRank::new,false),//新战力排行榜 param1:人物战力 param2:无 param3:无 @Deprecated - ARENA_RANK(23,RedisKey.ARENA_RANK,ArenaRank::new,false),// 竞技场排行榜 param1:竞技场积分 param2:无 param3:无 +// ARENA_RANK(23,RedisKey.ARENA_RANK,ArenaRank::new,false),// 竞技场排行榜 param1:竞技场积分 param2:无 param3:无 SITUATION_RANK(24,RedisKey.SITUATION_RANK,SituationRank::new,false),//param1:通关次数 param2:无 param3:无 GUILD_CHALLENGE_RANK(26,RedisKey.GUILD_CHALLENGE_RANK,GuildChallengeRank::new,false),//param1:伤害 param2:无 param3:无 GUILD_SHEJI_SCORE_RANK(27,RedisKey.GUILD_SHEJI_SCORE_RANK,GuildSheJiScoreRank::new,false),//param1:公会社稷贡献 param2:无 param3:无