diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java index 74dcce4a6..413369574 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/passiveSkillCal/PassiveskillCalEnum.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.fight.passiveSkillCal; import com.ljsd.jieling.core.GlobalsDef; +import config.SCHero; import config.SPropertyConfig; import java.util.Arrays; @@ -26,8 +27,8 @@ public enum PassiveskillCalEnum { parm = value[1]*10000; } - int extreeValue = (int) cal(optCode, parm); - heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extreeValue); + int extraValue = (int) cal(optCode, parm); + heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue); }), AllAdd(94,(config,hero,heroSkillAdMap)->{ float[] value = config.getValue(); @@ -47,8 +48,8 @@ public enum PassiveskillCalEnum { parm = value[0]*10000; } - int extreeValue = (int) cal(optCode, parm); - heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extreeValue); + int extraValue = (int) cal(optCode, parm); + heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue); }), HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{ float[] value = config.getValue(); @@ -62,6 +63,30 @@ public enum PassiveskillCalEnum { int parm = (int) value[1]*times; heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+parm); }),//武将100级后每升一级[c]额外增加[d] + HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap)->{ + float[] value = config.getValue(); + + if(SCHero.getsCHero().get(hero.getTemplateId()).getProfession()!=value[0]){ + return; + } + float parm = value[1]; + int optCode = (int) value[3]; + + SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID((int)(value[2])); + + if(optCode%2==0){ + if( sPropertyConfig.getStyle()!= GlobalsDef.PERCENT_TYPE){ + sPropertyConfig = SPropertyConfig.getsPropertyConfigByTargetPropertyId(sPropertyConfig.getPropertyId()); + } + parm = value[0]*10000; + } + + if( sPropertyConfig.getStyle()== GlobalsDef.PERCENT_TYPE){ + parm = value[0]*10000; + } + int extraValue = (int) cal(optCode, parm); + heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue); + }), ; private int type; private PassiveSkillProcessor passiveSkillProcessor; 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 230057353..466f522fd 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 @@ -2329,24 +2329,28 @@ public class HeroLogic{ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } - int star = hero.getStar(); + int breakId = hero.getBreakId(); int templateId = hero.getTemplateId(); + int star = hero.getStar(); Map sHeroReturnMap = SHeroReturn.sheroReturnMap.get(templateId); - if(sHeroReturnMap == null || !sHeroReturnMap.containsKey(star)){ + if(sHeroReturnMap == null || !sHeroReturnMap.containsKey(breakId)){ throw new ErrorCodeException(ErrorCode.newDefineCode("not satisfy")); } - SHeroReturn sHeroReturn = sHeroReturnMap.get(star); + SHeroReturn sHeroReturn = sHeroReturnMap.get(breakId); boolean b = ItemUtil.itemCost(user, sHeroReturn.getReturnConsume(), BIReason.HERO_BACK_CONSUME, templateId * 100 + star); if(!b){ throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); } heroManager.removeHero(uid,heroId); - int[] returnMaterials = sHeroReturn.getRankupReturn(); + int[][] returnMaterials = sHeroReturn.getRankupReturn(); int returnHero = sHeroReturn.getHeroId(); //进阶材料返还乘万分比 - returnMaterials[1]*=(double)returnPercent/10000; - CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{returnMaterials}, BIReason.HERO_BACK_REWARD); + int[][] realReturnMaterials = new int[returnMaterials.length][]; + for(int i = 0 ; i new HashMap<>()).put(star,sHeroReturn); } } @@ -71,8 +65,4 @@ public class SHeroReturn implements BaseConfig { public int[][] getReturnMaterials() { return returnMaterials; } - - public void setReturnMaterials(int[][] returnMaterials) { - this.returnMaterials = returnMaterials; - } } \ No newline at end of file