跨服排行榜改动

back_recharge
xuexinpeng 2021-10-15 20:47:21 +08:00
parent 63b1c2de38
commit 5c68ad2738
6 changed files with 57 additions and 10 deletions

View File

@ -91,6 +91,14 @@ public class CoreService implements RPCRequestIFace.Iface {
// 需要存储的英雄列表
HashSet<TeamPosHeroInfo> set = new HashSet<>();
//主线编队
List<com.ljsd.jieling.logic.dao.TeamPosHeroInfo> main = user.getTeamPosManager().getTeamPosForHero().getOrDefault(GlobalsDef.FORMATION_NORMAL,new ArrayList<>());
List<TeamPosHeroInfo> nomal = new ArrayList<TeamPosHeroInfo>();
main.forEach(n->nomal.add(new TeamPosHeroInfo().setHeroId(n.getHeroId()).setPosition(n.getPosition())));
teams.put(GlobalsDef.FORMATION_NORMAL,nomal);
set.addAll(nomal);
//玉虚论道编队
List<com.ljsd.jieling.logic.dao.TeamPosHeroInfo> yxldOne = user.getTeamPosManager().getTeamPosForHero().getOrDefault(GlobalsDef.CROSS_YU_XU_LUN_DAO_ONE,new ArrayList<>());
List<TeamPosHeroInfo> rpcYxldOne = new ArrayList<TeamPosHeroInfo>();

View File

@ -62,7 +62,9 @@ public class ViewHeroInfoHandler extends BaseHandler<PlayerInfoProto.ViewHeroInf
PlayerInfoProto.ViewHeroInfoResponse viewHeroInfoResponse = PlayerLogic.getInstance().viewCrossHeroInfo(proto.getTargetUid(), proto.getHeroId(), proto.getTeamId());
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.VIEW_HERO_INFO_RESPONSE_VALUE,viewHeroInfoResponse,true);
}else {
PlayerInfoProto.ViewHeroInfoResponse viewHeroInfoResponse = PlayerLogic.getInstance().viewCrossHeroInfo1(proto.getTargetUid(), proto.getHeroId(), proto.getTeamId());
PlayerInfoProto.ViewHeroInfoResponse viewHeroInfoResponse = PlayerLogic.getInstance().viewCrossHeroInfo(proto.getTargetUid(), proto.getHeroId(), proto.getTeamId());
//PlayerInfoProto.ViewHeroInfoResponse viewHeroInfoResponse = PlayerLogic.getInstance().viewCrossHeroInfo1(proto.getTargetUid(), proto.getHeroId(), proto.getTeamId());
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.VIEW_HERO_INFO_RESPONSE_VALUE,viewHeroInfoResponse,true);
}
}

View File

@ -82,7 +82,6 @@ public class CSPlayer {
*/
private int crossYxldMaxLevel = 0 ; //历史达到的最高等级
public CSPlayer(User user) {
PlayerManager manager = user.getPlayerInfoManager();
this.userId = user.getId();

View File

@ -1,10 +1,12 @@
package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.GameApplication;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.GlobleSystemLogic;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.gm.ArenaOfUser;
import com.ljsd.jieling.logic.dao.root.GuildCache;
import com.ljsd.jieling.logic.dao.root.User;
@ -243,9 +245,9 @@ public abstract class AbstractRank implements IRank {
return builder;
}
protected void getCrossOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
ArenaOfUser everyUser = CrossServiceLogic.getInstance().query(Integer.parseInt(data.getValue()));
if (everyUser == null){
protected void getCrossOptional1(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(Integer.parseInt(data.getValue()));
if (csPlayer == null){
LOGGER.error("改玩家没有跨服数据...:{}",data.getValue());
return;
}
@ -254,7 +256,23 @@ public abstract class AbstractRank implements IRank {
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
CommonProto.UserRank.Builder oneUserRank = getCrossOneUserRank(everyUser, everyRankInfo);
CommonProto.UserRank.Builder oneUserRank = getCrossOneUserRank(csPlayer, everyRankInfo);
builder.addRanks(oneUserRank);
}
protected void getCrossOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
//ArenaOfUser everyUser = CrossServiceLogic.getInstance().query(Integer.parseInt(data.getValue()));
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(Integer.parseInt(data.getValue()));
if (csPlayer == null){
LOGGER.error("该玩家没有跨服数据...:{}",data.getValue());
return;
}
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
CommonProto.UserRank.Builder oneUserRank = getCrossOneUserRank(csPlayer, everyRankInfo);
builder.addRanks(oneUserRank);
}
@ -274,6 +292,26 @@ public abstract class AbstractRank implements IRank {
.setPracticeLevel(everyUser.getHeroManager().getPracticeLevel());
}
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId());
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
return CommonProto.UserRank.newBuilder()
.setUid(csPlayer.getUserId())
.setLevel(csPlayer.getLevel())
.setUserName(csPlayer.getName())
.setRankInfo(everyRankInfo)
.setForce(0) //TODO
.setSex(csPlayer.getSex())
.setHead(csPlayer.getHead())
.setGuildName(Optional.ofNullable(mapEntry).map(GuildCache::getName).orElse(""))
.setHeadFrame(csPlayer.getHeadFrame())
.setUserMount(csPlayer.getUserMount())
.setUserSkin(csPlayer.getSkin())
.setUserTitle(csPlayer.getUserTitle())
.setPracticeLevel(csPlayer.getPracticeLevel())
.setServerName(serverName==null?"":serverName)
.setCrossScore(csPlayer.getCrossYuxulundaoNewScore());
}
public CommonProto.UserRank.Builder getCrossOneUserRank(ArenaOfUser query, CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(query.getId());
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(query.getPlayerManager().getGuildId());

View File

@ -75,11 +75,11 @@ public class CrossYuXuLunDaoPersonRank extends AbstractRank{
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(cPlayer,everyRankInfo);
CommonProto.UserRank.Builder everyRank = getCrossOneUserRankyx(cPlayer,everyRankInfo);
builder.addRanks(everyRank);
}
}
public static CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
public static CommonProto.UserRank.Builder getCrossOneUserRankyx(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(player.getUserId());
//CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
return CommonProto.UserRank.newBuilder()

View File

@ -86,11 +86,11 @@ public class CrossYuXuLunDaoRank extends AbstractRank{
.setParam2(getParam2(data.getScore()))
.setParam3(getParam3(data.getScore()));
//CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(query,everyRankInfo);
CommonProto.UserRank.Builder everyRank = getCrossOneUserRank(cPlayer,everyRankInfo);
CommonProto.UserRank.Builder everyRank = getCrossOneUserRankyx(cPlayer,everyRankInfo);
builder.addRanks(everyRank);
}
}
public static CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
public static CommonProto.UserRank.Builder getCrossOneUserRankyx(CSPlayer player , CommonProto.RankInfo.Builder everyRankInfo){
String serverName = CrossServiceLogic.getInstance().getServerNameByUId(player.getUserId());
//CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
return CommonProto.UserRank.newBuilder()