英雄限制,关卡排行榜修改
parent
295bb58b16
commit
3f40a3cedf
|
@ -28,7 +28,7 @@ public class CumulationData {
|
|||
// private Map<Integer,Integer> sHeroCountMap=new HashMap<>(); // 妖灵师数量统计
|
||||
|
||||
// * 获得某品质妖灵师 次数 获得需求品质妖灵师 3.4.5
|
||||
private int[] heroQualityCount = new int[3];
|
||||
private Map<Integer,Integer> heroQualityCount = new HashMap<>();
|
||||
|
||||
|
||||
/**
|
||||
|
@ -246,11 +246,11 @@ public class CumulationData {
|
|||
this.recruitmentRands = recruitmentRands;
|
||||
}
|
||||
public void updateHeroQualityCount(int quality){
|
||||
heroQualityCount[quality-3] = heroQualityCount[quality-3] +1;
|
||||
heroQualityCount.put(quality,getHeroQualityCount(quality)+1);
|
||||
}
|
||||
|
||||
public int[] getHeroQualityCount() {
|
||||
return heroQualityCount;
|
||||
public int getHeroQualityCount(int star) {
|
||||
return heroQualityCount.get(star)==null?0:heroQualityCount.get(star);
|
||||
}
|
||||
|
||||
public int[] getsEquipQualityCount() {
|
||||
|
|
|
@ -41,6 +41,8 @@ import util.TimeUtils;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class HeroLogic{
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(HeroLogic.class);
|
||||
|
@ -557,7 +559,13 @@ public class HeroLogic{
|
|||
throw new ErrorCodeException(ErrorCode.newDefineCode("hero null"));
|
||||
}
|
||||
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||
|
||||
int[] growthSwitch = scHero.getGrowthSwitch();
|
||||
if(growthSwitch!=null&&growthSwitch.length>0){
|
||||
Set<Integer> operateSet= Arrays.stream(growthSwitch).boxed().collect(Collectors.toSet());
|
||||
if(operateSet.contains(1)){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}
|
||||
int oldLevel = hero.getLevel();
|
||||
//判断需要进行升级还是进行突破
|
||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
||||
|
@ -648,6 +656,13 @@ public class HeroLogic{
|
|||
|
||||
int oldStar = targetHero.getStar();
|
||||
SCHero scHero = SCHero.getsCHero().get(targetHero.getTemplateId());
|
||||
int[] growthSwitch = scHero.getGrowthSwitch();
|
||||
if(growthSwitch!=null&&growthSwitch.length>0){
|
||||
Set<Integer> operateSet= Arrays.stream(growthSwitch).boxed().collect(Collectors.toSet());
|
||||
if(operateSet.contains(2)){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}
|
||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
||||
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldStar);
|
||||
if( targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()){
|
||||
|
@ -2120,6 +2135,13 @@ public class HeroLogic{
|
|||
}
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
int[] growthSwitch = SCHero.getsCHero().get(hero.getTemplateId()).getGrowthSwitch();
|
||||
if(growthSwitch!=null&&growthSwitch.length>0){
|
||||
Set<Integer> operateSet= Arrays.stream(growthSwitch).boxed().collect(Collectors.toSet());
|
||||
if(operateSet.contains(3)){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}
|
||||
int star = hero.getStar();
|
||||
int templateId = hero.getTemplateId();
|
||||
Map<Integer, SHeroReturn> sHeroReturnMap = SHeroReturn.sheroReturnMap.get(templateId);
|
||||
|
|
|
@ -417,7 +417,7 @@ public class MissionLoigc {
|
|||
count = cumulationData.getRecruitmentRands();
|
||||
break;
|
||||
case COLLECT_QUALITY_HERO:
|
||||
count = cumulationData.getHeroQualityCount()[missionSubType[0]-3];
|
||||
count = cumulationData.getHeroQualityCount(missionSubType[0]);
|
||||
break;
|
||||
case HERO_LEVLE_COUNT:
|
||||
count = cumulationData.getHeroLevleCountMap().get(missionSubType[0]);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
|
@ -10,6 +11,7 @@ import com.ljsd.jieling.protocols.CommonProto;
|
|||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
|
@ -88,20 +90,19 @@ public abstract class AbstractRank implements IRank {
|
|||
protected void getOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
|
||||
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
|
||||
CommonProto.RankInfo everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()))
|
||||
.build();
|
||||
CommonProto.UserRank everyRank = CommonProto.UserRank.newBuilder()
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder()
|
||||
.setUid(everyUser.getId())
|
||||
.setUserName(everyUser.getPlayerInfoManager().getNickName())
|
||||
.setHead(everyUser.getPlayerInfoManager().getHead())
|
||||
.setHeadFrame(everyUser.getPlayerInfoManager().getHeadFrame())
|
||||
.setLevel(everyUser.getPlayerInfoManager().getLevel())
|
||||
.setRankInfo(everyRankInfo)
|
||||
.build();
|
||||
.setForce(everyUser.getPlayerInfoManager().getMaxForce());
|
||||
builder.addRanks(everyRank);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -22,24 +22,37 @@ public class MainLevelRank extends AbstractRank {
|
|||
|
||||
@Override
|
||||
public int[] getDataByScore(double score) {
|
||||
return new int[]{Double.valueOf(score).intValue()};
|
||||
int i = Double.valueOf(score).intValue();
|
||||
return new int[]{i%10_000_000};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PlayerInfoProto.RankResponse.Builder getAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores, int start) throws Exception {
|
||||
return super.getAllUserResponse(zsetreverseRangeWithScores, start);
|
||||
PlayerInfoProto.RankResponse.Builder allUserResponse = super.getAllUserResponse(zsetreverseRangeWithScores, start);
|
||||
List<CommonProto.UserRank> ranksBuilderList = allUserResponse.getRanksList();
|
||||
if(ranksBuilderList.size()<2){
|
||||
return allUserResponse;
|
||||
}
|
||||
List<CommonProto.UserRank> builders = new ArrayList<>(ranksBuilderList);
|
||||
Collections.sort(builders,(o1, o2) -> {
|
||||
if(o1.getRankInfo().getParam1()==o2.getRankInfo().getParam1()){
|
||||
if(o1.getForce()>o2.getForce() &&o1.getRankInfo().getRank()>o2.getRankInfo().getRank()){
|
||||
CommonProto.UserRank rankInfo1 = o1 ;
|
||||
o1 = o2;
|
||||
o2 = rankInfo1;
|
||||
}
|
||||
}
|
||||
return o1.getRankInfo().getRank()-o2.getRankInfo().getRank();
|
||||
});
|
||||
PlayerInfoProto.RankResponse.Builder response = PlayerInfoProto.RankResponse.newBuilder();
|
||||
response.setMyRankInfo(allUserResponse.getMyRankInfo()).addAllRanks(builders);
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<ZSetOperations.TypedTuple<String>> getRankByKey(int start, int end) {
|
||||
Set<ZSetOperations.TypedTuple<String>> rankByKey = super.getRankByKey(start, end);
|
||||
// return rankByKey.stream().sorted(Comparator.comparing(v-> {
|
||||
// try {
|
||||
// return UserManager.getUser(Integer.parseInt(v.getValue())).getPlayerInfoManager().getMaxForce();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// })).collect(Collectors.toSet());
|
||||
|
||||
return rankByKey;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ public class SCHero implements BaseConfig{
|
|||
|
||||
private int natural;
|
||||
|
||||
private int[][] growthSwitch;
|
||||
private int[] growthSwitch;
|
||||
|
||||
private Map<Integer,Integer> secondaryFactorMap;
|
||||
|
||||
|
@ -273,7 +273,7 @@ public class SCHero implements BaseConfig{
|
|||
this.skillListByStar = skillListByStar;
|
||||
}
|
||||
|
||||
public int[][] getGrowthSwitch() {
|
||||
public int[] getGrowthSwitch() {
|
||||
return growthSwitch;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue