跨服修改
parent
4639b612ea
commit
b858575a71
|
|
@ -26,6 +26,7 @@ import com.ljsd.jieling.logic.dao.gm.ArenaOfUser;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.FightUtil;
|
||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
|
|
@ -156,11 +157,12 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
|
|||
}
|
||||
|
||||
|
||||
int defendForce = 0;
|
||||
if (proto.getChallengeUid()>1000) {
|
||||
ArenaOfUser arenaOfUser = CrossServiceLogic.getInstance().query(proto.getChallengeUid());
|
||||
teamInfo = FightUtil.makeCrossPersonData(arenaOfUser);
|
||||
arenaEnemys =ArenaLogic.getInstance().getUserCrossArenaEnemy(crossGroup,arenaOfUser,proto.getChallengeRank(),false).build();
|
||||
|
||||
defendForce = arenaOfUser.getHeroManager().getTotalForce();
|
||||
} else {
|
||||
//机器人
|
||||
|
||||
|
|
@ -169,13 +171,15 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
|
|||
teamInfo = FightUtil.makeRobotFightData(info.getEnemyId());
|
||||
// force = SArenaRobotConfig.getsArenaRobotConfigById(info.getEnemyId()).getTotalForce();
|
||||
arenaEnemys =ArenaLogic.getInstance().getRobotCrossArenaEnemy(crossGroup,proto.getChallengeRank(),proto.getChallengeUid()).build();
|
||||
defendForce = info.getTotalForce();
|
||||
}
|
||||
arenaAttack = CommonProto.ArenaEnemy.newBuilder().setPersonInfo(CommonProto.ArenaPersonInfo.newBuilder().setUid(iSession.getUid()).setName(user.getPlayerInfoManager().getNickName()).setTotalForce(user.getPlayerInfoManager().getMaxForce()).setServername(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId))).build();
|
||||
arenaAttack = CommonProto.ArenaEnemy.newBuilder().setPersonInfo(CommonProto.ArenaPersonInfo.newBuilder().setUid(iSession.getUid()).setName(user.getPlayerInfoManager().getNickName()).setTotalForce(user.getPlayerInfoManager().getMaxForce()).setServername(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId)).setPracticeLevel(user.getHeroManager().getPracticeLevel())).build();
|
||||
|
||||
int myForce = HeroLogic.getInstance().calTeamTotalForce(user, proto.getTeamId(), true);
|
||||
// boolean isRevert = proto.getTotalForce() < force;
|
||||
int teamId = proto.getTeamId();
|
||||
CommonProto.FightTeamInfo fightTeamInfo = FightUtil.makePersonFightData(UserManager.getUser(iSession.getUid()), teamId, null, null);
|
||||
FightResult fightResult = getFightForPVP(iSession.getUid(), proto.getChallengeUid(), fightTeamInfo, teamInfo, FightUtil.getFightSeed(), false);
|
||||
FightResult fightResult = getFightForPVP(iSession.getUid(), proto.getChallengeUid(), fightTeamInfo, teamInfo, FightUtil.getFightSeed(),myForce<defendForce);
|
||||
builder1.setFightResult((int)fightResult.getCheckResult()[0]);
|
||||
int seed = fightResult.getSeed();
|
||||
CommonProto.FightData build = CommonProto.FightData.newBuilder()
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@ public class GlobleSystemLogic implements IEventHandler {
|
|||
int rankEndLine = 50;
|
||||
RedisUtil.getInstence().del(GameApplication.serverId+":"+RedisKey.WORLD_CALCUL_LEVE_RAND+":");
|
||||
double sum=0;
|
||||
int level = 1;
|
||||
//缓存为null 从库里查
|
||||
Query query = new Query();
|
||||
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
|
||||
|
|
@ -157,24 +158,26 @@ public class GlobleSystemLogic implements IEventHandler {
|
|||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
for (int j = 0; j <users.size() ; j++) {
|
||||
String rankKey = RedisKey.getKey(RedisKey.WORLD_CALCUL_LEVE_RAND,"", false);
|
||||
RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(users.get(j).getId()), users.get(j).getPlayerInfoManager().getLevel());
|
||||
}
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.WORLD_CALCUL_LEVE_RAND, "", 0, rankEndLine - 1);
|
||||
if(users.size()>=50) {
|
||||
for (int j = 0; j <users.size() ; j++) {
|
||||
String rankKey = RedisKey.getKey(RedisKey.WORLD_CALCUL_LEVE_RAND,"", false);
|
||||
RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(users.get(j).getId()), users.get(j).getPlayerInfoManager().getLevel());
|
||||
}
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.WORLD_CALCUL_LEVE_RAND, "", 0, rankEndLine - 1);
|
||||
|
||||
|
||||
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
|
||||
double score = item.getScore();
|
||||
sum+=score;
|
||||
for (ZSetOperations.TypedTuple<String> item : rankInfo) {
|
||||
double score = item.getScore();
|
||||
sum+=score;
|
||||
// if(i==rankEndLine){
|
||||
// //更新line名分数缓存
|
||||
// setGloableWorldLeveCacheLine((int)score);
|
||||
// }
|
||||
}
|
||||
|
||||
level = (int) Math.ceil(sum / (double) Math.min(rankInfo.size(), rankEndLine));
|
||||
}
|
||||
|
||||
int level = (int) Math.ceil(sum / (double) Math.min(rankInfo.size(), rankEndLine));
|
||||
setGlobalWorldLevelCache(level);
|
||||
LOGGER.info("计算了一次世界等级->{}",level);
|
||||
// if (rankInfo.size() > rankEndLine + 100) {
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import rpc.protocols.ArenaInfoProto;
|
|||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.FightInfoProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.world.WorldProto;
|
||||
import util.MathUtils;
|
||||
import util.StringUtil;
|
||||
import util.TimeUtils;
|
||||
|
|
@ -68,7 +69,7 @@ public class ArenaLogic {
|
|||
public static ArenaLogic getInstance() {
|
||||
return ArenaLogic.Instance.instance;
|
||||
}
|
||||
|
||||
|
||||
private int curSeason;
|
||||
private int viewSeason;
|
||||
|
||||
|
|
@ -607,7 +608,7 @@ public class ArenaLogic {
|
|||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
public void updateArenaSeason(int curSeason){
|
||||
this.curSeason = curSeason;
|
||||
//初始化竞技场新周期数据
|
||||
|
|
@ -700,6 +701,10 @@ public class ArenaLogic {
|
|||
private void b2r(){
|
||||
if(state != RELAX_STATE){
|
||||
if(state==BATTLE_STATE){
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true);
|
||||
}
|
||||
LOGGER.info("罗浮争锋,发奖");
|
||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||
if(crossGroup==-1){
|
||||
|
|
@ -734,13 +739,14 @@ public class ArenaLogic {
|
|||
}
|
||||
|
||||
try {
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",state);
|
||||
setState(RELAX_STATE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -760,6 +766,10 @@ public class ArenaLogic {
|
|||
return;
|
||||
}
|
||||
initRank();
|
||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ public class CrossArenaRank extends AbstractRank {
|
|||
.setLevel(100)
|
||||
.setUserSkin(80012)
|
||||
.setRankInfo(everyRankInfo)
|
||||
.setServerName(CrossServiceLogic.getInstance().findServerName(mapEntry.getServerID()))
|
||||
.setSex(0);
|
||||
builder.addRanks(everyRank);
|
||||
}else{
|
||||
|
|
@ -84,6 +85,7 @@ public class CrossArenaRank extends AbstractRank {
|
|||
.setRankInfo(everyRankInfo)
|
||||
.setForce(query.getHeroManager().getTotalForce())
|
||||
.setPracticeLevel(query.getPlayerManager().getPracticeLevel())
|
||||
.setServerName(query.getPlayerManager().getServerName())
|
||||
.setSex(0);
|
||||
builder.addRanks(everyRank);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue