跨服灵脉秘境

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 String serverName;
private String name;
private long getAwardTimeOrOccupyTime;//得到奖励的时间或者占领的灵脉的时间
private long getAwardTimeOrOccupyTime;//得到奖励的时间(10分钟倒计时/被打下去或者打别人 时候有修改)或者占领的灵脉的时间
private long beginOccupyTime;//占领的时间点 占领第一次的时候、打下别人的时候、被别人打下的时候
//当日总积分 = score1+基础收益*occupyTime
private int score1;//当前结算分 被人打下去后 这个分才会有值
private int occupyTime;//占领的时长 以分钟为单位
@ -66,4 +67,12 @@ public class LingMaiSecretArea {
public void setOccupyTime(int 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<TeamPosHeroInfo> rpclmmj = new ArrayList<TeamPosHeroInfo>();
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);
// 英雄
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));
}
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);
}
res.setResult(fightResult.getResult());
@ -201,10 +201,11 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
//oldOwner.setScore1(score);
oldOwner.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
oldOwner.setId(myLingmaiId);
oldOwner.setBeginOccupyTime(TimeUtils.nowInt());
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);
//挑战者记录
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:跨服分组:分组
Map<String, LingMaiSecretArea> lingMaiMap = RedisUtil.getInstence().getMapValues(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.class, LingMaiSecretArea.class);
if (page == 0) {
int id = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).mapToInt(n -> n.getId()).sum();
//lingMaiMap.values().stream().anyMatch(n -> n.getUid() == uid).
int id = lingMaiMap.values().stream().filter(n -> n.getUid() == uid).limit(1).mapToInt(n -> n.getId()).sum();
if (SLodeConfig.lodeConfig.get(id) != null) {
page = SLodeConfig.lodeConfig.get(id).getPageNo();
} 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());
if (matchMyInfoList != null && matchMyInfoList.size() > 0) {
myOccupyId = matchMyInfoList.get(0).getId();
myOccupyTime = (int) matchMyInfoList.get(0).getGetAwardTimeOrOccupyTime();
myOccupyTime = (int) matchMyInfoList.get(0).getBeginOccupyTime();
}
//当前页面数据
for (SLodeConfig config : pageConfig) {
@ -129,7 +128,7 @@ public class CrossLingmaiSecretAreaInfoHandler extends BaseHandler<ArenaInfoProt
}
res.setMyOccupyId(myOccupyId);
res.setMyOccupyTime(myOccupyTime);
res.setRemainChangeTimes(1);
//res.setRemainChangeTimes(1);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.CrossLingmaiSecretAreaInfoResponse.getNumber(), res.build(), true);
}
}

View File

@ -42,18 +42,18 @@ public class CrossLingmaiLogic {
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());
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.setId(id);
lingMaiSecretArea.setUid(uid);
String serverName = CrossServiceLogic.simplifyServerName(GameApplication.serverId);
lingMaiSecretArea.setServerName(serverName);
lingMaiSecretArea.setName(user.getPlayerInfoManager().getNickName());
//lingMaiSecretArea.setName(user.getPlayerInfoManager().getNickName());
lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
lingMaiSecretArea.setBeginOccupyTime(TimeUtils.nowInt());
if(disappearScore>0){
lingMaiSecretArea.setScore1((int) disappearScore);
}

View File

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

View File

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