Merge remote-tracking branch 'origin/master_test_gn' into master_test_gn

back_recharge
duhui 2022-09-07 13:32:27 +08:00
commit 43b3eaca7f
3 changed files with 94 additions and 8 deletions

View File

@ -43,13 +43,8 @@ public class GetPlayerOneTeamInfo extends BaseHandler<PlayerInfoProto.GetPlayerO
oneTeamInfo = PlayerLogic.getInstance().getOneTeamInfo(info.getEnemyId(),proto.getTeamId(),info);
}else{
//真人
List<Integer> teamId =new ArrayList<>(1);
teamId.add(proto.getTeamId());
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;
oneTeamInfo = PlayerLogic.getInstance().getCrossOneTeamInfo(proto.getPlayerId(),proto.getTeamId());
}
}
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.GET_PLAYER_ONE_TEAM_INFO_RESPONSE.getNumber(),oneTeamInfo,true);

View File

@ -917,7 +917,7 @@ public class FightUtil {
return CommonProto.FightTeamInfo.
newBuilder()
.addAllFightUnitList(heroFightInfos)
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemon(crossArenaManager,csPlayer))
.addAllPokemonUnitList(new ArrayList<>())
.setTeamPassiveList("")
.setForceScore(crossArenaManager.getMaxHistoryForce())
.build();

View File

@ -1949,4 +1949,95 @@ public class PlayerLogic {
builder.setHero(heroBuilder);
return builder.build();
}
//获取跨服非玉虚玩家队伍信息
public PlayerInfoProto.GetPlayerOneTeamInfoResponse getCrossOneTeamInfo(int id,int teamId) throws Exception {
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(id);
if(csPlayer==null){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
//如果是本服玩家 直接本服调用数据
if(GameApplication.serverId == csPlayer.getServerId()){
User user = UserManager.getUserNotCache(id);
if (user == null){
throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT);
}
return PlayerLogic.getInstance().getOneTeamInfo(id, teamId);
}
//基本信息从redis中拿 剩下的队伍 属性 数据量大的数据rpc调用
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
CommonProto.TeamOneInfo.Builder oneTeamInfo = CommonProto.TeamOneInfo.newBuilder()
.setHead(csPlayer.getHead())
.setHeadFrame(csPlayer.getHeadFrame())
.setUserTitle(csPlayer.getUserTitle())
.setLevel(csPlayer.getLevel())
.setName(csPlayer.getName())
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse("")) //csPlayer.getGuildName()
.setPracticeLevel(csPlayer.getPracticeLevel())
.setUid(id).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
.setServerName(serverName);
CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
if(crossArenaManager == null){
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
}
//rpc 数据调用测试
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())
.setGodSoulLv(hero.getGodSoulLv())
.setPropertyId(hero.getPropertyId())
.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());
//四象心法数据
teamOneTeamInfo.addAllSixiangxinfaInfo(RpcData2sixiangData(crossArenaManager.getSixiangInfos()));
//命格
teamOneTeamInfo.addAllLifeGridInfo(RpcData2LifeGridInfos(crossArenaManager));
//玩家坐骑信息
teamOneTeamInfo.addAllUserMountInfo(getUserMountList(crossArenaManager.getUserMountValidTime()));
//身外化身
teamOneTeamInfo.addAllTransformationCardInfo(getTransformationInfoListFromRpc(crossArenaManager.getTransformationList()));
oneTeamInfo.setTeam(teamOneTeamInfo);
PlayerInfoProto.GetPlayerOneTeamInfoResponse.Builder playerTeamInfo = PlayerInfoProto.GetPlayerOneTeamInfoResponse.newBuilder().setTeamInfo(oneTeamInfo);
return playerTeamInfo.build();
}
}