diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java index bb84c07b7..f08aa7dab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/LifeStoneUpRequestHandler.java @@ -78,15 +78,23 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); - if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel())) { + boolean isBag=proto.getGridIndex()<=0; + if (LifeStoneQuickUp(itemManager, gemConfigMap, costItemMap, gemConfig.getLevel(),isBag)) { int[] curUpCost = gemConfig.getUpgradeCost(); - long allGoldCost = costItemMap.get(curUpCost[0]) + curUpCost[1]; + long allGoldCost = curUpCost[1]; + if (costItemMap.containsKey(curUpCost[0])){ + allGoldCost+=costItemMap.get(curUpCost[0]); + } costItemMap.put(curUpCost[0], allGoldCost); if (proto.getGridIndex() > 0) { equipLifeStoneId = gemConfig.getNextGem(); } else { addItemMap.put(gemConfig.getNextGem(), 1L); - costItemMap.put(proto.getCurGemId(), 1L); + if (costItemMap.containsKey(proto.getCurGemId())){ + long costNum=costItemMap.get(proto.getCurGemId())+1; + costItemMap.put(proto.getCurGemId(),costNum); + } + } } else { LOGGER.error("快速合成:命石合成材料不足"); @@ -220,7 +228,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler gemConfigMap, Map costItemMap, int selectGemLv) { + private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap gemConfigMap, Map costItemMap, int selectGemLv,boolean isBag) { long addCount = 0;//一个循环合成数量 long costGoldNum = 0;//合成金币总消耗 for (Map.Entry gemConfigEntry : gemConfigMap.entrySet()) { @@ -229,12 +237,20 @@ public class LifeStoneUpRequestHandler extends BaseHandler0||curItem==null){ break; - }else{ - costItemMap.put(gemConfig.getId(),1L); - costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); - addCount=1; - break; } + ///是否是在背包操作 + if (isBag){ + if (curItem.getItemNum() selectGemLv) {