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 0091ee1eb..32c796425 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 @@ -4069,10 +4069,13 @@ public class HeroLogic { } // 卸下魂印 Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - for (Integer value : soulEquipByPositionMap.values()) { - dropMap.put(value, 1); + Map hunying = null; + if (!soulEquipByPositionMap.isEmpty()) { + hunying = new HashMap<>(soulEquipByPositionMap.size()); + } + for (Integer value : soulEquipByPositionMap.values()) { + hunying.put(value, 1); } - for (int[] ints : returnPercent) { for (int i = 1; i < ints.length; i++) { SHeroRankupGroup sHeroRankupGroup=STableManager.getConfig(SHeroRankupGroup.class).get(ints[i]); @@ -4094,19 +4097,7 @@ public class HeroLogic { } ItemUtil.itemCost(user, cost, BIReason.HERO_RETURN, hero.getTemplateId()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.HERO_RETURN); - if (!soulEquipByPositionMap.isEmpty()) { - List itemlistList = drop.getItemlistList(); - Set needRemove = new HashSet<>(soulEquipByPositionMap.size()); - for (int i = 0; i < itemlistList.size(); i++) { - CommonProto.Item item = itemlistList.get(i); - if (soulEquipByPositionMap.values().contains(item.getItemId())) { - needRemove.add(i); - } - } - for (Integer index : needRemove) { - drop.removeItemlist(index); - } - } + ItemUtil.drop(user, ItemUtil.mapToArray(hunying), BIReason.HERO_RETURN); hero.setLevel(1); hero.setBreakId(0); hero.setStar(5);