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 979226c65..83bde5051 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 @@ -2174,6 +2174,7 @@ public class HeroLogic{ } public void heroBack(ISession session,String heroId) throws Exception { + int returnPercent = SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_RETURN_PERCENT); int uid = session.getUid(); int responseMsgId = MessageTypeProto.MessageType.HERO_RETURN_RESPONSE_VALUE; User user = UserManager.getUser(uid); @@ -2205,10 +2206,17 @@ public class HeroLogic{ } heroManager.removeHero(uid,heroId); - int[][] returnMaterials = sHeroReturn.getReturnMaterials(); - CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD); + int[] returnMaterials = sHeroReturn.getRankupReturn(); + int[][] returnHero = sHeroReturn.getReturnHero(); + //进阶材料返还乘万分比 + returnMaterials[1]*=(double)returnPercent/10000; + CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{returnMaterials}, BIReason.HERO_BACK_REWARD); + ItemUtil.drop(user, returnHero,drop, BIReason.HERO_BACK_REWARD); SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()); - ItemUtil.drop(user, sHeroLevlConfig.getRankupReturn(),drop, BIReason.HERO_BACK_REWARD); + int[][] levelUpReturn = sHeroLevlConfig.getSumConsume(); + //升级材料返还乘万分比 + Arrays.stream(levelUpReturn).forEach(i->i[1]*=((double)returnPercent/10000)); + ItemUtil.drop(user, levelUpReturn,drop, BIReason.HERO_BACK_REWARD); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1,responseMsgId,build,true); 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 d401f04de..a574e6d98 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 @@ -301,10 +301,12 @@ public class ItemLogic { Map baseCardMap = new HashMap<>(); Map baseEquipMap = new HashMap<>(); Map baseRandomMap = new HashMap<>(); + int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT); for (String heroId : heroIdsList) { Hero hero = heroManager.getHeroMap().get(heroId); heroManager.removeHero(uid,heroId); int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); + Arrays.stream(sumConsume).forEach(i->i[1]*=((double)rankUpReturnPercent/10000)); ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap); int breakId = hero.getBreakId(); int starBreakId = hero.getStarBreakId(); diff --git a/tablemanager/src/main/java/config/SSpecialConfig.java b/tablemanager/src/main/java/config/SSpecialConfig.java index 7fa6d4e42..692d61e17 100644 --- a/tablemanager/src/main/java/config/SSpecialConfig.java +++ b/tablemanager/src/main/java/config/SSpecialConfig.java @@ -52,6 +52,8 @@ public class SSpecialConfig implements BaseConfig { public static final String LAMP_TEXT_SPEED = "lamp_text_speed";//跑马灯速度 public static final String TIME_LIMIT_RECRUITMENT_INTEGRAL = "time_limit_recruitment_integral";//限时抽卡一次积分 public static final String TIME_LIMIT_RECRUITMENT_FREEINTEGRAL = "time_limit_recruitment_FreeIntegral";//东海寻仙每获得150分赠送一次免费招募 + public static final String HERO_RETURN_PERCENT = "hero_return_percent";//回溯返还材料比例 实际百分比为填写数值/10000 + public static final String HERO_SACRIFICE_PERCENT = "hero_sacrifice_percent";//献祭返还材料比例 实际百分比为填写数值/10000 @Override public void init() throws Exception {