diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java index e4a5bdd11..4f9c25a0b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java @@ -34,6 +34,7 @@ public class SCHeroRankUpConfig implements BaseConfig{ private int show; private int[][] sumConsume; + public static Map scHeroRankUpConfigMap ; @Override public void init() throws Exception { @@ -74,6 +75,7 @@ public class SCHeroRankUpConfig implements BaseConfig{ } scHeroRankUpConfigByShow = result; scHeroRankUpConfigByType = calc; + scHeroRankUpConfigMap =config; } public static Map getScHeroRankUpConfigByShow(int show, int heroInitStar) { @@ -123,4 +125,9 @@ public class SCHeroRankUpConfig implements BaseConfig{ public int getShow() { return show; } + + + public int[][] getSumConsume() { + return sumConsume; + } } 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 7394fa0d5..5645dc9da 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 @@ -13,6 +13,7 @@ import com.sun.org.apache.regexp.internal.RE; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -187,8 +188,20 @@ public class ItemLogic { } //1裸角色卡(没有突破过的角色卡)熔炼后返还的材料=当前等级返还升级材料+item表返还材料 //2有过突破的卡 =当前等级返还升级材料+突破表返还材料 + Map baseItemMap = new HashMap<>(); + Map baseCardMap = new HashMap<>(); + Map baseEquipMap = new HashMap<>(); + Map baseRandomMap = new HashMap<>(); for (String heroId : heroIdsList) { Hero hero = heroManager.getHeroMap().get(heroId); + int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); + ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); + int breakId = hero.getBreakId(); + if(breakId!=0){ + SCHeroRankUpConfig scHeroRankUpConfig = SCHeroRankUpConfig.scHeroRankUpConfigMap.get(breakId); + ItemUtil.combineReward(scHeroRankUpConfig.getSumConsume(),baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); + continue; + } SItem sItem = SItem.getsItemMap().get(hero.getTemplateId()); heroManager.removeHero(heroId); if (reward.length() == 0) { @@ -197,11 +210,13 @@ public class ItemLogic { reward.append("#").append(sItem.getResolveReward()); } } - CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0); - sendUseAndPriceItemMessage(iSession, msgId, drop); + ItemUtil.combineReward(StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); + CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder(); + ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); + sendUseAndPriceItemMessage(iSession, msgId, baseBuilder); } - private String checkHeroResolve(List heroIdsList,User user) { + private String checkHeroResolve(List heroIdsList,User user){ HeroManager heroManager = user.getHeroManager(); if (heroIdsList.size() == 0){ return "无可分解妖灵师"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index fe5297dc8..9130f4a1a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -76,7 +76,9 @@ public class MissionLoigc { }else{ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"mission can not get reward"); } + return; } + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"parm is wrong"); } public static int getDoingProgress(User user,CumulationData cumulationData, int missionTypeId, int missionSubType){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 40c4bc42e..250ffb6c6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -171,15 +171,10 @@ public class PlayerLogic { SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(playerInfoManager.getVipLevel()); int[][] rewards=null; if(type == 1){ - if(playerInfoManager.getHadTakeDailyBoxVip() == 0 || playerInfoManager.getHadTakeLevelBoxVip() == 1 ){ + if(playerInfoManager.getHadTakeLevelBoxVip() == 1 ){ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,"had taked the vip level reward"); return; } - VipMissionIdsType vipMissionIdsType = user.getUserMissionManager().getVipMissionIdsType(); - if(!vipMissionIdsType.getDoingMissionIds().isEmpty() || !vipMissionIdsType.getFinishMissionIds().isEmpty()){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.VIP_TAKE_REWARD_RESPONSE_VALUE,"mission not finish"); - return; - } playerInfoManager.setHadTakeLevelBoxVip(1); rewards = sVipLevelConfig.getVipBoxReward(); }else if(type == 2){ 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 0de1e4170..6539a7d3c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -155,6 +155,10 @@ public class ItemUtil { } } + public static void combineReward(int[][] itemArr, Map itemMap, Map cardMap, Map equipMap, Map randomMap){ + selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap); + } + public static void drop(User user,CommonProto.Drop.Builder dropBuilder,Map itemMap, Map cardMap, Map equipMap, Map randomMap) throws Exception { useRandomItem(user, randomMap); addItem(user, itemMap, dropBuilder);