From 3a9daeb6eba039942f5d7247c235f2dd7a586826 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 16 Apr 2019 17:59:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A2=E7=B4=A2=E5=BA=A6=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 35 +------------------ .../ljsd/jieling/handler/map/MapManager.java | 5 +++ .../ljsd/jieling/handler/map/MapMission.java | 10 ------ .../handler/map/TakeMapBoxRewardHandler.java | 25 ------------- .../jieling/logic/dao/AdventureManager.java | 5 +++ .../ljsd/jieling/logic/fight/CombatLogic.java | 24 ++++++++----- .../com/ljsd/jieling/util/CBean2Proto.java | 1 - 7 files changed, 26 insertions(+), 79 deletions(-) delete mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/TakeMapBoxRewardHandler.java 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 91477e4a6..be485aa79 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 @@ -674,17 +674,12 @@ public class MapLogic { return; } resetMapInfo(user, true); - MapMission mapMission = mapManager.getAllMissionProgress().get(mapId); - if(mapMission!=null){ - MapInfoProto.MapOutResponse build = MapInfoProto.MapOutResponse.newBuilder().setMapAccomplishInfo(CBean2Proto.getMapAccomplishInfo(mapMission)).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 { MapManager mapManager = user.getMapManager(); + mapManager.clearMapMission(); mapManager.setMapInfo(new HashMap<>()); mapManager.setTypeEight(new HashMap<>()); mapManager.setWalkCells(new HashSet<>()); @@ -1025,34 +1020,6 @@ public class MapLogic { MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_ALL_MAP_ACCOMPLISH_RESPONSE_VALUE,build,true); } - - public void takeMissionBoxReward(ISession session,int mapId,int boxWeight) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - MapManager mapManager = user.getMapManager(); - MapMission mapMission = mapManager.getAllMissionProgress().get(mapId); - if(mapMission == null ){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MAP_MISSION_BOX_RESPONSE_VALUE,""); - return; - } - SAccomplishmentBox sAccomplishmentBox = SAccomplishmentBox.getsAccomplishmentBoxByMapId(mapId); - int totalWeight = mapMission.getTotalWeight(); - Integer rewaedGroupId = sAccomplishmentBox.getBoxMap().get(boxWeight); - if(rewaedGroupId == null || totalWeight < boxWeight ){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MAP_MISSION_BOX_RESPONSE_VALUE,""); - return; - } - if(mapMission.getHadTakeRewardIds().contains(boxWeight)){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MAP_MISSION_BOX_RESPONSE_VALUE,"hadTaked"); - return; - } - mapMission.getHadTakeRewardIds().add(boxWeight); - mapMission.setHadTakeRewardIds(mapMission.getHadTakeRewardIds()); - CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[]{rewaedGroupId}, 1.0f, 0); - MapInfoProto.TakeMapBoxResponse build = MapInfoProto.TakeMapBoxResponse.newBuilder().setDrop(drop).build(); - MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MAP_MISSION_BOX_RESPONSE_VALUE,build,true); - } - public int getLeftTime(User user) throws Exception { SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId()); long startExporeTime = user.getMapManager().getStartExporeTime(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 5f48565cc..9898695a0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -203,6 +203,11 @@ public class MapManager extends MongoBase { allMissionProgress.put(mapMission.getMapId(),mapMission); } + public void clearMapMission(){ + removeString( getMongoKey()+".allMissionProgress." + curMapId); + allMissionProgress.remove(curMapId); + } + public static void getEnergy(User user) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMission.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMission.java index 525ed68ba..d7ce50b8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMission.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMission.java @@ -13,8 +13,6 @@ public class MapMission extends MongoBase { private Map allMissionProgress; - private Set hadTakeRewardIds; - private int totalWeight; public int getMapId() { @@ -31,7 +29,6 @@ public class MapMission extends MongoBase { this.setRootCollection(User._COLLECTION_NAME); this.mapId = mapId; this.allMissionProgress = missionProgress; - this.hadTakeRewardIds = new HashSet<>(); } @@ -44,9 +41,6 @@ public class MapMission extends MongoBase { this.allMissionProgress = allMissionProgress; } - public Set getHadTakeRewardIds() { - return hadTakeRewardIds; - } public void setTotalWeight(int totalWeight) { updateString("totalWeight",totalWeight); @@ -57,8 +51,4 @@ public class MapMission extends MongoBase { return totalWeight; } - public void setHadTakeRewardIds(Set hadTakeRewardIds) { - updateString("hadTakeRewardIds",hadTakeRewardIds); - this.hadTakeRewardIds = hadTakeRewardIds; - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TakeMapBoxRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TakeMapBoxRewardHandler.java deleted file mode 100644 index 6bc847a9e..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TakeMapBoxRewardHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -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; - -@Component -public class TakeMapBoxRewardHandler extends BaseHandler { - @Override - public MessageTypeProto.MessageType getMessageCode() { - return MessageTypeProto.MessageType.TAKE_MAP_MISSION_BOX_REQUEST; - } - - @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { - byte[] bytes = netData.parseClientProtoNetData(); - MapInfoProto.TakeMapBoxRequest takeMapBoxRequest = MapInfoProto.TakeMapBoxRequest.parseFrom(bytes); - int boxWeight = takeMapBoxRequest.getBoxWeight(); - int mapId = takeMapBoxRequest.getMapId(); - MapLogic.getInstance().takeMissionBoxReward(iSession,mapId,boxWeight); - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java index 27752a99b..e589fe609 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java @@ -42,4 +42,9 @@ public class AdventureManager extends MongoBase { public Map getAdventureStateInfoMap() { return adventureStateInfoMap; } + + public void clearStation(int position) { + removeString(getMongoKey()+".adventureStateInfoMap." + position); + adventureStateInfoMap.remove(position); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 957927ef5..a7e0d1057 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -49,28 +49,34 @@ public class CombatLogic { } public void adventureStation(ISession session,int position,List heroIds) throws Exception { - if(heroIds == null || heroIds.isEmpty()){ - MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,""); - return; - } - int uid = session.getUid(); + int uid = session.getUid(); User user = UserManager.getUser(uid); SAdventureConfig sAdventureConfig = SAdventureConfig.getSAdventureConfigByPosition(position); if(sAdventureConfig.getOpenLevel() > user.getPlayerInfoManager().getLevel()){ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"等级不够"); return; } - + AdventureManager adventureManager = user.getAdventureManager(); + //检验 + Map adventureStateInfoMap = adventureManager.getAdventureStateInfoMap(); + if(heroIds == null || heroIds.isEmpty()){ + if(!adventureStateInfoMap.containsKey(position)){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,""); + return; + } + calAdvenrureReward(user,true,position); + adventureManager.clearStation(position); + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,null,true); + return; + } if(heroIds.size()>sAdventureConfig.getMaxNum()){ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"英雄数量大于规定数量"); return; } - AdventureManager adventureManager = user.getAdventureManager(); - //检验 - Map adventureStateInfoMap = adventureManager.getAdventureStateInfoMap(); + for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()){ int positionTmp = adventureStateInfoTmp.getPosition(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index ad43f93a6..dedaf688d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -203,7 +203,6 @@ public class CBean2Proto { return CommonProto.MapAccomplishInfo.newBuilder() .setMapId(mapId) .addAllExploreDetail(exploreDetailList) .setTotalWeight(totalWeight) - .addAllHadTakedId(mapMission.getHadTakeRewardIds()) .build(); }