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 201c9c242..5a7e2e8a3 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 @@ -689,15 +689,11 @@ public class MapLogic { mapManager.setCurXY(0); mapManager.setCurMapId(0); mapManager.setTotalStep(0); - if (needTemporaryItem) { - TemporaryItems temporaryItems = mapManager.getTemporaryItems(); - if (temporaryItems != null) { - ItemUtil.addTemporaryItemToBag(user, temporaryItems); - } - } else { + TemporaryItems temporaryItems = mapManager.getTemporaryItems(); + if (temporaryItems != null) { + ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem); mapManager.setTemporaryItems(null); } - } /** @@ -834,22 +830,23 @@ public class MapLogic { } CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1); - FightInfoProto.FightEndResponse fightEndResponse = FightInfoProto.FightEndResponse - .newBuilder() - .setDrop(drop) - .setResult(resultCode) - .addAllRemainHpList(remainHp) - .build(); + FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); + fightEndResponse.setDrop(drop); + fightEndResponse.setResult(resultCode); + fightEndResponse.addAllRemainHpList(remainHp); + fightEndResponse.build(); int missionId = Integer.parseInt((String)valueMap.get(RedisKey.NEED_MISSION_ID)); int destoryId = Integer.parseInt((String)valueMap.get(RedisKey.NEED_DESORY_ID)); if (missionId != 0) { - BehaviorUtil.updateMission(user, missionId, null); + MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse = MapInfoProto.EventUpdateResponse.newBuilder(); + BehaviorUtil.updateMission(user, missionId, eventUpdateResponse); + fightEndResponse.addAllMission(eventUpdateResponse.getMissionList()); } if (destoryId != 0) { BehaviorUtil.distoryPoint(user, destoryId); } updateMapMission(user.getMapManager(),EventType.fightEvent,0,monsterGroupId); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse, true); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), 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 b0b68c5fb..968bfb3ed 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 @@ -159,9 +159,7 @@ public class BehaviorUtil { CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user); for (Mission missions : checkMissionReturn.missions) { CommonProto.Mission missionProto = MapLogic.getInstance().getMission(missions); - if (eventUpdateResponse != null) { - eventUpdateResponse.addMission(missionProto); - } + eventUpdateResponse.addMission(missionProto); } return true; }