Merge branch 'master_prb_gn' into master_test_gn

back_recharge
xuexinpeng 2021-11-26 13:14:58 +08:00
commit e944250fb8
3 changed files with 44 additions and 14 deletions

View File

@ -118,6 +118,7 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
} else if (fightResult.getResult() == 1) { } else if (fightResult.getResult() == 1) {
//赢了 //赢了
//结算已有的灵脉 //结算已有的灵脉
int score =0;
if (myLingmaiId != 0){ if (myLingmaiId != 0){
LingMaiSecretArea myLingmai = lingMaiMap.get(String.valueOf(myLingmaiId)); LingMaiSecretArea myLingmai = lingMaiMap.get(String.valueOf(myLingmaiId));
config = SLodeConfig.lodeConfig.get(myLingmaiId); config = SLodeConfig.lodeConfig.get(myLingmaiId);
@ -128,7 +129,7 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
myLingmai.setScore1(myLingmai.getScore1() + minute*config.getRewardList()[0][1]+(second*config.getRewardList()[0][1]/60)); myLingmai.setScore1(myLingmai.getScore1() + minute*config.getRewardList()[0][1]+(second*config.getRewardList()[0][1]/60));
//myLingmai.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt()); //myLingmai.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
LOGGER.info("uid:"+uid+"first occupy myLingmaiId: "+myLingmaiId+" minute:"+minute+"second:"+second); LOGGER.info("uid:"+uid+"first occupy myLingmaiId: "+myLingmaiId+" minute:"+minute+"second:"+second);
int score = myLingmai.getScore1() + config.getRewardList()[0][1] * myLingmai.getOccupyTime()/60; score = myLingmai.getScore1() + config.getRewardList()[0][1] * 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);
//清除已有灵脉数据 //清除已有灵脉数据
@ -136,8 +137,23 @@ public class CrossLingmaiSecretAreaBattleHandler extends BaseHandler<ArenaInfoPr
RedisUtil.getInstence().removeMapEntrys(RedisKey.CROSS_LINGMAISECRET_INFO, RedisUtil.getInstence().removeMapEntrys(RedisKey.CROSS_LINGMAISECRET_INFO,
crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId)); crossGroup + RedisKey.Delimiter_colon + group, String.valueOf(myLingmaiId));
} }
LingMaiSecretArea lingMaiSecretArea = new LingMaiSecretArea();
LingMaiSecretArea lingMaiSecretArea = CrossLingmaiLogic.getLingaMaiData(id, uid,crossGroup,group); lingMaiSecretArea.setId(id);
lingMaiSecretArea.setUid(uid);
String serverName = CrossServiceLogic.simplifyServerName(GameApplication.serverId);
lingMaiSecretArea.setServerName(serverName);
lingMaiSecretArea.setGetAwardTimeOrOccupyTime(TimeUtils.nowInt());
lingMaiSecretArea.setBeginOccupyTime(TimeUtils.nowInt());
if(myLingmaiId != 0&&score!=0){
lingMaiSecretArea.setScore1(score);
}
//被打下榜 重新上
if(myLingmaiId ==0){
double disappearScore = rank.getScoreById(uid, crossGroup + RedisKey.Delimiter_colon + group);
if(disappearScore>0){
lingMaiSecretArea.setScore1((int) disappearScore);
}
}
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());
@ -190,33 +206,44 @@ 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);
second =((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60) >60 ? second =((TimeUtils.nowInt() - (int)myLingmai.getGetAwardTimeOrOccupyTime()) % 60) >60 ?
60 : ((TimeUtils.nowInt() - (int)oldOwner.getGetAwardTimeOrOccupyTime()) % 60); 60 : ((TimeUtils.nowInt() - (int)myLingmai.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);
myLingmai.setScore1(myLingmai.getScore1()+minute*config.getRewardList()[0][1]+(int)tempScore); 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.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.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,7 +55,10 @@ 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){
lingMaiSecretArea.setScore1((int) disappearScore); 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);
}
} }
return lingMaiSecretArea; return lingMaiSecretArea;
} }

View File

@ -336,12 +336,12 @@ public class MinuteTask extends Thread {
} }
//bug 修复 //bug 修复
if(w==4){ /*if(w==4){
if(hour ==10 && minute ==50){ if(hour ==10 && minute ==50){
LOGGER.error("lingmaimijing0 000000"); LOGGER.error("lingmaimijing0 000000");
CrossLingmaiLogic.getInstance().fixBug(); CrossLingmaiLogic.getInstance().fixBug();
} }
} }*/
} }
} }
} }