查看队伍team新接口 帮会id赋值

xuexinpeng 2022-01-03 01:01:52 +08:00
parent 0994b02b85
commit 7281a39cd2
2 changed files with 72 additions and 1 deletions

View File

@ -309,6 +309,7 @@ public class CrossServiceLogic {
player.setUserMount(p.getUserMount());
player.setCrossYuxulundaoNewScore(newScore);
player.setCrossYuxulundaoOldScore(oldScore);
player.setGuildId(p.getGuildId());
//player.setGuildId();
//三个队伍总战力
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, false);
@ -357,6 +358,7 @@ public class CrossServiceLogic {
player.setUserMount(p.getUserMount());
player.setCrossYuxulundaoNewScore(0);
player.setCrossYuxulundaoOldScore(0);
player.setGuildId(p.getGuildId());
//player.setGuildId();
//三个队伍总战力
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE, false);

View File

@ -933,6 +933,75 @@ public class PlayerLogic {
}
return builder.build();
}
//获取跨服玩家信息
public CommonProto.TeamOneInfo getCrossYxldMyTeamInfoNew(User user,List<Integer> team) throws Exception{
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(user.getId());
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(user.getId()).setCrossTeamScore(csPlayer.getCrossYuxulundaoNewScore())
.setServerName(serverName);
for(int teamId: team){
CommonProto.TeamOneTeamInfo.Builder teamOneTeamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
List<TeamPosHeroInfo> teamPosHeroInfos =user.getTeamPosManager().getTeamPosForHero().getOrDefault(teamId,new ArrayList<>());
if(teamPosHeroInfos!=null){
for (TeamPosHeroInfo heroInfo:teamPosHeroInfos){
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Hero hero = heroMap.get(heroInfo.getHeroId());
if(hero == null){
continue;
}
teamOneTeamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
.setHeroid(hero.getId())
.setHeroTid(hero.getTemplateId())
.setLevel(hero.getLevel(user.getHeroManager()))
.setStar(hero.getStar())
.setPosition(heroInfo.getPosition())
.setSkinId(hero.getSkin())
.build());
}
}
// 灵兽
Map<String, Pokemon> pokemonMap = user.getPokemonManager().getPokemonMap();
Map<Integer, String> teamMap = user.getPokemonManager().getPokemonTeamMap();
for (Map.Entry<Integer, String> entry : teamMap.entrySet()) {
// clone 深度复制
Pokemon pokemon = (Pokemon)pokemonMap.get(entry.getValue()).clone();
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 = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
teamOneTeamInfo.setTotalForce(integer);
for(Map.Entry<Integer, PurpleMansionSeal> entry:user.getHeroManager().getPurpleMansionSeal().entrySet()){
PurpleMansionSeal value = entry.getValue();
Map<String, Hero> heroMap = user.getHeroManager().getHeroMap();
Hero hero = heroMap.get(value.getSubId());
if(value.getState()==0){
continue;
}
teamOneTeamInfo.addSealShow(CommonProto.PurpleSealShowInfo.newBuilder().setType(value.getType()).
setId(value.getSealId()).setHeroTId(hero==null?0:hero.getTemplateId()));
}
builder.setTeam(teamOneTeamInfo.build());
//builder.addCrossTeam(teamOneTeamInfo.build());
}
return builder.build();
}
public CrossArenaManager getCrossArenaManagerData(CSPlayer csPlayer )throws Exception{
String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, String.valueOf(csPlayer.getServerId()), String.class, -1);
String ip = rpcString.split(":")[0];
@ -1065,7 +1134,7 @@ public class PlayerLogic {
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
if(GameApplication.serverId == csPlayer.getServerId()){
User user = UserManager.getUser(id);
return PlayerLogic.getInstance().getCrossYxldMyTeamInfo(user, team);
return PlayerLogic.getInstance().getCrossYxldMyTeamInfoNew(user, team);
}
CrossArenaManager crossArenaManager = getCrossArenaManagerData(csPlayer) ;
if(crossArenaManager == null){