diff --git a/conf/server/HeroRankupConfig.txt b/conf/server/HeroRankupConfig.txt index 14508204b..aef896965 100644 --- a/conf/server/HeroRankupConfig.txt +++ b/conf/server/HeroRankupConfig.txt @@ -1,24 +1,24 @@ -Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Star -int int float int int int int mut,int#int,2 int -101 1 2000 30 40 5 5 14#10000|4#20 5 -102 1 5000 40 50 5 5 14#20000|4#40 5 -103 1 9000 50 60 5 5 14#30000|4#100 5 -104 1 14000 60 80 5 5 14#30000|4#300 5 -105 1 20000 80 100 5 5 14#70000|4#1000 5 -106 1 60000 100 140 5 6 14#120000|4#0 5 -107 2 2000 140 160 6 7 14#0|4#2000 5 -108 2 4000 160 180 7 8 14#0|4#3000 5 -109 2 7000 180 200 8 9 14#0|4#4000 5 -110 2 10000 200 250 9 10 14#0|4#10000 5 -201 1 2000 30 40 4 4 14#10000|4#20 4 -202 1 5000 40 50 4 4 14#20000|4#40 4 -203 1 9000 50 60 4 4 14#30000|4#100 4 -204 1 14000 60 80 4 4 14#30000|4#300 4 -205 1 20000 80 100 4 5 14#70000|4#1000 4 -206 1 60000 100 140 5 6 14#120000|4#0 4 -207 2 2000 140 160 6 7 14#0|4#2000 4 -208 2 4000 160 180 7 8 14#0|4#3000 4 -209 2 7000 180 200 8 9 14#0|4#4000 4 -301 1 2000 30 40 3 3 14#10000|4#20 3 -302 1 5000 40 50 3 3 14#20000|4#40 3 -303 1 9000 50 60 3 3 14#30000|4#100 3 +Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Star Show +int int float int int int int mut,int#int,2 int int +101 1 2000 30 40 5 5 14#10000|4#20 5 1 +102 1 5000 40 50 5 5 14#20000|4#40 5 1 +103 1 9000 50 60 5 5 14#30000|4#100 5 1 +104 1 14000 60 80 5 5 14#30000|4#300 5 1 +105 1 20000 80 100 5 5 14#70000|4#1000 5 1 +106 1 60000 100 140 5 6 14#120000|4#0 5 2 +107 2 2000 140 160 6 7 14#0|4#2000 5 2 +108 2 4000 160 180 7 8 14#0|4#3000 5 2 +109 2 7000 180 200 8 9 14#0|4#4000 5 2 +110 2 10000 200 250 9 10 14#0|4#10000 5 2 +201 1 2000 30 40 4 4 14#10000|4#20 4 1 +202 1 5000 40 50 4 4 14#20000|4#40 4 1 +203 1 9000 50 60 4 4 14#30000|4#100 4 1 +204 1 14000 60 80 4 4 14#30000|4#300 4 1 +205 1 20000 80 100 4 5 14#70000|4#1000 4 2 +206 1 60000 100 140 5 6 14#120000|4#0 4 2 +207 2 2000 140 160 6 7 14#0|4#2000 4 2 +208 2 4000 160 180 7 8 14#0|4#3000 4 2 +209 2 7000 180 200 8 9 14#0|4#4000 4 2 +301 1 2000 30 40 3 3 14#10000|4#20 3 1 +302 1 5000 40 50 3 3 14#20000|4#40 3 1 +303 1 9000 50 60 3 3 14#30000|4#100 3 1 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 28f82b1de..90afba05d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SCHeroRankUpConfig.java @@ -30,22 +30,24 @@ public class SCHeroRankUpConfig implements BaseConfig{ private int star; + private int show; + @Override public void init() throws Exception { Map>> result = new TreeMap<>(); Map config = STableManager.getConfig(SCHeroRankUpConfig.class); for(SCHeroRankUpConfig scHeroRankUpConfig: config.values()){ - int type = scHeroRankUpConfig.getType(); - if(!result.containsKey(type)){ - result.put(type,new TreeMap<>()); + int show = scHeroRankUpConfig.getShow(); + if(!result.containsKey(show)){ + result.put(show,new TreeMap<>()); } - if(!result.get(type).containsKey(scHeroRankUpConfig.getStar())){ - result.get(type).put(scHeroRankUpConfig.getStar(),new TreeMap<>()); + if(!result.get(show).containsKey(scHeroRankUpConfig.getStar())){ + result.get(show).put(scHeroRankUpConfig.getStar(),new TreeMap<>()); } - if(type == GlobalsDef.UP_STAR_TYPE){ - result.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig); + if(show == GlobalsDef.UP_STAR_TYPE){ + result.get(show).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig); } - result.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig); + result.get(show).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig); } scHeroRankUpConfigByStar = result; } @@ -89,4 +91,8 @@ public class SCHeroRankUpConfig implements BaseConfig{ public int getStar() { return star; } + + public int getShow() { + return show; + } } 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 4f574dd32..c80b4a9d2 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 @@ -231,6 +231,7 @@ public class HeroLogic { } } } + boolean isBreak =false; int[][] consume; int breakId = hero.getBreakId(); @@ -243,6 +244,33 @@ public class HeroLogic { SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(oldLevel); consume = sHeroLevlConfig.getConsume(); } + if(!isBreak){ + Map scHeroRankUpConfigByTypeStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE, scHero.getStar()); + if(scHeroRankUpConfig == null && scHeroRankUpConfigByTypeStar == null && scHeroRankUpConfigByType!=null){ + boolean isAll = true; + for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByType.values()){ + int openLevel = scHeroRankUpConfigTmp.getOpenLevel(); + if(hero.getLevel() scHeroRankUpConfigStar.getLimitLevel() && hero.getStar() < scHeroRankUpConfigStar.getOpenStar()){ + MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_LEVEL_RESPONSE_VALUE,"max level"); + return; + } + + } + } + + //校验消耗 boolean result = ItemUtil.itemCost(user, consume); if(!result){ @@ -253,11 +281,6 @@ public class HeroLogic { hero.setLevel( oldLevel + 1); }else{ hero.setBreakId(breakId); - int upStar = scHeroRankUpConfig.getOpenStar() - hero.getStar(); - if(upStar>0){ - hero.upStar(upStar); - } - } Map heroAllAttribute = calHeroAllAttribute(hero); for(Map.Entry item : heroAllAttribute.entrySet() ){ @@ -414,22 +437,28 @@ public class HeroLogic { Map result = new HashMap<>(2); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); float rankupPara =0.0f; + //突破系数 + float breakPara = 0.0f; Map scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); if(scHeroRankUpConfigByTypeOfStar!= null){ SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar()); - if( scHeroRankUpConfig!=null ){ - rankupPara = scHeroRankUpConfig.getRankupPara(); + if( scHeroRankUpConfig!=null && hero.getLevel() >= scHeroRankUpConfig.getLimitLevel()){ + if(scHeroRankUpConfig.getType() == GlobalsDef.BREAK_TYPE){ + breakPara = scHeroRankUpConfig.getRankupPara(); + }else{ + rankupPara = scHeroRankUpConfig.getRankupPara(); + } + } } - //突破系数 - float breakPara = 0.0f; + int heroLevel = hero.getLevel(); Map scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar()); for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByTypOfBreak.values()){ if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() && hero.getBreakId()>= scHeroRankUpConfigTmp.getId()){ breakPara = scHeroRankUpConfigTmp.getRankupPara(); } - if(heroLevel <= scHeroRankUpConfigTmp.getOpenLevel()){ + if(heroLevel < scHeroRankUpConfigTmp.getOpenLevel()){ break; } }