From 9791ae66fd0c651adac9e98725212164c668a006 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 26 Mar 2019 14:02:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=87=BA=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E6=8E=A2=E7=B4=A2=E5=BA=A6=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/handler/map/MapLogic.java | 15 +++++++++++---- .../jieling/handler/map/MapOutRequestHandler.java | 6 +++++- 2 files changed, 16 insertions(+), 5 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 e0db2e14b..1e3ae75d3 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 @@ -599,19 +599,23 @@ public class MapLogic { * @param messageType * @throws Exception */ - public void outMap(ISession session, MessageTypeProto.MessageType messageType) throws Exception { + public void outMap(ISession session,int mapId,MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); - MapMission mapMission = mapManager.getAllMissionProgress().get(mapManager.getCurMapId()); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); return; } - MapInfoProto.MapOutResponse build = MapInfoProto.MapOutResponse.newBuilder().setMapAccomplishInfo(CBean2Proto.getMapAccomplishInfo(mapManager.getAllMissionProgress().get(mapManager.getCurMapId()))).build(); resetMapInfo(user, true); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), build, true); + MapMission mapMission = mapManager.getAllMissionProgress().get(mapId); + if(mapMission!=null){ + MapInfoProto.MapOutResponse build = MapInfoProto.MapOutResponse.newBuilder().setMapAccomplishInfo(CBean2Proto.getMapAccomplishInfo(mapManager.getAllMissionProgress().get(mapManager.getCurMapId()))).build(); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), build, true); + return; + } + MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception { @@ -802,6 +806,9 @@ public class MapLogic { public void updateMapMission(MapManager mapManager,int eventType,int eventId,int bossIdOrItemId){ int mapId = mapManager.getCurMapId(); + if(mapId==0){ + return; + } MapMission mapMission = mapManager.getAllMissionProgress().get(mapId); int addScore=0; Map allMissionProgress = mapMission.getAllMissionProgress(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java index 3bc77d086..389fdd831 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.handler.map; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MapInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; import org.springframework.stereotype.Component; @@ -15,6 +16,9 @@ public class MapOutRequestHandler extends BaseHandler{ @Override public void process(ISession iSession, PacketNetData netData) throws Exception { - MapLogic.getInstance().outMap(iSession, MessageTypeProto.MessageType.MAP_OUT_RESPONSE); + byte[] bytes = netData.parseClientProtoNetData(); + MapInfoProto.MapOutRequest mapOutRequest = MapInfoProto.MapOutRequest.parseFrom(bytes); + int mapId = mapOutRequest.getMapId(); + MapLogic.getInstance().outMap(iSession, mapId,MessageTypeProto.MessageType.MAP_OUT_RESPONSE); } }