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 b5f78f106..e72577350 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 @@ -918,11 +918,14 @@ 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); - //改成归元获得 + //改成归元获得,同时返还法宝获得 CommonProto.Drop.Builder baseBuilder = heroBackDrop(user,new ArrayList<>(removeHeroIds),10000,BIReason.UPHERO_DECOMPOS_HERO_REWARD,true); + for(String rmHeroId:removeHeroIds){ + heroManager.removeHero(uid,rmHeroId); + } - // recyleHeroBySystem(user,removeHeroIds); +// recyleHeroBySystem(user,removeHeroIds); rankUpHeroExecute(targetHero); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); if(targetHero.getStar()>=5&&targetHero.getStar()!=15){ @@ -2422,6 +2425,7 @@ public class HeroLogic{ if(!b){ throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); } + //单纯归元神将,不归元法宝 CommonProto.Drop.Builder drop = heroBackDrop(user, heroList, returnPercent, BIReason.HERO_BACK_REWARD,false); List itemList = drop.getItemlistList(); List itemId = new ArrayList<>(itemList.size()); @@ -2509,23 +2513,27 @@ public class HeroLogic{ continue; } //返还法宝修炼材料 - int especialEquipLevel = hero.getEspecialEquipLevel(); - if(especialEquipLevel!=1&&especialEquipLevel!=0){ - continue; - } - SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - int[] equipTalismana = scHero.getEquipTalismana(); - if(equipTalismana!=null&&equipTalismana.length>1){ - continue; - } - TreeMap levelMap = (TreeMap) SEquipTalismana.equipTalismanaStarMap.get(equipTalismana[1]); - Map returnMap = levelMap.subMap(1, hero.getEspecialEquipLevel()); - for(Map.Entry entry:returnMap.entrySet()){ - int[][] rankupBasicMaterial = entry.getValue().getRankupBasicMaterial(); - for(int[] rankUpConsume:rankupBasicMaterial){ - returnItemMap.put(rankUpConsume[0],returnItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]); - } + Map especialEquipReturnItem = ItemLogic.getInstance().heroEspecialEquipReturnItem(hero); + for(Map.Entry entry:especialEquipReturnItem.entrySet()){ + returnItemMap.put(entry.getKey(),returnItemMap.getOrDefault(entry.getKey(),0)+entry.getValue()); } +// int especialEquipLevel = hero.getEspecialEquipLevel(); +// if(especialEquipLevel==1||especialEquipLevel==0){ +// continue; +// } +// SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); +// int[] equipTalismana = scHero.getEquipTalismana(); +// if(equipTalismana!=null&&equipTalismana.length>1){ +// continue; +// } +// TreeMap levelMap = (TreeMap) SEquipTalismana.equipTalismanaStarMap.get(equipTalismana[1]); +// Map returnMap = levelMap.subMap(1, hero.getEspecialEquipLevel()); +// for(Map.Entry entry:returnMap.entrySet()){ +// int[][] rankupBasicMaterial = entry.getValue().getRankupBasicMaterial(); +// for(int[] rankUpConsume:rankupBasicMaterial){ +// returnItemMap.put(rankUpConsume[0],returnItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]); +// } +// } } int[][] resultDrop = new int[returnItemMap.size()][]; int index = 0;