diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 6d5f5c835..f74de0d19 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2140,21 +2140,26 @@ public class MapLogic { } LOGGER.info("关卡战斗end{},{}",uid,fightInfos); SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId); - FightEvent fightEvent = new FightEvent(uid, -1, sMainLevelConfig.getRankTime(),frames, GameFightType.StoryFight); - FightResult fightResult = FightDispatcher.dispatcher(fightEvent); + FightResult fightResult = null; + if (sMainLevelConfig.getPlotId() == 0) { + FightEvent fightEvent = new FightEvent(uid, -1, sMainLevelConfig.getRankTime(), frames, GameFightType.StoryFight); + fightResult = FightDispatcher.dispatcher(fightEvent); + } //校验结果码 1:胜利 - if (fightResult.getResult() == -1) { - throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION); - } else if (fightResult.getResult() == 0) { - user.getPlayerInfoManager().getNewRechargeInfo().addMainLineLost(); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); - return; + if (fightResult != null) { + if (fightResult.getResult() == -1) { + throw new ErrorCodeException(ErrorCode.FIGHT_EXCEPTION); + } else if (fightResult.getResult() == 0) { + user.getPlayerInfoManager().getNewRechargeInfo().addMainLineLost(); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); + return; + } } CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMainLevelConfig.getReward(), 1, 0, BIReason.LEVELDIFFICULTY_FIGHT_REWARD); openNextMainLevel(session,user, fightId); FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); fightEndResponse.setEnventDrop(drop); - fightEndResponse.setResult(fightResult.getResult()); + fightEndResponse.setResult(fightResult == null ? 1 : fightResult.getResult()); fightEndResponse.build(); MainLevelManager mainLevelManager = user.getMainLevelManager(); FightInfoProto.MainLevelFightUpdateIndication build = FightInfoProto.MainLevelFightUpdateIndication.newBuilder().setState(mainLevelManager.getState()).setFightId(mainLevelManager.getFightId()).build(); diff --git a/tablemanager/src/main/java/config/SMainLevelConfig.java b/tablemanager/src/main/java/config/SMainLevelConfig.java index b341726f2..fd7ca12c5 100644 --- a/tablemanager/src/main/java/config/SMainLevelConfig.java +++ b/tablemanager/src/main/java/config/SMainLevelConfig.java @@ -43,6 +43,8 @@ public class SMainLevelConfig implements BaseConfig { private int sortId; + private int storyId; // 大于 0 表示剧情关,无需战斗 + public static Map config; public static Map sMainLevelConfigByVirtureIdMap; public static Map fightPreMap; @@ -137,4 +139,8 @@ public class SMainLevelConfig implements BaseConfig { public int getSortId() { return sortId; } + + public int getPlotId() { + return storyId; + } } \ No newline at end of file