跨服灵脉

back_recharge
xuexinpeng 2021-11-25 19:17:21 +08:00
parent 3b091987e9
commit 64b5e819da
2 changed files with 19 additions and 6 deletions

View File

@ -190,12 +190,14 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
60 : ((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60); 60 : ((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60);
long tempScore = second*config.getRewardList()[0][1]/60; long tempScore = second*config.getRewardList()[0][1]/60;
LOGGER.info("uid:"+uid+"pvp other occupy id:"+id+" minute:"+minute+"second:"+second); LOGGER.info("uid:"+uid+"pvp other occupy id:"+id+" minute:"+minute+"second:"+second);
oldOwner.setScore1(oldOwner.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore); //oldOwner.setScore1(oldOwner.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore);
long score = oldOwner.getScore1() + config.getRewardList()[0][1]*(long)oldOwner.getOccupyTime()/60; int score1 =oldOwner.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore;
rank.addRank(defUid, String.valueOf(crossGroup) + RedisKey.Delimiter_colon + group, score); long scoreOld = score1 + config.getRewardList()[0][1]*(long)oldOwner.getOccupyTime()/60;
rank.addRank(defUid, String.valueOf(crossGroup) + RedisKey.Delimiter_colon + group, scoreOld);
LingMaiSecretArea myLingmai =null;
if (myLingmaiId != 0) { if (myLingmaiId != 0) {
//本人已有灵脉结算 //本人已有灵脉结算
LingMaiSecretArea myLingmai = lingMaiMap.get(String.valueOf(myLingmaiId));//上一个占领者 myLingmai = lingMaiMap.get(String.valueOf(myLingmaiId));//上一个占领者
config = SLodeConfig.lodeConfig.get(myLingmaiId); config = SLodeConfig.lodeConfig.get(myLingmaiId);
//minute = ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60) > 10 ? 10 : ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60); //minute = ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60) > 10 ? 10 : ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60);
minute = ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60); minute = ((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) / 60);
@ -203,21 +205,29 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
60 : ((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60); 60 : ((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60);
LOGGER.info("uid:"+uid+"pvp owner occupy id:"+myLingmaiId+" minute:"+minute+"second:"+second); LOGGER.info("uid:"+uid+"pvp owner occupy id:"+myLingmaiId+" minute:"+minute+"second:"+second);
tempScore =(second*config.getRewardList()[0][1]/60); tempScore =(second*config.getRewardList()[0][1]/60);
score1 = myLingmai.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore;
//long newScore = score1+
myLingmai.setScore1(myLingmai.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore); myLingmai.setScore1(myLingmai.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore);
myLingmai.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); myLingmai.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
score = myLingmai.getScore1() + config.getRewardList()[0][1] * (long)myLingmai.getOccupyTime()/60; //我的
long score = score1 + config.getRewardList()[0][1] * (long)myLingmai.getOccupyTime()/60;
rank = RankContext.getRankEnum(RankEnum.CROSS_LINGMAI_RANK_PERSON.getType()); rank = RankContext.getRankEnum(RankEnum.CROSS_LINGMAI_RANK_PERSON.getType());
rank.addRank(user.getId(), String.valueOf(crossGroup) + RedisKey.Delimiter_colon + group, score); rank.addRank(user.getId(), String.valueOf(crossGroup) + RedisKey.Delimiter_colon + group, score);
myLingmai.setScore1((int)score);
//两边都计算分 置换 //两边都计算分 置换
//oldOwner.setScore1(score); //oldOwner.setScore1(score);
oldOwner.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); oldOwner.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
oldOwner.setId(myLingmaiId); oldOwner.setId(myLingmaiId);
oldOwner.setBeginOccupyTime(TimeUtils.nowInt()); oldOwner.setBeginOccupyTime(TimeUtils.nowInt());
oldOwner.setOccupyTime(0); oldOwner.setOccupyTime(0);
oldOwner.setScore1((int)scoreOld);
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,crossGroup,group); LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid,crossGroup,group);
if(myLingmai!=null){
lingMaiSecretArea.setScore1(myLingmai.getScore1());
}
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

@ -55,8 +55,11 @@ public class CrossLingmaiLogic {
lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
lingMaiSecretArea.setBeginOccupyTime(TimeUtils.nowInt()); lingMaiSecretArea.setBeginOccupyTime(TimeUtils.nowInt());
if(disappearScore>0){ if(disappearScore>0){
Map<String, LingMaiSecretArea> lingMaiMap = RedisUtil.getInstence().getMapValues(RedisKey.CROSS_LINGMAISECRET_INFO, crossGroup + RedisKey.Delimiter_colon + group, String.class, LingMaiSecretArea.class);
if(!lingMaiMap.values().stream().anyMatch(n->n.getUid()!=uid)){
lingMaiSecretArea.setScore1((int) disappearScore); lingMaiSecretArea.setScore1((int) disappearScore);
} }
}
return lingMaiSecretArea; return lingMaiSecretArea;
} }