From b06828e290ff5c23e1918e7589af358f37a97a9a Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Thu, 7 Mar 2019 19:22:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E8=A1=8C=E4=B8=BA=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 6 ++++- .../handler/map/behavior/BehaviorUtil.java | 8 +++---- .../map/behavior/DestroyPointAndBehavior.java | 2 +- .../map/behavior/DestroyPointBehavior.java | 2 +- .../FightAndDestroyPointBehavior.java | 4 ++-- .../map/behavior/FinishMissionBehavior.java | 2 +- .../handler/map/behavior/JumpBehavior.java | 4 +++- ...MonitorMissionAndDestroyPointBehavior.java | 23 +++++++++++-------- .../MonitorMissionAndMoveBehavior.java | 2 +- .../behavior/UseItemAndDestroyBehavior.java | 5 +--- 10 files changed, 32 insertions(+), 26 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 eec6de80b..d71c06a68 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 @@ -478,13 +478,17 @@ public class MapLogic { MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); return; } + resetMapInfo(mapManager); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); + } + + public void resetMapInfo(MapManager mapManager) throws Exception { mapManager.setMapInfo(new HashMap<>()); mapManager.setHeroes(new HashSet<>()); mapManager.setTypeEight(new HashMap<>()); mapManager.setWalkCells(new HashSet<>()); mapManager.setCurXY(0); mapManager.setCurMapId(0); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } //在地图吃东西 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 163fc5fc2..dad3b6bee 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -28,11 +28,11 @@ public class BehaviorUtil { * @param user * @throws Exception */ - public static void distoryPoint(User user, int[][] behaviorTypeValues) throws Exception { + public static void distoryPoint(User user, int needDistoryPointId) throws Exception { Map mapInfo = user.getMapManager().getMapInfo(); Set needDelete = new HashSet<>(); for (Map.Entry entry : mapInfo.entrySet()) { - if (entry.getValue().getPointId() == behaviorTypeValues[0][0]) { + if (entry.getValue().getPointId() == needDistoryPointId) { needDelete.add(entry.getKey()); } } @@ -86,9 +86,9 @@ public class BehaviorUtil { /** * 更新任务 */ - public static boolean updateMission(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception{ + public static boolean updateMission(User user, int missionId, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception{ Map doingMissions = user.getMissionManager().getDoingMissions(); - Mission mission = doingMissions.get(behaviorTypeValues[0][0]); + Mission mission = doingMissions.get(missionId); if (mission == null) { return false; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java index b75e73b21..b726810b0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java @@ -14,7 +14,7 @@ public class DestroyPointAndBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - BehaviorUtil.distoryPoint(user, behaviorTypeValues); + BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][1]); // TODO 监视地图 return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java index f325d5b3d..a3749a282 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java @@ -17,7 +17,7 @@ public class DestroyPointBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - BehaviorUtil.distoryPoint(user, behaviorTypeValues); + BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][0]); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java index 8d2dc2f74..9118feb41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java @@ -15,7 +15,7 @@ public class FightAndDestroyPointBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { BehaviorUtil.getFightInfo(user, behaviorTypeValues, eventUpdateResponse); - BehaviorUtil.distoryPoint(user, behaviorTypeValues); - return false; + BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][1]); + return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinishMissionBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinishMissionBehavior.java index c9028d911..08a23db34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinishMissionBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinishMissionBehavior.java @@ -14,6 +14,6 @@ public class FinishMissionBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - return BehaviorUtil.updateMission(user, behaviorTypeValues, eventUpdateResponse); + return BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/JumpBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/JumpBehavior.java index 0908f84fb..e0ec5ee11 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/JumpBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/JumpBehavior.java @@ -19,7 +19,9 @@ public class JumpBehavior extends BaseBehavior { user.getMapManager().setCurMapId(behaviorTypeValues[0][0]); MapLogic.getInstance().initMap(user.getMapManager(), user); return true; + } else { + MapLogic.getInstance().resetMapInfo(user.getMapManager()); } - return false; + return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java index 5a75ef190..a2b4ad49c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java @@ -17,18 +17,21 @@ public class MonitorMissionAndDestroyPointBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - BehaviorUtil.updateMission(user, behaviorTypeValues, eventUpdateResponse); + // 1#101011|101#13#18#101012|101#12#13#101009 + BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse); // 销毁事件点 - BehaviorUtil.distoryPoint(user, behaviorTypeValues); + BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][1]); // 开新事件 - if (user.getMapManager().getCurMapId() == behaviorTypeValues[0][1]) { - int x = behaviorTypeValues[1][0]; - int y = behaviorTypeValues[1][1]; - int xy = CellUtil.xy2Pos(x, y); - MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(behaviorTypeValues[1][2]); - Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); - user.getMapManager().addOrUpdateCell(xy, cellValue); + if (user.getMapManager().getCurMapId() == behaviorTypeValues[1][0]) { + for (int i = 1; i < behaviorTypeValues.length; i++) { + int x = behaviorTypeValues[i][1]; + int y = behaviorTypeValues[i][2]; + int xy = CellUtil.xy2Pos(x, y); + MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(behaviorTypeValues[i][3]); + Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); + user.getMapManager().addOrUpdateCell(xy, cellValue); + } } - return false; + return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndMoveBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndMoveBehavior.java index 230e88949..ad5398681 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndMoveBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndMoveBehavior.java @@ -15,7 +15,7 @@ public class MonitorMissionAndMoveBehavior extends BaseBehavior { @Override public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - BehaviorUtil.updateMission(user, behaviorTypeValues, eventUpdateResponse); + BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse); // 0的时候回城 if (behaviorTypeValues[0][1] == 0) { return false; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java index 8b5c2cd7a..d7c3db571 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java @@ -1,14 +1,11 @@ package com.ljsd.jieling.handler.map.behavior; -import com.ljsd.jieling.handler.map.Cell; import com.ljsd.jieling.handler.map.EventType; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.protocols.MapInfoProto; import com.ljsd.jieling.util.ItemUtil; import org.springframework.stereotype.Component; -import java.util.Map; - @Component public class UseItemAndDestroyBehavior extends BaseBehavior { @Override @@ -22,7 +19,7 @@ public class UseItemAndDestroyBehavior extends BaseBehavior { if (!isEnough) { return isEnough; } - BehaviorUtil.distoryPoint(user, behaviorTypeValues); + BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][2]); return true; } }