diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 33f534aac..84a98ebf7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -391,7 +391,7 @@ public class ItemLogic { public void decomposeJewel(ISession session, List jewelList) throws Exception { User user = UserManager.getUser(session.getUid()); Map equipMap = user.getEquipManager().getEquipMap(); - List items = new ArrayList<>(); + List items = new ArrayList<>(); StringBuilder reward = new StringBuilder(); StringBuilder reportIdLevelQuality = new StringBuilder(); for (String jewelId : jewelList) { @@ -430,19 +430,19 @@ public class ItemLogic { if (jewel.getGodTreeLv() > 0){ TreeMap treeMap = new TreeMap<>(STableManager.getConfig(SGodHoodTreeLevel.class)); SortedMap subMap = treeMap.subMap(0, jewel.getGodTreeLv()); - List collect = subMap.values().stream().map(SGodHoodTreeLevel::getLvupCost).collect(Collectors.toList()); + List collect = subMap.values().stream().map(v->new int[][]{v.getLvupCost()}).collect(Collectors.toList()); items.addAll(collect); } - items.add(new int[]{propertyItem.getEquipId(), 1}); + items.add(new int[][]{{propertyItem.getEquipId(), 1}}); } for (String jewelId : jewelList) { user.getEquipManager().remove(jewelId); } - - items.add(StringUtil.parseFiledInt(reward.toString())); - int[][] itemArray = items.toArray(new int[items.size()][]); - CommonProto.Drop.Builder drop = ItemUtil.drop(user, itemArray, BIReason.JEWEL_DECOMPOSE); + // 奖励组 + CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt(reward.toString()), 1, 0, BIReason.JEWEL_DECOMPOSE); + // 直接的奖励 + ItemUtil.drop(user, items, drop, BIReason.JEWEL_DECOMPOSE); // 协议返回 sendUseAndPriceItemMessage(session, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, drop); // 日志上报 @@ -456,20 +456,20 @@ public class ItemLogic { ReportUtil.onReportEvent(user, ReportEventEnum.TREASURE_DECOMPOSITION.getType(), reportIdLevelQuality.toString(), itemId, itemNum); } - private void jewelCostBack(Map map, Jewel jewel, List items, int level){ + private void jewelCostBack(Map map, Jewel jewel, List items, int level){ for (SJewelRankupConfig value : map.values()) { if (value.getLevel() >= level) { continue; } - items.addAll(Arrays.asList(value.getUpExpend())); + items.add(value.getUpExpend()); if (value.getJewelExpend().length < 1) { continue; } for (int[] count : value.getJewelExpend()) { if (count[0] == 1) { - items.add(new int[]{jewel.getEquipId(), count[1]}); + items.add(new int[][]{{jewel.getEquipId(), count[1]}}); } else { - items.add(count); + items.add(new int[][]{count}); } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 090bc8e83..91d4aea5e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -253,23 +253,16 @@ public class ItemUtil { */ public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,float dropRatio, int isMapping,int reason) throws Exception { CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - ItemMap itemObj = new ItemMap(); - combineRewardDropGroup(user, dropGroupIds, dropRatio,itemObj); -// useRandomItem(user,randomMap,reason); - mapToAdd(user,itemObj,dropBuilder,reason); return dropBuilder; } public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,CommonProto.Drop.Builder dropBuilder,float dropRatio, int isMapping,int reason) throws Exception { - ItemMap itemObj = new ItemMap(); - combineRewardDropGroup(user, dropGroupIds, dropRatio,itemObj); -// useRandomItem(user,randomMap,reason); mapToAdd(user,itemObj,dropBuilder,reason); return dropBuilder; }