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 217507430..a43b27233 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 @@ -866,7 +866,7 @@ public class HeroLogic{ //删除hero CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE); // recyleHeroBySystem(user,removeHeroIds); - rankUpHeroExecute(targetHero,1,8); + rankUpHeroExecute(targetHero); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); if(targetHero.getStar()>=5&&targetHero.getStar()!=15){ if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) @@ -888,11 +888,19 @@ public class HeroLogic{ } ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),""); } - private void rankUpHeroExecute(Hero hero,int starCount,int unlockEspecialEquipStar) throws Exception { + private void rankUpHeroExecute(Hero hero)throws Exception { //是否解锁法宝 - if(hero.getStar()=unlockEspecialEquipStar){ - hero.updateEspecial(1); + SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); + int[][] equipTalismanaUnlock = gameSetting.getEquipTalismanaUnlock(); + for(int [] lockLimit:equipTalismanaUnlock){ + //英雄星级解锁 + if(lockLimit[0]==2) { + if (hero.getStar() < lockLimit[1] && hero.getStar() + 1 >= lockLimit[1]) { + hero.updateEspecial(1); + } + } } + hero.upStar( 1 ); } @@ -2341,23 +2349,31 @@ public class HeroLogic{ heroManager.removeHero(uid,heroId); int[][] returnMaterials = sHeroReturn.getRankupReturn(); + SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); + int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent); int returnHero = sHeroReturn.getHeroId(); //进阶材料返还乘万分比 - int[][] realReturnMaterials = new int[returnMaterials.length][]; - for(int i = 0 ; i returnItemMap = new HashMap<>(); + for(int i = 0 ; i entry:returnItemMap.entrySet()){ + resultDrop[index] = new int[]{entry.getKey(),entry.getValue()}; + index++; + } + CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD); CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder(); String createHeroId = heroProto.getId(); heroProto.setStar(star); drop.setHero(0,heroProto.build()); Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId); newHero.setStar(star); - SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); - int[][] levelUpReturn = sHeroLevlConfig.getSumConsume(); - ItemUtil.drop(user, ItemLogic.getInstance().itemReturnPercent(levelUpReturn,returnPercent),drop, BIReason.HERO_BACK_REWARD); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1,responseMsgId,build,true);