命石快速合成脚本修改提交

back_recharge
yuanshuai 2021-12-13 18:41:46 +08:00
parent 69607c3c66
commit 1ee2a60fc0
1 changed files with 25 additions and 9 deletions

View File

@ -78,15 +78,23 @@ public class LifeStoneUpRequestHandler extends BaseHandler<HeroInfoProto.LifeSto
} else if (type == 4) { } else if (type == 4) {
SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId()); SGemConfig gemConfig = STableManager.getConfig(SGemConfig.class).get(proto.getCurGemId());
TreeMap<Integer, SGemConfig> gemConfigMap = SGemConfig.gemConfigMapByType.get(gemConfig.getType()); TreeMap<Integer, SGemConfig> 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(); 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); costItemMap.put(curUpCost[0], allGoldCost);
if (proto.getGridIndex() > 0) { if (proto.getGridIndex() > 0) {
equipLifeStoneId = gemConfig.getNextGem(); equipLifeStoneId = gemConfig.getNextGem();
} else { } else {
addItemMap.put(gemConfig.getNextGem(), 1L); 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 { } else {
LOGGER.error("快速合成:命石合成材料不足"); LOGGER.error("快速合成:命石合成材料不足");
@ -220,7 +228,7 @@ public class LifeStoneUpRequestHandler extends BaseHandler<HeroInfoProto.LifeSto
* @param selectGemLv * @param selectGemLv
* @return * @return
*/ */
private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap<Integer, SGemConfig> gemConfigMap, Map<Integer, Long> costItemMap, int selectGemLv) { private boolean LifeStoneQuickUp(ItemManager itemManager, TreeMap<Integer, SGemConfig> gemConfigMap, Map<Integer, Long> costItemMap, int selectGemLv,boolean isBag) {
long addCount = 0;//一个循环合成数量 long addCount = 0;//一个循环合成数量
long costGoldNum = 0;//合成金币总消耗 long costGoldNum = 0;//合成金币总消耗
for (Map.Entry<Integer, SGemConfig> gemConfigEntry : gemConfigMap.entrySet()) { for (Map.Entry<Integer, SGemConfig> gemConfigEntry : gemConfigMap.entrySet()) {
@ -229,12 +237,20 @@ public class LifeStoneUpRequestHandler extends BaseHandler<HeroInfoProto.LifeSto
if (gemConfig.getLevel()==selectGemLv){ if (gemConfig.getLevel()==selectGemLv){
if (addCount>0||curItem==null){ if (addCount>0||curItem==null){
break; break;
}else{ }
costItemMap.put(gemConfig.getId(),1L); ///是否是在背包操作
costItemMap.put(gemConfig.getUpgradeCost()[0], (long) gemConfig.getUpgradeCost()[1]); if (isBag){
addCount=1; if (curItem.getItemNum()<gemConfig.getUpgradeNum()){
break; break;
} }
}else{
if (curItem.getItemNum()<gemConfig.getUpgradeNum()-1){
break;
}
}
costItemMap.put(gemConfig.getId(),1L);
addCount=1;
break;
} }
///如果命石等级大于当前选中的命石等级跳过 ///如果命石等级大于当前选中的命石等级跳过
if (gemConfig.getLevel() > selectGemLv) { if (gemConfig.getLevel() > selectGemLv) {