hero level up
parent
eb1fba0c1f
commit
cf8e26bf38
|
@ -1,24 +1,24 @@
|
||||||
Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Star
|
Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Star Show
|
||||||
int int float int int int int mut,int#int,2 int
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
303 1 9000 50 60 3 3 14#30000|4#100 3 1
|
||||||
|
|
|
@ -30,22 +30,24 @@ public class SCHeroRankUpConfig implements BaseConfig{
|
||||||
|
|
||||||
private int star;
|
private int star;
|
||||||
|
|
||||||
|
private int show;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> result = new TreeMap<>();
|
Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> result = new TreeMap<>();
|
||||||
Map<Integer, SCHeroRankUpConfig> config = STableManager.getConfig(SCHeroRankUpConfig.class);
|
Map<Integer, SCHeroRankUpConfig> config = STableManager.getConfig(SCHeroRankUpConfig.class);
|
||||||
for(SCHeroRankUpConfig scHeroRankUpConfig: config.values()){
|
for(SCHeroRankUpConfig scHeroRankUpConfig: config.values()){
|
||||||
int type = scHeroRankUpConfig.getType();
|
int show = scHeroRankUpConfig.getShow();
|
||||||
if(!result.containsKey(type)){
|
if(!result.containsKey(show)){
|
||||||
result.put(type,new TreeMap<>());
|
result.put(show,new TreeMap<>());
|
||||||
}
|
}
|
||||||
if(!result.get(type).containsKey(scHeroRankUpConfig.getStar())){
|
if(!result.get(show).containsKey(scHeroRankUpConfig.getStar())){
|
||||||
result.get(type).put(scHeroRankUpConfig.getStar(),new TreeMap<>());
|
result.get(show).put(scHeroRankUpConfig.getStar(),new TreeMap<>());
|
||||||
}
|
}
|
||||||
if(type == GlobalsDef.UP_STAR_TYPE){
|
if(show == GlobalsDef.UP_STAR_TYPE){
|
||||||
result.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig);
|
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;
|
scHeroRankUpConfigByStar = result;
|
||||||
}
|
}
|
||||||
|
@ -89,4 +91,8 @@ public class SCHeroRankUpConfig implements BaseConfig{
|
||||||
public int getStar() {
|
public int getStar() {
|
||||||
return star;
|
return star;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getShow() {
|
||||||
|
return show;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,6 +231,7 @@ public class HeroLogic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isBreak =false;
|
boolean isBreak =false;
|
||||||
int[][] consume;
|
int[][] consume;
|
||||||
int breakId = hero.getBreakId();
|
int breakId = hero.getBreakId();
|
||||||
|
@ -243,6 +244,33 @@ public class HeroLogic {
|
||||||
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(oldLevel);
|
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsCHero().get(oldLevel);
|
||||||
consume = sHeroLevlConfig.getConsume();
|
consume = sHeroLevlConfig.getConsume();
|
||||||
}
|
}
|
||||||
|
if(!isBreak){
|
||||||
|
Map<Integer, SCHeroRankUpConfig> 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()<openLevel){
|
||||||
|
isAll = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isAll){
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_LEVEL_RESPONSE_VALUE,"max level");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(scHeroRankUpConfigByTypeStar!=null){
|
||||||
|
SCHeroRankUpConfig scHeroRankUpConfigStar = scHeroRankUpConfigByTypeStar.get(hero.getStar());
|
||||||
|
if(hero.getLevel()+1 > 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);
|
boolean result = ItemUtil.itemCost(user, consume);
|
||||||
if(!result){
|
if(!result){
|
||||||
|
@ -253,11 +281,6 @@ public class HeroLogic {
|
||||||
hero.setLevel( oldLevel + 1);
|
hero.setLevel( oldLevel + 1);
|
||||||
}else{
|
}else{
|
||||||
hero.setBreakId(breakId);
|
hero.setBreakId(breakId);
|
||||||
int upStar = scHeroRankUpConfig.getOpenStar() - hero.getStar();
|
|
||||||
if(upStar>0){
|
|
||||||
hero.upStar(upStar);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Map<Integer, Integer> heroAllAttribute = calHeroAllAttribute(hero);
|
Map<Integer, Integer> heroAllAttribute = calHeroAllAttribute(hero);
|
||||||
for(Map.Entry<Integer,Integer> item : heroAllAttribute.entrySet() ){
|
for(Map.Entry<Integer,Integer> item : heroAllAttribute.entrySet() ){
|
||||||
|
@ -414,22 +437,28 @@ public class HeroLogic {
|
||||||
Map<Integer,Float> result = new HashMap<>(2);
|
Map<Integer,Float> result = new HashMap<>(2);
|
||||||
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||||
float rankupPara =0.0f;
|
float rankupPara =0.0f;
|
||||||
|
//突破系数
|
||||||
|
float breakPara = 0.0f;
|
||||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
||||||
if(scHeroRankUpConfigByTypeOfStar!= null){
|
if(scHeroRankUpConfigByTypeOfStar!= null){
|
||||||
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar());
|
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar());
|
||||||
if( scHeroRankUpConfig!=null ){
|
if( scHeroRankUpConfig!=null && hero.getLevel() >= scHeroRankUpConfig.getLimitLevel()){
|
||||||
rankupPara = scHeroRankUpConfig.getRankupPara();
|
if(scHeroRankUpConfig.getType() == GlobalsDef.BREAK_TYPE){
|
||||||
|
breakPara = scHeroRankUpConfig.getRankupPara();
|
||||||
|
}else{
|
||||||
|
rankupPara = scHeroRankUpConfig.getRankupPara();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//突破系数
|
|
||||||
float breakPara = 0.0f;
|
|
||||||
int heroLevel = hero.getLevel();
|
int heroLevel = hero.getLevel();
|
||||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
||||||
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByTypOfBreak.values()){
|
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByTypOfBreak.values()){
|
||||||
if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() && hero.getBreakId()>= scHeroRankUpConfigTmp.getId()){
|
if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() && hero.getBreakId()>= scHeroRankUpConfigTmp.getId()){
|
||||||
breakPara = scHeroRankUpConfigTmp.getRankupPara();
|
breakPara = scHeroRankUpConfigTmp.getRankupPara();
|
||||||
}
|
}
|
||||||
if(heroLevel <= scHeroRankUpConfigTmp.getOpenLevel()){
|
if(heroLevel < scHeroRankUpConfigTmp.getOpenLevel()){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue