罗浮争锋排行榜信息
parent
bd6d205053
commit
b0e341601e
|
@ -45,10 +45,10 @@ public class GetPlayerOneTeamInfo extends BaseHandler<PlayerInfoProto.GetPlayerO
|
|||
oneTeamInfo = PlayerLogic.getInstance().getOneTeamInfo(info.getEnemyId(),proto.getTeamId(),info);
|
||||
}else{
|
||||
//真人
|
||||
List<Integer> teamId =new ArrayList<>();
|
||||
List<Integer> teamId =new ArrayList<>(1);
|
||||
teamId.add(proto.getTeamId());
|
||||
//oneTeamInfo = PlayerLogic.getInstance().getCrossOneTeamInfo(proto.getPlayerId(),proto.getTeamId());
|
||||
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo( PlayerLogic.getInstance().getCrossYxldOneTeamInfo(proto.getPlayerId(), teamId));
|
||||
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo( PlayerLogic.getInstance().getCrossYxldOneTeamInfoNew(proto.getPlayerId(), teamId));
|
||||
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.GET_PLAYER_ONE_TEAM_INFO_RESPONSE.getNumber(),playerTeamInfo.build(),true);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1040,6 +1040,85 @@ public class PlayerLogic {
|
|||
return builder.build();
|
||||
}
|
||||
|
||||
//获取跨服玩家信息
|
||||
public CommonProto.TeamOneInfo getCrossYxldOneTeamInfoNew(int id,List<Integer> team) throws Exception {
|
||||
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
|
||||
if(csPlayer==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
|
||||
String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId());
|
||||
CommonProto.TeamOneInfo.Builder builder = CommonProto.TeamOneInfo.newBuilder()
|
||||
.setHead(csPlayer.getHead())
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserTitle(csPlayer.getUserTitle())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
.setName(csPlayer.getName())
|
||||
.setGuildName("nb guild") //csPlayer.getGuildName()
|
||||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setUid(id).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
|
||||
.setServerName(serverName);
|
||||
//如果是本服玩家 直接本服调用数据
|
||||
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
|
||||
if(GameApplication.serverId == csPlayer.getServerId()){
|
||||
User user = UserManager.getUser(id);
|
||||
return PlayerLogic.getInstance().getCrossYxldMyTeamInfo(user, team);
|
||||
}
|
||||
CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
|
||||
if(crossArenaManager == null){
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
//rpc 数据调用测试
|
||||
for(int teamId: team){
|
||||
CommonProto.TeamOneTeamInfo.Builder teamOneTeamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
|
||||
List<com.ljsd.jieling.thrift.idl.TeamPosHeroInfo> teamPosHeroInfos = crossArenaManager.getTeams().get(teamId);
|
||||
if(teamPosHeroInfos!=null){
|
||||
for (com.ljsd.jieling.thrift.idl.TeamPosHeroInfo heroInfo:teamPosHeroInfos) {
|
||||
com.ljsd.jieling.thrift.idl.ArenaOfHero hero = crossArenaManager.getHeros().get(heroInfo.getHeroId());
|
||||
teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
|
||||
.setHeroid(hero.getId())
|
||||
.setHeroTid(hero.getTemplateId())
|
||||
.setLevel(hero.getLevel())
|
||||
.setStar(hero.getStar())
|
||||
.setPosition(heroInfo.getPosition())
|
||||
.setSkinId(hero.getSkin())
|
||||
.build());
|
||||
}
|
||||
}
|
||||
if(crossArenaManager.getPokemons()!=null){
|
||||
Map<String, com.ljsd.jieling.thrift.idl.Pokemon> pokemonMap = crossArenaManager.getPokemons();
|
||||
Map<Integer, String> teamMap = crossArenaManager.getPokemonTeamMap();
|
||||
for(Map.Entry<Integer, String> entry :teamMap.entrySet()){
|
||||
// clone 深度复制
|
||||
com.ljsd.jieling.thrift.idl.Pokemon pokemon = pokemonMap.get(entry.getValue());
|
||||
pokemon.setTmpId(pokemon.getTmpId());
|
||||
pokemon.setId(pokemon.getId());
|
||||
pokemon.setLevel(pokemon.getLevel());
|
||||
pokemon.setStar(pokemon.getStar());
|
||||
teamOneTeamInfo.addPokemonInfos(CBean2Proto.getSimpleTeamInfoByPokeMon(pokemon, entry.getKey()));
|
||||
}
|
||||
}
|
||||
LOGGER.info("=====================跨服获取阵容:{}",teamId);
|
||||
Integer integer = crossArenaManager.getTotalForceByTeam().getOrDefault(teamId,0);
|
||||
teamOneTeamInfo.setTotalForce(integer);
|
||||
if(crossArenaManager.getSeals()!= null){
|
||||
for(Map.Entry<Integer, com.ljsd.jieling.thrift.idl.PurpleMansionSeal> entry:crossArenaManager.getSeals().entrySet()){
|
||||
com.ljsd.jieling.thrift.idl.PurpleMansionSeal value = entry.getValue();
|
||||
com.ljsd.jieling.thrift.idl.ArenaOfHero arenaOfHero = crossArenaManager.getHeros().get(value.getSubId());
|
||||
if(value.getState()==0){
|
||||
continue;
|
||||
}
|
||||
teamOneTeamInfo.addSealShow(CommonProto.PurpleSealShowInfo.newBuilder().setType(value.getType()).setId(value.getSealId()).setHeroTId(arenaOfHero==null?0:arenaOfHero.getTemplateId()));
|
||||
}
|
||||
}
|
||||
//builder.setTeam(teamOneTeamInfo.build());
|
||||
//builder.addCrossTeam(teamOneTeamInfo.build());
|
||||
builder.setTeam(teamOneTeamInfo.build());
|
||||
}
|
||||
//PlayerInfoProto.GetPlayerCrossYxldOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerCrossYxldOneTeamInfoResponse.newBuilder().setTeamInfo(builder.build());
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public PlayerInfoProto.GetPlayerOneTeamInfoResponse getCrossOneTeamInfo(int id,List<Integer> crossTeamId) throws Exception {
|
||||
ArenaOfUser query = CrossServiceLogic.getInstance().query(id);
|
||||
if(query==null){
|
||||
|
|
Loading…
Reference in New Issue