跨服灵脉秘境

xuexinpeng 2021-11-25 09:22:00 +08:00
parent 33d8fd7746
commit 1a60f70002
7 changed files with 28 additions and 18 deletions

View File

@ -5,7 +5,8 @@ public class LingMaiSecretArea {
private int uid; private int uid;
private String serverName; private String serverName;
private String name; private String name;
private long getAwardTimeOrOccupyTime;//得到奖励的时间或者占领的灵脉的时间 private long getAwardTimeOrOccupyTime;//得到奖励的时间(10分钟倒计时/被打下去或者打别人 时候有修改)或者占领的灵脉的时间
private long beginOccupyTime;//占领的时间点 占领第一次的时候、打下别人的时候、被别人打下的时候
//当日总积分 = score1+基础收益*occupyTime //当日总积分 = score1+基础收益*occupyTime
private int score1;//当前结算分 被人打下去后 这个分才会有值 private int score1;//当前结算分 被人打下去后 这个分才会有值
private int occupyTime;//占领的时长 以分钟为单位 private int occupyTime;//占领的时长 以分钟为单位
@ -66,4 +67,12 @@ public class LingMaiSecretArea {
public void setOccupyTime(int occupyTime) { public void setOccupyTime(int occupyTime) {
this.occupyTime = occupyTime; this.occupyTime = occupyTime;
} }
public long getBeginOccupyTime() {
return beginOccupyTime;
}
public void setBeginOccupyTime(long beginOccupyTime) {
this.beginOccupyTime = beginOccupyTime;
}
} }

View File

@ -138,7 +138,7 @@ public class CoreService implements RPCRequestIFace.Iface {
List<com.ljsd.jieling.logic.dao.TeamPosHeroInfo> lmmj = user.getTeamPosManager().getTeamPosForHero().getOrDefault(TeamEnum.CROSS_LING_MAI_SECRET_AREA.getTeamId(),new ArrayList<>()); List<com.ljsd.jieling.logic.dao.TeamPosHeroInfo> lmmj = user.getTeamPosManager().getTeamPosForHero().getOrDefault(TeamEnum.CROSS_LING_MAI_SECRET_AREA.getTeamId(),new ArrayList<>());
List<TeamPosHeroInfo> rpclmmj = new ArrayList<TeamPosHeroInfo>(); List<TeamPosHeroInfo> rpclmmj = new ArrayList<TeamPosHeroInfo>();
lmmj.forEach(n->rpclmmj.add(new TeamPosHeroInfo().setHeroId(n.getHeroId()).setPosition(n.getPosition()))); lmmj.forEach(n->rpclmmj.add(new TeamPosHeroInfo().setHeroId(n.getHeroId()).setPosition(n.getPosition())));
teams.put(TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId(),rpclmmj); teams.put(TeamEnum.CROSS_LING_MAI_SECRET_AREA.getTeamId(),rpclmmj);
set.addAll(rpclmmj); set.addAll(rpclmmj);
// 英雄 // 英雄
Map<String,ArenaOfHero> heroes = new HashMap<>(); Map<String,ArenaOfHero> heroes = new HashMap<>();

View File

@ -134,7 +134,7 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId)); crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId));
} }
LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid, user,crossGroup,group); LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid,crossGroup,group);
RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(id), lingMaiSecretArea); RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(id), lingMaiSecretArea);
} }
res.setResult(fightResult.getResult()); res.setResult(fightResult.getResult());
@ -201,10 +201,11 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
//oldOwner.setScore1(score); //oldOwner.setScore1(score);
oldOwner.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); oldOwner.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
oldOwner.setId(myLingmaiId); oldOwner.setId(myLingmaiId);
oldOwner.setBeginOccupyTime(TimeUtils.nowInt());
RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId), oldOwner); RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId), oldOwner);
} }
//易主 //易主
LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid, user,crossGroup,group); LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid,crossGroup,group);
RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(id), lingMaiSecretArea); RedisUtil.getInstence().putMapEntry(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(id), lingMaiSecretArea);
//挑战者记录 //挑战者记录
String key1 = RedisKey.getKey(RedisKey.CROSS_LINGMAISECRET_RECORD, String.valueOf(user.getId()), false); String key1 = RedisKey.getKey(RedisKey.CROSS_LINGMAISECRET_RECORD, String.valueOf(user.getId()), false);

View File

@ -69,8 +69,7 @@ public class CrossLingmaiSecretAreaInfoHandler extends BaseHandler<ArenaInfoProt
//CROSS_LINGMAISECRET_INFO:跨服分组:分组 //CROSS_LINGMAISECRET_INFO:跨服分组:分组
Map<String, LingMaiSecretArea> lingMaiMap = RedisUtil.getInstence().getMapValues(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.class, LingMaiSecretArea.class); Map<String, LingMaiSecretArea> lingMaiMap = RedisUtil.getInstence().getMapValues(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.class, LingMaiSecretArea.class);
if (page == 0) { if (page == 0) {
int id = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).mapToInt(n -> n.getId()).sum(); int id = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).limit(1).mapToInt(n -> n.getId()).sum();
//lingMaiMap.values().stream().anyMatch(n -> n.getUid() == uid).
if (SLodeConfig.lodeConfig.get(id) != null) { if (SLodeConfig.lodeConfig.get(id) != null) {
page = SLodeConfig.lodeConfig.get(id).getPageNo(); page = SLodeConfig.lodeConfig.get(id).getPageNo();
} else { } else {
@ -97,7 +96,7 @@ public class CrossLingmaiSecretAreaInfoHandler extends BaseHandler<ArenaInfoProt
List<LingMaiSecretArea> matchMyInfoList = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).collect(Collectors.toList()); List<LingMaiSecretArea> matchMyInfoList = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).collect(Collectors.toList());
if (matchMyInfoList != null && matchMyInfoList.size() > 0) { if (matchMyInfoList != null && matchMyInfoList.size() > 0) {
myOccupyId = matchMyInfoList.get(0).getId(); myOccupyId = matchMyInfoList.get(0).getId();
myOccupyTime = (int) matchMyInfoList.get(0).getGetAwardTimeOrOccupyTime(); myOccupyTime = (int) matchMyInfoList.get(0).getBeginOccupyTime();
} }
//当前页面数据 //当前页面数据
for (SLodeConfig config : pageConfig) { for (SLodeConfig config : pageConfig) {
@ -129,7 +128,7 @@ public class CrossLingmaiSecretAreaInfoHandler extends BaseHandler<ArenaInfoProt
} }
res.setMyOccupyId(myOccupyId); res.setMyOccupyId(myOccupyId);
res.setMyOccupyTime(myOccupyTime); res.setMyOccupyTime(myOccupyTime);
res.setRemainChangeTimes(1); //res.setRemainChangeTimes(1);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossLingmaiSecretAreaInfoResponse.getNumber(), res.build(), true); MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossLingmaiSecretAreaInfoResponse.getNumber(), res.build(), true);
} }
} }

View File

@ -42,18 +42,18 @@ public class CrossLingmaiLogic {
return CrossLingmaiLogic.Instance.instance; return CrossLingmaiLogic.Instance.instance;
} }
public static LingMaiSecretArea getLingaMaiData(int id, int uid, User user,int crossGroup,int group) { public static LingMaiSecretArea getLingaMaiData(int id, int uid,int crossGroup,int group) {
//排行榜上有数据 灵脉里没数据 说明被打下去了 //排行榜上有数据 灵脉里没数据 说明被打下去了
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_LINGMAI_RANK_PERSON.getType()); AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_LINGMAI_RANK_PERSON.getType());
double disappearScore = rank.getScoreById(user.getId(), crossGroup + RedisKey.Delimiter_colon + group); double disappearScore = rank.getScoreById(uid, crossGroup + RedisKey.Delimiter_colon + group);
LingMaiSecretArea lingMaiSecretArea = new LingMaiSecretArea(); LingMaiSecretArea lingMaiSecretArea = new LingMaiSecretArea();
lingMaiSecretArea.setId(id); lingMaiSecretArea.setId(id);
lingMaiSecretArea.setUid(uid); lingMaiSecretArea.setUid(uid);
String serverName = CrossServiceLogic.simplifyServerName(GameApplication.serverId); String serverName = CrossServiceLogic.simplifyServerName(GameApplication.serverId);
lingMaiSecretArea.setServerName(serverName); lingMaiSecretArea.setServerName(serverName);
lingMaiSecretArea.setName(user.getPlayerInfoManager().getNickName()); //lingMaiSecretArea.setName(user.getPlayerInfoManager().getNickName());
lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
lingMaiSecretArea.setBeginOccupyTime(TimeUtils.nowInt());
if(disappearScore>0){ if(disappearScore>0){
lingMaiSecretArea.setScore1((int) disappearScore); lingMaiSecretArea.setScore1((int) disappearScore);
} }

View File

@ -314,10 +314,10 @@ public class MinuteTask extends Thread {
int minute = calendar.get(Calendar.MINUTE); int minute = calendar.get(Calendar.MINUTE);
int w = calendar.get(Calendar.DAY_OF_WEEK) - 1; int w = calendar.get(Calendar.DAY_OF_WEEK) - 1;
//周二 四 六 开放 9点-21点 //周二 四 六 开放 9点-21点
if(w==0 || w ==2|| w==4 || w == 6){ if( w ==2|| w==4 || w == 6){
//占领奖励 //占领奖励
if(hour>9&&hour<21){ if(hour>=9&&hour<=21){
int mod = minute%10; int mod = minute%10;
if(mod ==0 ){ if(mod ==0 ){
CrossLingmaiLogic.getInstance().sendOccypyReward(); CrossLingmaiLogic.getInstance().sendOccypyReward();
@ -327,7 +327,8 @@ public class MinuteTask extends Thread {
if(hour ==21 && minute==0){ if(hour ==21 && minute==0){
CrossLingmaiLogic.getInstance().sendMailReward(); CrossLingmaiLogic.getInstance().sendMailReward();
} }
if(hour == 9&& minute==0){ //0点清除数据
if(hour == 0&& minute==0){
CrossLingmaiLogic.getInstance().initData(); CrossLingmaiLogic.getInstance().initData();
} }

View File

@ -44,7 +44,7 @@ public class SMServerLodeSetting implements BaseConfig {
public static int getGroupByLevel(int level){ public static int getGroupByLevel(int level){
SMServerLodeSetting config = lodeConfig.get(1); SMServerLodeSetting config = lodeConfig.get(1);
if(config==null){ if(config==null){
return 0; return 2;
} }
int[][]group = config.getGroup(); int[][]group = config.getGroup();
if(level>=group[0][1]&&level<=group[0][2]){ if(level>=group[0][1]&&level<=group[0][2]){
@ -53,7 +53,7 @@ public class SMServerLodeSetting implements BaseConfig {
if(level>=group[1][1]&&level<=group[1][2]){ if(level>=group[1][1]&&level<=group[1][2]){
return group[1][0]; return group[1][0];
} }
return 1; return 2;
} }
public int getId() { public int getId() {