parent
436c26fc44
commit
74276aaacd
|
@ -2,7 +2,6 @@ package com.ljsd.jieling.handler.activity;
|
|||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.fight.FightType;
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
@ -68,17 +67,16 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
// 获取怪物组
|
||||
int[][] contents = sMonsterGroup.getContents();
|
||||
|
||||
for (int i = 0; i < contents.length; i++) {
|
||||
int[] ints = contents[i];
|
||||
for (int j = 0; j < ints.length; j++) {
|
||||
if (ints[j] == 0){
|
||||
for (int[] ints : contents) {
|
||||
for (int anInt : ints) {
|
||||
if (anInt == 0) {
|
||||
// 怪物不存在
|
||||
continue;
|
||||
}
|
||||
monsterId = ints[j];
|
||||
SMonsterConfig monsterConfig = STableManager.getConfig(SMonsterConfig.class).get(ints[j]);
|
||||
monsterId = anInt;
|
||||
SMonsterConfig monsterConfig = STableManager.getConfig(SMonsterConfig.class).get(anInt);
|
||||
// 计算总血量
|
||||
bossBlood+=monsterConfig.getHp();
|
||||
bossBlood += monsterConfig.getHp();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -125,11 +123,11 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
// 道具逻辑,封装好的
|
||||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
|
||||
for (int i = 0; i < hurtList.length; i++) {
|
||||
for (int[] ints : hurtList) {
|
||||
// 当前类型奖励次数
|
||||
int v = (int)b / hurtList[i][0];
|
||||
dropList[0] = hurtList[i][1];
|
||||
ItemUtil.drop(user, dropList,drop,v,0, BIReason.NEW_GENERAL_ATTACK);
|
||||
int v = (int) b / ints[0];
|
||||
dropList[0] = ints[1];
|
||||
ItemUtil.drop(user, dropList, drop, v, 0, BIReason.NEW_GENERAL_ATTACK);
|
||||
}
|
||||
// 消耗道具
|
||||
PlayerLogic.getInstance().checkAndUpdate(user, proto.getPrivilageTypeId(),1);
|
||||
|
|
|
@ -68,8 +68,6 @@ import java.util.stream.Collectors;
|
|||
public class HeroLogic {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(HeroLogic.class);
|
||||
|
||||
Map<Integer,Hero> yuxuHeros = new HashMap<>();
|
||||
|
||||
public HeroLogic() {
|
||||
//英雄事件监听
|
||||
Poster.getPoster().listenEvent(new HeroFiveStarGetEventHandler(), HeroFiveStarGetEvent.class);
|
||||
|
@ -77,6 +75,16 @@ public class HeroLogic {
|
|||
this.initYuxuHero();
|
||||
}
|
||||
|
||||
public static class Instance {
|
||||
public final static HeroLogic instance = new HeroLogic();
|
||||
}
|
||||
|
||||
public static HeroLogic getInstance() {
|
||||
return HeroLogic.Instance.instance;
|
||||
}
|
||||
|
||||
Map<Integer,Hero> yuxuHeros = new HashMap<>();
|
||||
|
||||
public static List<Integer> transTemplate = new ArrayList<>();
|
||||
public static List<Integer> equipSkillPositionTemaplge = new ArrayList<>(6);
|
||||
private static final Map<Integer, List<Integer>> transTemplateByHeroPropertyName = new HashMap<>();
|
||||
|
@ -237,16 +245,6 @@ public class HeroLogic {
|
|||
return skillSb;
|
||||
}
|
||||
|
||||
|
||||
public static class Instance {
|
||||
public final static HeroLogic instance = new HeroLogic();
|
||||
}
|
||||
|
||||
public static HeroLogic getInstance() {
|
||||
return HeroLogic.Instance.instance;
|
||||
}
|
||||
|
||||
|
||||
public void random(ISession session, int type) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
|
@ -1277,7 +1275,7 @@ public class HeroLogic {
|
|||
user.getTeamPosManager().changeTeamInfo(teamId, heroIds);
|
||||
}
|
||||
} else if (teamId == TeamEnum.TEAM_ARENA_DEFENSE.getTeamId()) {
|
||||
int teamForce = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
|
||||
int teamForce = calTeamTotalForce(user, teamId, false);
|
||||
//更新竞技场防御编队战力
|
||||
String key = RedisKey.getKey(RedisKey.AREDEF_TEAM_FORCE_RANK, "", false);
|
||||
RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), teamForce);
|
||||
|
@ -3067,7 +3065,7 @@ public class HeroLogic {
|
|||
if (godTreePoolMap != null) {
|
||||
if (helpHero != null) {
|
||||
// 助战
|
||||
property = HeroLogic.getInstance().godTreeAddition(godTreePoolMap, jewel.getGodTreeLv(), helpHero.getFourTotalTier());
|
||||
property = godTreeAddition(godTreePoolMap, jewel.getGodTreeLv(), helpHero.getFourTotalTier());
|
||||
combinedAttribute(property, heroAllAttribute);
|
||||
} else {
|
||||
// 自己
|
||||
|
@ -3075,7 +3073,7 @@ public class HeroLogic {
|
|||
// 获取神应等级
|
||||
int level = Math.min(jewel.getGodTreeLv(), config.getGodHoodMaxlv());
|
||||
// 获取加成属性
|
||||
property = HeroLogic.getInstance().godTreeAddition(godTreePoolMap, level, user.getPlayerInfoManager().getFourChallengeTotal());
|
||||
property = godTreeAddition(godTreePoolMap, level, user.getPlayerInfoManager().getFourChallengeTotal());
|
||||
combinedAttribute(property, heroAllAttribute);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ import java.util.function.BiConsumer;
|
|||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2019/11/26
|
||||
* @discribe 排行榜抽象类
|
||||
* {@code @date} 2019/11/26
|
||||
* {@code @discribe} 排行榜抽象类
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractRank implements IRank {
|
||||
|
@ -65,12 +65,6 @@ public abstract class AbstractRank implements IRank {
|
|||
|
||||
/**
|
||||
* 获取跨服排行
|
||||
* @param uid
|
||||
* @param rkey
|
||||
* @param page
|
||||
* @param rankEndLine
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
|
||||
if(rankEndLine==-1){
|
||||
|
@ -134,8 +128,7 @@ public abstract class AbstractRank implements IRank {
|
|||
|
||||
public String getCrossRedisKey() {
|
||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||
String key = RedisUtil.getInstence().getKey(redisKey, String.valueOf(crossGroup), false);
|
||||
return key;
|
||||
return RedisUtil.getInstence().getKey(redisKey, String.valueOf(crossGroup), false);
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
|
@ -162,18 +155,18 @@ public abstract class AbstractRank implements IRank {
|
|||
return builder;
|
||||
}
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
LOGGER.info("有问题的ArenaId{}",Integer.parseInt(data.getValue()));
|
||||
User everyUser = UserManager.getUserNotCache(Integer.parseInt(data.getValue()));
|
||||
if (everyUser == null){
|
||||
return builder;
|
||||
}
|
||||
int uid = Integer.parseInt(data.getValue());
|
||||
LOGGER.info("有问题的ArenaId{}", uid);
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(1)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
builder = getOneUserRank(everyUser,everyRankInfo);
|
||||
return builder;
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(uid, everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return builder;
|
||||
}
|
||||
return oneUserRank;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -215,20 +208,20 @@ public abstract class AbstractRank implements IRank {
|
|||
}
|
||||
|
||||
protected void getOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
User everyUser = UserManager.getUserNotCache(Integer.parseInt(data.getValue()));
|
||||
if (everyUser == null){
|
||||
return;
|
||||
}
|
||||
int uid = Integer.parseInt(data.getValue());
|
||||
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 = getOneUserRank(everyUser, everyRankInfo);
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(uid, everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return;
|
||||
}
|
||||
builder.addRanks(oneUserRank);
|
||||
}
|
||||
|
||||
protected PlayerInfoProto.RankResponse.Builder getCrossAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores,int start) throws Exception{
|
||||
protected PlayerInfoProto.RankResponse.Builder getCrossAllUserResponse(Set<ZSetOperations.TypedTuple<String>> zsetreverseRangeWithScores,int start) {
|
||||
PlayerInfoProto.RankResponse.Builder builder = PlayerInfoProto.RankResponse.newBuilder();
|
||||
forEach(start,zsetreverseRangeWithScores,(index,data)->{
|
||||
try {
|
||||
|
@ -255,39 +248,36 @@ public abstract class AbstractRank implements IRank {
|
|||
builder.addRanks(oneUserRank);
|
||||
}
|
||||
|
||||
public CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo){
|
||||
public CommonProto.UserRank.Builder getOneUserRank(int uid,CommonProto.RankInfo.Builder everyRankInfo){
|
||||
CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
|
||||
if (player == null){
|
||||
return null;
|
||||
}
|
||||
return CommonProto.UserRank.newBuilder()
|
||||
.setUid(everyUser.getId())
|
||||
.setUserName(everyUser.getPlayerInfoManager().getNickName())
|
||||
.setHead(everyUser.getPlayerInfoManager().getHead())
|
||||
.setHeadFrame(everyUser.getPlayerInfoManager().getHeadFrame())
|
||||
.setLevel(everyUser.getPlayerInfoManager().getLevel())
|
||||
.setUid(player.getUserId())
|
||||
.setUserName(player.getName())
|
||||
.setHead(player.getHead())
|
||||
.setHeadFrame(player.getHeadFrame())
|
||||
.setLevel(player.getLevel())
|
||||
.setRankInfo(everyRankInfo)
|
||||
.setForce(everyUser.getPlayerInfoManager().getMaxForce())
|
||||
.setSex(everyUser.getPlayerInfoManager().getSex())
|
||||
.setUserSkin(everyUser.getPlayerInfoManager().getUserSkin())
|
||||
.setUserTitle(everyUser.getPlayerInfoManager().getUserTitle())
|
||||
.setUserMount(everyUser.getPlayerInfoManager().getUserMount())
|
||||
.setPracticeLevel(everyUser.getHeroManager().getPracticeLevel());
|
||||
.setForce(player.getMainLineForce())
|
||||
.setSex(player.getSex())
|
||||
.setUserSkin(player.getSkin())
|
||||
.setUserTitle(player.getUserTitle())
|
||||
.setUserMount(player.getUserMount())
|
||||
.setPracticeLevel(player.getPracticeLevel());
|
||||
}
|
||||
|
||||
public CommonProto.UserRank.Builder getCrossOneUserRank(CSPlayer csPlayer, CommonProto.RankInfo.Builder everyRankInfo){
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(csPlayer.getUserId(), everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return CommonProto.UserRank.newBuilder();
|
||||
}
|
||||
// 跨服信息
|
||||
String serverName = CrossServiceLogic.simplifyServerName(csPlayer.getServerId());
|
||||
GuildInfo mapEntry = CrossDeathPathLogic.getCrossGuild(csPlayer.getGuildId());
|
||||
return CommonProto.UserRank.newBuilder()
|
||||
.setUid(csPlayer.getUserId())
|
||||
.setLevel(csPlayer.getLevel())
|
||||
.setUserName(csPlayer.getName())
|
||||
.setRankInfo(everyRankInfo)
|
||||
.setForce(csPlayer.getMainLineForce())
|
||||
.setSex(csPlayer.getSex())
|
||||
.setHead(csPlayer.getHead())
|
||||
return oneUserRank
|
||||
.setGuildName(Optional.ofNullable(mapEntry).map(GuildInfo::getName).orElse(""))
|
||||
.setHeadFrame(csPlayer.getHeadFrame())
|
||||
.setUserMount(csPlayer.getUserMount())
|
||||
.setUserSkin(csPlayer.getSkin())
|
||||
.setUserTitle(csPlayer.getUserTitle())
|
||||
.setPracticeLevel(csPlayer.getPracticeLevel())
|
||||
.setServerName(serverName)
|
||||
.setCrossScore(csPlayer.getCrossYuxulundaoNewScore());
|
||||
}
|
||||
|
@ -314,15 +304,11 @@ public abstract class AbstractRank implements IRank {
|
|||
|
||||
/**
|
||||
* 子类需重写此方法来获得Redis解析后所需要的数据数组
|
||||
* @param score
|
||||
* @return
|
||||
*/
|
||||
public abstract long[] getDataByScore(Double score);
|
||||
|
||||
/**
|
||||
* 子类需重写此方法来获得向Redis里添加的数据,根据需要的参数进行组合
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
public abstract double getScore(double... data);
|
||||
|
||||
|
@ -335,10 +321,6 @@ public abstract class AbstractRank implements IRank {
|
|||
int index = startIndex;
|
||||
for (T element : elements) {
|
||||
index++;
|
||||
// if(index <= startIndex) {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
action.accept(index-1, element);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.ljsd.jieling.logic.rank.rankImpl;
|
|||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
|
@ -46,11 +45,10 @@ public class GuildForceRank extends AbstractRank {
|
|||
.setParam3(getParam3(data.getScore()));
|
||||
LOGGER.info("获取公会战力排行榜信息===========公会id:{}",data.getValue());
|
||||
int chairManId = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next();
|
||||
User user = UserManager.getUserNotCache(chairManId);
|
||||
if (user == null){
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(chairManId, everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return;
|
||||
}
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(user, everyRankInfo);
|
||||
oneUserRank.setGuildName(guildInfo.getName());
|
||||
builder.addRanks(oneUserRank);
|
||||
}
|
||||
|
@ -90,12 +88,11 @@ public class GuildForceRank extends AbstractRank {
|
|||
}
|
||||
// 获取公会会长id
|
||||
Integer chairManId = guildInfo.getMembers().get(GlobalsDef.CHAIRMAN).iterator().next();
|
||||
User user = UserManager.getUserNotCache(chairManId);
|
||||
if (user == null){
|
||||
// 封装排行榜信息
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(chairManId, everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return builder;
|
||||
}
|
||||
// 封装排行榜信息
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(user, everyRankInfo);
|
||||
oneUserRank.setGuildName(guildInfo.getName());
|
||||
return oneUserRank;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
||||
|
@ -25,17 +23,17 @@ public class GuildSheJiScoreRank extends GuildForceRank {
|
|||
return builder;
|
||||
}
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
LOGGER.info("有问题的ArenaId{}",Integer.parseInt(data.getValue()));
|
||||
User everyUser = UserManager.getUserNotCache(Integer.parseInt(data.getValue()));
|
||||
if (everyUser == null){
|
||||
return builder;
|
||||
}
|
||||
int uid = Integer.parseInt(data.getValue());
|
||||
LOGGER.info("有问题的ArenaId{}", uid);
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(1)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
.setParam2(getParam2(data.getScore()))
|
||||
.setParam3(getParam3(data.getScore()));
|
||||
builder = getOneUserRank(everyUser,everyRankInfo);
|
||||
return builder;
|
||||
CommonProto.UserRank.Builder oneUserRank = getOneUserRank(uid, everyRankInfo);
|
||||
if (oneUserRank == null){
|
||||
return builder;
|
||||
}
|
||||
return oneUserRank;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue