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 f1433e702..b8a38052b 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 @@ -228,16 +228,16 @@ public class MapLogic { MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } - int leftStep = mapManager.getTotalStep() - cells.size(); - if (leftStep <= 0) { - leftStep = 0; - resetMapInfo(user); - LOGGER.info("updateMap() uid=>{}, leftStep=>{}", uid, leftStep); - MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder().build(); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true); - return; - } - mapManager.setTotalStep(leftStep); +// int leftStep = mapManager.getTotalStep() - cells.size(); +// if (leftStep <= 0) { +// leftStep = 0; +// resetMapInfo(user, false); +// LOGGER.info("updateMap() uid=>{}, leftStep=>{}", uid, leftStep); +// MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder().build(); +// MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true); +// return; +// } +// mapManager.setTotalStep(leftStep); Cell cell = mapManager.getMapInfo().get(curXY); if (cell == null) { cell = mapManager.getMapInfo().get(triggerXY); @@ -511,11 +511,11 @@ public class MapLogic { MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); return; } - resetMapInfo(user); + resetMapInfo(user, true); MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } - public void resetMapInfo(User user) throws Exception { + public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception { MapManager mapManager = user.getMapManager(); mapManager.setMapInfo(new HashMap<>()); mapManager.setHeroes(new HashSet<>()); @@ -523,10 +523,15 @@ public class MapLogic { mapManager.setWalkCells(new HashSet<>()); mapManager.setCurXY(0); mapManager.setCurMapId(0); - TemporaryItems temporaryItems = mapManager.getTemporaryItems(); - if (temporaryItems != null) { - ItemUtil.addTemporaryItemToBag(user, temporaryItems); + if (needTemporaryItem) { + TemporaryItems temporaryItems = mapManager.getTemporaryItems(); + if (temporaryItems != null) { + ItemUtil.addTemporaryItemToBag(user, temporaryItems); + } + } else { + mapManager.setTemporaryItems(null); } + } public void endFight(ISession session, int result, MessageTypeProto.MessageType messageType, int monsterGroupId) throws Exception { 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 24630bb14..90877b6ed 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 @@ -20,7 +20,7 @@ public class JumpBehavior extends BaseBehavior { MapLogic.getInstance().initMap(user.getMapManager(), user); return true; } else { - MapLogic.getInstance().resetMapInfo(user); + MapLogic.getInstance().resetMapInfo(user, false); } return true; }