diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaChallengeHandler.java index f77a799d7..546d35cbc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/arena/ArenaChallengeHandler.java @@ -159,7 +159,7 @@ public class ArenaChallengeHandler extends BaseHandler heroEntry : heroManager.getEndlessHeroInfo().entrySet()) { - if (heroEntry.getValue().getLevel(user.getHeroManager()) < 20) { + if (heroEntry.getValue().getLevel() < 20) { continue; } if (endlessHeroInfo.get(heroEntry.getKey()) == null) { @@ -2744,7 +2744,7 @@ public class MapLogic { skinId = 0; skinTime = 0; } - TrailHero trailHero = new TrailHero(hero.getTemplateId(), HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, 0), hero.getStar(), heroSkill, hero.getLevel(user.getHeroManager()), hero.getGodSoulLv(),hero.getPropertyId()); + TrailHero trailHero = new TrailHero(hero.getTemplateId(), HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, 0), hero.getStar(), heroSkill, hero.getLevel(), hero.getGodSoulLv(),hero.getPropertyId()); trailHero.setSkinId(skinId); trailHero.setSkinTime(skinTime); trailHero.setPosition(saveHero.getPosition()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixsj.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixsj.java index 63023c136..697879a00 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixsj.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_fixsj.java @@ -63,7 +63,7 @@ public class Cmd_fixsj extends GmAbstract { if(entry.getValue().get(hero.getTemplateId())<1){ continue; } - if(hero.getLevel(heroManager)!=1){ + if(hero.getLevel()!=1){ continue; } if(hero.getStar()!= SCHero.getsCHero().get(hero.getTemplateId()).getStar()){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java index f1bc07c71..cc2653378 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java @@ -67,7 +67,7 @@ public class BloodLogic { } } int position = heroInfo.getPosition(); - heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(user.getHeroManager()),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv(),hero.getPropertyId())); + heroAllAttribute.put(heroInfo.getHeroId(), new FamilyHeroInfo(hero.getTemplateId(), hero.getLevel(),hero.getStar(), heroAttributeMap,position,hero.getGodSoulLv(),hero.getPropertyId())); } return heroAllAttribute; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index 7835a6eca..1af6aeb39 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -219,30 +219,36 @@ public class Hero extends MongoBase implements Comparable,Cloneable { /** * 获取等级,如果在鸿蒙阵中,需要返回鸿蒙等级 */ - public int getLevel(HeroManager heroManager) { - // 英雄 配置表信息 - SCHero scHero = SCHero.getsCHero().get(templateId); - int maxLevel = scHero.getMaxLevel(); + public int getLevel() { + try { + int rootId = getRootId(); + HeroManager heroManager = UserManager.getUser(rootId).getHeroManager(); + // 英雄 配置表信息 + SCHero scHero = SCHero.getsCHero().get(templateId); + int maxLevel = scHero.getMaxLevel(); - // 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级 - if (heroManager.getHongmengTablet() > 0) { - // 存在共鸣或者使者 - if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) { - // 鸿蒙碑超过等级上限,返回鸿蒙碑等级 - if (heroManager.getHongmengTablet() <= maxLevel) { - return heroManager.getHongmengTablet(); + // 如果鸿蒙碑开启 返回鸿蒙系统中神将返回鸿蒙碑等级 + if (heroManager.getHongmengTablet() > 0) { + // 存在共鸣或者使者 + if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) { + // 鸿蒙碑超过等级上限,返回鸿蒙碑等级 + if (heroManager.getHongmengTablet() <= maxLevel) { + return heroManager.getHongmengTablet(); + } + // 最高品质大于等于10的英雄,返回鸿蒙碑等级,否则返回上限等级 + return scHero.getMaxRank() >= 10 ? heroManager.getHongmengTablet() : maxLevel; } - // 最高品质大于等于10的英雄,返回鸿蒙碑等级,否则返回上限等级 - return scHero.getMaxRank() >= 10 ? heroManager.getHongmengTablet() : maxLevel; } - } - if (heroManager.getResonances().containsValue(id)) { - // 模板 - HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL); - if (hongMengAddAttribute != null) { - // 是否达到限制等级 - return Math.min(hongMengAddAttribute.value, maxLevel); + if (heroManager.getResonances().containsValue(id)) { + // 模板 + HongMengAddAttribute hongMengAddAttribute = heroManager.getResonanceAddition().get(HongMengAttributeEnum.LEVEL); + if (hongMengAddAttribute != null) { + // 是否达到限制等级 + return Math.min(hongMengAddAttribute.value, maxLevel); + } } + } catch (Exception e) { + LOGGER.error("获取鸿蒙阵等级报错:{}",e.getMessage()); } return level; } @@ -316,11 +322,11 @@ public class Hero extends MongoBase implements Comparable,Cloneable { // 英雄在共鸣池中 if (heroManager.getHongmengTablet() > 0){ if (heroManager.getResonances().containsValue(id) || heroManager.getHongmengGuards().containsValue(id)) { - return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(heroManager)); + return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel()); } }else{ if (heroManager.getResonances().containsValue(id)) { - return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel(heroManager)); + return HeroLogic.getInstance().calRobotBreakByLevel(templateId, getLevel()); } } return breakId; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 0121a6ab5..4300fe310 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -259,10 +259,10 @@ public class ExpeditionLogic { //移除已经删除的hero Set removeId = heroHP.keySet().stream().filter(k -> { if(heroMap.containsKey(k)) { - return heroMap.get(k).getLevel(user.getHeroManager()) < 20; + return heroMap.get(k).getLevel() < 20; } if(heroMapTemp.containsKey(k)) { - return heroMapTemp.get(k).getLevel(user.getHeroManager()) < 20; + return heroMapTemp.get(k).getLevel() < 20; } return !heroMap.containsKey(k) && !heroMapTemp.containsKey(k); }).collect(Collectors.toSet()); @@ -856,7 +856,7 @@ public class ExpeditionLogic { } } - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(),hero.getLevel(user.getHeroManager()), heroAttributeMap).toString(); + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(),hero.getLevel(), heroAttributeMap).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(hero.getTemplateId())) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index cc60fc162..2ffc12afc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -357,7 +357,7 @@ public class FightUtil { } private static void getHeroPropertyBuid(User user, List heroFightInfos, TeamPosHeroInfo teamPosHeroInfo, Hero hero, Map heroAttributeMap, StringBuilder propertySb, String heroSkill) { - getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, hero.getLevel(user.getHeroManager()), hero.getStar(), hero.getGodSoulLv()); + getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, hero.getLevel(), hero.getStar(), hero.getGodSoulLv()); } private static void getHeroPropertyBuid2(List heroFightInfos, TeamPosHeroInfo teamPosHeroInfo, Hero hero, Map heroAttributeMap, StringBuilder propertySb, String heroSkill, int level, int star, int godSoulLv) { @@ -443,7 +443,7 @@ public class FightUtil { StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString(); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString(); + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(hero.getTemplateId())) @@ -612,7 +612,7 @@ public class FightUtil { StringBuilder skillSb = new StringBuilder(); String heroSkill = HeroLogic.getInstance().getHeroSkills(userByRpc, hero, skillSb).toString(); Map attributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userByRpc, hero, false, teamId); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(userByRpc.getHeroManager()), attributeMap).toString(); + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), attributeMap).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(hero.getTemplateId())) @@ -663,7 +663,7 @@ public class FightUtil { StringBuilder stringBuilder = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); String heroSkill = HeroLogic.getInstance().getYuxuHeroSkills(user, hero, yuxuHero,stringBuilder).toString(); - getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, yuxuHero.getLevel(user.getHeroManager()), yuxuHero.getStar(), yuxuHero.getGodSoulLv()); + getHeroPropertyBuid2(heroFightInfos, teamPosHeroInfo, hero, heroAttributeMap, propertySb, heroSkill, yuxuHero.getLevel(), yuxuHero.getStar(), yuxuHero.getGodSoulLv()); } //玉虚不继承任何英雄外的技能 return CommonProto.FightTeamInfo. diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java index 59a54c1d7..870427e33 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java @@ -57,7 +57,7 @@ public enum PassiveskillCalEnum { float[] value = config.getValue(); int battlePropertyId = (int) value[0]; SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId); - int level = hero.getLevel(user.getHeroManager()); + int level = hero.getLevel(); int times=level-100; if(times<=0){ return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java index d9c051c46..48f75a87b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java @@ -235,7 +235,7 @@ public class HardStageLogic { } } - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap).toString(); + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(hero.getTemplateId())) 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 eabbe8bc7..1864dd544 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 @@ -1391,7 +1391,7 @@ public class HeroLogic { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } - int oldLevel = hero.getLevel(user.getHeroManager()); + int oldLevel = hero.getLevel(); //判断需要进行升级还是进行突破 Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE, scHero.getStar()); SCHeroRankUpConfig scHeroRankUpConfig = null; @@ -1419,7 +1419,7 @@ public class HeroLogic { } breakId = scHeroRankUpConfig.getId(); } else { - if (hero.getLevel(user.getHeroManager()) > targetLevel) { + if (hero.getLevel() > targetLevel) { throw new ErrorCodeException(ErrorCode.newDefineCode("level wrong")); } for (; oldLevel < targetLevel; oldLevel++) { @@ -1450,7 +1450,7 @@ public class HeroLogic { //校验消耗 boolean result = ItemUtil.itemCost(user, consumeMap, BIReason.UP_HERO_LEVEL_CONSUME, hero.getTemplateId()); if (!result) { - int heroLevel = hero.getLevel(user.getHeroManager()); + int heroLevel = hero.getLevel(); for (; oldLevel < targetLevel; oldLevel++) { SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(oldLevel); if (!ItemUtil.itemCost(user, sHeroLevlConfig.getConsume(), BIReason.UP_HERO_LEVEL_CONSUME, hero.getTemplateId())) { @@ -1505,7 +1505,7 @@ public class HeroLogic { } Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE, scHero.getStar()); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldStar); - if (targetHero.getLevel(user.getHeroManager()) < scHeroRankUpConfig.getLimitLevel()) { + if (targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()) { throw new ErrorCodeException(ErrorCode.HERO_LEVE_DOWN); } @@ -1567,7 +1567,7 @@ public class HeroLogic { if (reportConsumeHero.length() > 0) { reportConsumeHero.append("|"); } - reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel(user.getHeroManager())); + reportConsumeHero.append(hero.getTemplateId()).append("-").append(hero.getStar()).append("-").append(hero.getLevel()); if (1 == isSame && hero.getTemplateId() != targetHero.getTemplateId()) { throw new ErrorCodeException(ErrorCode.HERO_UN_MATCH); @@ -1738,7 +1738,7 @@ public class HeroLogic { Map result = new HashMap<>(); int templateId = hero.getTemplateId(); SCHero scHero = SCHero.getsCHero().get(templateId); - SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(hero.getLevel(user.getHeroManager())); + SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(hero.getLevel()); int[][] characterLevelPara = sHeroLevlConfig.getCharacterLevelPara(); Map paraForHero = getParaForHero(user, hero); Map baseValueMap = new HashMap<>(); @@ -1959,7 +1959,7 @@ public class HeroLogic { private Map getParaForHero(User user, Hero hero) { SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - return getParaRate(scHero, hero.getStar(), hero.getLevel(user.getHeroManager()), hero.getBreakIdByHongMeng(user.getHeroManager())); + return getParaRate(scHero, hero.getStar(), hero.getLevel(), hero.getBreakIdByHongMeng(user.getHeroManager())); } private Map getParaForRobotHero(SCHero scHero, int level, int breakId) { @@ -2473,7 +2473,7 @@ public class HeroLogic { } else { heroAttributeMap = calHeroFinalAttributeWhenInMap(user, hero, false, teamId); } - return getHeroPropertyBuilder(sb, hero.getPropertyId(), hero.getLevel(user.getHeroManager()), heroAttributeMap); + return getHeroPropertyBuilder(sb, hero.getPropertyId(), hero.getLevel(), heroAttributeMap); } public StringBuilder getHeroPropertyBuilder(StringBuilder sb, int propertyId, int heroLevel, Map heroAttributeMap) { @@ -4588,7 +4588,7 @@ public class HeroLogic { itemId.add(item.getItemId()); itemNum.add((int) item.getItemNum()); }); - ReportUtil.onReportEvent(user, ReportEventEnum.HERO_COMPOSITION.getType(), String.valueOf(hero.getTemplateId()), hero.getLevel(user.getHeroManager()), hero.getStar(), itemId, itemNum); + ReportUtil.onReportEvent(user, ReportEventEnum.HERO_COMPOSITION.getType(), String.valueOf(hero.getTemplateId()), hero.getLevel(), hero.getStar(), itemId, itemNum); } /** @@ -6356,13 +6356,13 @@ public class HeroLogic { int num = Math.min(heroManager.getHeroMap().size(), averageNum); // 获取玩家全部英雄 List heroes = heroManager.getHeroMap().values().stream() - .sorted(Comparator.comparing(v -> v.getLevel(heroManager), Comparator.reverseOrder())) + .sorted(Comparator.comparing(v -> v.getLevel(), Comparator.reverseOrder())) .collect(Collectors.toList()) .subList(0, num); // 等级相加 int count = 0; for (int i = 0; i < num; i++) { - count += heroes.get(i).getLevel(heroManager); + count += heroes.get(i).getLevel(); } // 避免zero异常 if (count == 0) { 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 1d509b3cc..8b4c2641a 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 @@ -779,7 +779,7 @@ public class PlayerLogic { teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder() .setHeroid(hero.getId()) .setHeroTid(hero.getTemplateId()) - .setLevel(yuxuHero.getLevel(user.getHeroManager())) + .setLevel(yuxuHero.getLevel()) .setStar(yuxuHero.getStar()) .setPosition(heroInfo.getPosition()) .setSkinId(hero.getSkin()) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index b93f73429..5b5e1a02c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -357,7 +357,7 @@ public class CBean2Proto { .newBuilder() .setId(hero.getId()) .setHeroId(hero.getTemplateId()) - .setLevel(hero.getOriginalLevel()) + .setLevel(hero.getLevel()) .setStar(hero.getStar()) .setBreakId(hero.getBreakId()) .setStarBreakId(hero.getStarBreakId()) @@ -1039,7 +1039,7 @@ public class CBean2Proto { return CommonProto.TeamSimpleInfo.newBuilder() .setHeroid(hero.getId()) .setHeroTid(hero.getTemplateId()) - .setLevel(hero.getLevel(user.getHeroManager())) + .setLevel(hero.getLevel()) .setStar(hero.getStar()) .setPosition(position) .setSkinId(hero.getSkin())