山河社稷图排行榜

back_recharge
xuexinpeng 2021-05-27 14:48:39 +08:00
parent 2bfb6228b0
commit e1dbce80cf
1 changed files with 41 additions and 40 deletions

View File

@ -121,9 +121,6 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
if (resultCode == -1) {
throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION);
}
if (resultCode == 1) {//通过
HardStageLogic.passNode(iSession, nodeConfig, resultNum, dropList);
}
String fightId = FightUtil.getFightId(user.getId(), FightType.HardStage.getType());
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
.setFightType(FightType.HardStage.getType())
@ -135,45 +132,51 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
.build();
fightStartResponse.setFightData(fightData);
FightRecordLogic.getInstance().addRecordMap(user, fightData);
//战斗回放
int force = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
// 首次通关记录
ArenaRecord firstPassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), ArenaRecord.class);
if (firstPassRecord == null) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), arenaRecord);
}
// 最低战力通关记录记录
ArenaRecord minForcePassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), ArenaRecord.class);
if (minForcePassRecord == null || force < minForcePassRecord.getAttackForce()) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), arenaRecord);
if (resultCode == 1) {//通过
HardStageLogic.passNode(iSession, nodeConfig, resultNum, dropList);
//战斗回放
int force = HeroLogic.getInstance().calTeamTotalForce(user, teamId, false);
// 首次通关记录
ArenaRecord firstPassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), ArenaRecord.class);
if (firstPassRecord == null) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_FIST_PASS, String.valueOf(nodeId), arenaRecord);
}
// 最低战力通关记录记录
ArenaRecord minForcePassRecord = RedisUtil.getInstence().get(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), ArenaRecord.class);
if (minForcePassRecord == null || force < minForcePassRecord.getAttackForce()) {
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setCreateTime(TimeUtils.nowInt());
arenaRecord.setAttackId(user.getId());
arenaRecord.setLevel(user.getPlayerInfoManager().getLevel());
arenaRecord.setHead(user.getPlayerInfoManager().getHead());
arenaRecord.setUserName(user.getPlayerInfoManager().getNickName());
arenaRecord.setHeadFrame(user.getPlayerInfoManager().getHeadFrame());
arenaRecord.setFightData(fightData.toByteArray());
arenaRecord.setAttackForce(force);
RedisUtil.getInstence().set(RedisKey.HARD_STAGE_PASS_MIN_FORCE, String.valueOf(nodeId), arenaRecord);
}
//排行榜星级
int starSum = HardStageLogic.getHardStageStarsSum(user);
if(starSum >0){
Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 2, starSum));
//成就任务
user.getUserMissionManager().onGameEvent(user, GameEvent.HARSTAGE_STARS,starSum);
}
}
}
//排行榜
//排行榜章节
int hardStageId = SHardStage.getStageIdByChapterAndSection(user.getHardStageManager().getCurChapter(), user.getHardStageManager().getCurNode());
Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 1, hardStageId));
int starSum = HardStageLogic.getHardStageStarsSum(user);
if(starSum >0){
Poster.getPoster().dispatchEvent(new ShanHeSheJiTuStarEvent(iSession.getUid(), 2, starSum));
}
ItemUtil.drop(user, dropList.stream().mapToInt(Integer::intValue).toArray(), drop, 1, 0, BIReason.HARD_STAGE_GET);
fightStartResponse.setDrop(drop);
Map<Integer, HardStageChapter> chapt = user.getHardStageManager().getChapterMap(user);
@ -183,8 +186,6 @@ public class StartHardStageRequestHandler extends BaseHandler<PlayerInfoProto.Ha
fightStartResponse.setStars(node.getState());
}
}
//成就任务
user.getUserMissionManager().onGameEvent(user, GameEvent.HARSTAGE_STARS,starSum);
user.getUserMissionManager().onGameEvent(user, GameEvent.HARSTAGE_NODE,hardStageId);
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.HARD_STAGE_FIGHT_START_RESPONSE.getNumber(), fightStartResponse.build(), true);
//更新消息