From 741c60fccfd045710b887a1ef4724b9744e83302 Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Mon, 1 Apr 2019 18:57:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BEGM=EF=BC=8C=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/GameGM/GMRequestHandler.java | 9 +++++--- .../ljsd/jieling/handler/map/MapLogic.java | 23 ++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 6e3b9270f..ef9cadd62 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -22,7 +22,9 @@ import com.ljsd.jieling.util.TimeUtils; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @Component @@ -84,17 +86,18 @@ public class GMRequestHandler extends BaseHandler{ break; case GlobalGm.OPEN_MAP: SCMapConfig scMapConfig = SCMapConfig.getsCMapSize().get(100 + prarm1); + Set missionIds = new HashSet<>(); if (scMapConfig != null) { for (int i = 0; i <= prarm1; i++) { - int mapId = 100 + prarm1; + int mapId = 100 + i; SCMapConfig crossMap = SCMapConfig.getsCMapSize().get(mapId); cUser.getPlayerInfoManager().setMapId(mapId); if (crossMap.getOpenRule() != null && crossMap.getOpenRule().length > 0) { - cUser.getMissionManager().getFinishMissions().add(crossMap.getOpenRule()[0]); + missionIds.add(crossMap.getOpenRule()[0]); } } } - // giveItem(cUser,prarm1,prarm2); + cUser.getMissionManager().updateFinishMissions(missionIds); break; default: break; 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 bb124df43..8245004ba 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 @@ -705,7 +705,28 @@ public class MapLogic { if (nextEventId == 0) { Map doingMissions = user.getMissionManager().getDoingMissions(); Mission mission = doingMissions.get(sOptionAddConditions.getValues()[0][0]); - if (mission == null || mission.getMissionStep() < jumpTypeValues[0][1]) { + if (mission == null || mission.getMissionStep() < sOptionAddConditions.getValues()[0][1]) { + nextEventId = jumpTypeValues[0][1]; + } else { + nextEventId = jumpTypeValues[0][0]; + } + } + break; + } + // 当前是否处于某个任务的第几步,逻辑参数(0处于1不处于)#任务id#任务步数|… + case 6:{ + Map doingMissions = user.getMissionManager().getDoingMissions(); + Mission mission = doingMissions.get(sOptionAddConditions.getValues()[0][1]); + if (sOptionAddConditions.getValues()[0][0] == 0) { + if (mission != null && mission.getMissionStep() == sOptionAddConditions.getValues()[0][2]) { + nextEventId = jumpTypeValues[0][0]; + } else { + nextEventId = jumpTypeValues[0][1]; + } + } else { + if (mission == null || mission.getMissionStep() != sOptionAddConditions.getValues()[0][2]) { + nextEventId = jumpTypeValues[0][0]; + } else { nextEventId = jumpTypeValues[0][1]; } }