From a8a46da07b02c17f45a64f031ff65c68af63be28 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 13 Jul 2020 18:31:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E5=BD=92=E5=85=83=EF=BC=8C?= =?UTF-8?q?=E8=A2=AB=E5=8A=A8=E6=8A=80=E8=83=BD=E6=88=98=E5=8A=9B=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passiveSkillCal/PassiveskillCalEnum.java | 33 ++++++++++++++++--- .../ljsd/jieling/logic/hero/HeroLogic.java | 16 +++++---- .../src/main/java/config/SHeroReturn.java | 10 ------ 3 files changed, 39 insertions(+), 20 deletions(-) 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