From cff11e010cfea168cfebe8da925d4e1b23479e93 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Sat, 27 Nov 2021 17:35:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=A7=E6=83=85=E5=85=B3=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=88=98=E6=96=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 23 +++++++++++-------- .../main/java/config/SMainLevelConfig.java | 6 +++++ 2 files changed, 20 insertions(+), 9 deletions(-) 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