From dc92619cbe7ca08c27a9020670f1ca1e9c43d1fc Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 1 Jul 2019 20:28:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=AC=E5=A1=94=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E5=B1=82=E6=97=B6=E9=97=B4=E3=80=81=E7=88=AC=E5=A1=94=E6=89=AB?= =?UTF-8?q?=E8=8D=A1=E3=80=81=E9=80=80=E5=87=BA=E5=9C=B0=E5=9B=BE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/config/STrialConfig.java | 10 ++- .../com/ljsd/jieling/globals/BIReason.java | 1 + .../ljsd/jieling/handler/map/MapLogic.java | 67 +++++++++++-------- .../ljsd/jieling/handler/map/MapManager.java | 4 ++ .../map/behavior/FourtyTwoBehavior.java | 16 ++--- .../map/mapHandler/MapOutRequestHandler.java | 3 +- 6 files changed, 60 insertions(+), 41 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java index 9aa9ffd65..91bfeff01 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java @@ -16,6 +16,7 @@ public class STrialConfig implements BaseConfig { @Override public void init() throws Exception { sTrialConfigMap = STableManager.getConfig(STrialConfig.class); + this.highestTower = sTrialConfigMap.size(); } /** @@ -66,7 +67,10 @@ public class STrialConfig implements BaseConfig { private int eliteEnergy; private int[][] randomStore; - + /** + * 最高层 + */ + private static int highestTower; public int getId() { return id; @@ -109,4 +113,8 @@ public class STrialConfig implements BaseConfig { } public int[][] getRandomStore() { return randomStore;} + + public static int getHighestTower() { + return highestTower; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index ca87264ac..712ef3c5a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -53,6 +53,7 @@ public interface BIReason { int BOMB_REWARD = 33;//炸弹掉落 + int TOWER_SWEEP_REWARD = 34;//爬塔扫荡奖励 //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 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 ca0096b75..5d348f51a 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 @@ -802,7 +802,7 @@ public class MapLogic { * @param messageType * @throws Exception */ - public void outMap(ISession session, int mapId, MessageTypeProto.MessageType messageType) throws Exception { + public void outMap(ISession session, int mapId,int outType, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); @@ -810,29 +810,31 @@ public class MapLogic { if(challengeConfig.getType()==2){ int time = (int)((System.currentTimeMillis()-mapManager.getStartExporeTime())/1000); mapManager.setCurrTowerTime(time); -// if(mapManager.getEveryTowerTime()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){ +// if(mapManager.getEveryTowerTi +// me()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){ // mapManager.setTowerTimeByTower(mapManager.getTower(),time); // } if(mapManager.getTower()>=1){ mapManager.setMapIntoFlag(1); } - MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder(); - builder.setUseTime(mapManager.getCurrTowerTime()); - LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime()); - if(mapManager.getTower()>mapManager.getHighestTower()){ - mapManager.setHighestTower(mapManager.getTower()); + + + } + if(outType == 0||mapManager.getTower()-1==STrialConfig.getHighestTower()){ + boolean result = onlyLevelMap(user, true); + if (!result) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); + return; } - MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); - return; - } - boolean result = onlyLevelMap(user, true); - if (!result) { - MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); - return; + MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder(); + builder.setUseTime(mapManager.getCurrTowerTime()); + LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime()); + if(mapManager.getTower()>mapManager.getHighestTower()){ + mapManager.setHighestTower(mapManager.getTower()); } - - MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); + return; } public void whenLogin(User user) throws Exception { @@ -1243,7 +1245,12 @@ public class MapLogic { if (monsterGroupId == mapManager.getSuddenlyBoss()) { mapManager.findSuddenlyBoss(0, 0); } - fightEndResponse.setEssenceValue(mapManager.getEssenceValue()); +// if(mapManager.getBossType()==1) + if(mapManager.getTower()==STrialConfig.getHighestTower()&&mapManager.getBossType()!=0){ + fightEndResponse.setLastTowerTime(mapManager.getCurrTowerTime()); + }else{ + fightEndResponse.setLastTowerTime(0); + } MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); } @@ -1945,6 +1952,14 @@ public class MapLogic { public String initTrialMap(MapManager mapManager, User user) throws Exception { STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower()); + if(mapManager.getTower()>1){ + for(int i = 1 ; i {} sTrialConfig == null =>{} ", user.getId(), mapManager.getTower()); return ""; @@ -2065,10 +2080,12 @@ public class MapLogic { type = MathUtils.randomFromWeight(bossType); if(mapManager.getTower()==1){ - type = 3; + type = 2; }else if(mapManager.getTower()==2){ type = 4; } + + // int amount = 0; // for(int i = 0 ; i mapInfo = mapManager.getMapInfo(); Map sEventPointConfig = SEventPointConfig.sEventPointConfigMap; Set destoryCell = new HashSet<>(); @@ -2282,12 +2299,6 @@ public class MapLogic { return "使用错误,当前层不存在buff"; } int mapPointId = mapManager.getTowerUnusedBuffer().get(towerLevel); -// MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(mapPointId); -// if(mapPointId == null){ -// return "parm wrong"; -// } -// int initialEventId = mapPointConfig.getInitialEventId(); -// mapManager.consunmeTowerBuffer(towerLevel); SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(mapPointId); int[] options = sEventPointConfig.getOption(); for(int optionTmp : options){ 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 2a67a50f5..47dd867a0 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 @@ -562,4 +562,8 @@ public class MapManager extends MongoBase { everyTowerTime.put(tower,time); } } + public void removeBoss(){ + this.setBossXY(0); + this.setBossType(0); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java index 85c159be0..fe1e050f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyTwoBehavior.java @@ -9,8 +9,6 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.protocols.MapInfoProto; import org.springframework.stereotype.Component; -import java.util.Map; - @Component public class FourtyTwoBehavior extends BaseBehavior{ @Override @@ -21,19 +19,15 @@ public class FourtyTwoBehavior extends BaseBehavior{ @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { MapManager mapManager = user.getMapManager(); - int maxTower = 0; - Map sTrialConfig = STrialConfig.sTrialConfigMap; - for(Map.Entry entry:sTrialConfig.entrySet()){ - if(entry.getValue().getId()>maxTower){ - maxTower = entry.getValue().getId(); - } - } + int maxTower = STrialConfig.getHighestTower(); SChallengeConfig challengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId()); if(challengeConfig.getType()==2&&mapManager.getTower()>=maxTower){ - LOGGER.info("当前层为{},最大层为{}"+mapManager.getTower()+maxTower); + mapManager.setTower(mapManager.getTower()+1); + LOGGER.info("当前层为{},最大层为{}",mapManager.getTower(),maxTower); return false; } - LOGGER.info("当前层为{},进入下一层"+mapManager.getTower()); + LOGGER.info("当前层为{},进入下一层",mapManager.getTower()); + mapManager.removeBoss(); mapManager.setTower(mapManager.getTower()+1); mapManager.setEssenceValue(0); MapLogic.getInstance().initTrialMap(mapManager, user); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java index ecccfa2a5..a435767ed 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java @@ -20,6 +20,7 @@ public class MapOutRequestHandler extends BaseHandler{ 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); + int outType = mapOutRequest.getOutType(); + MapLogic.getInstance().outMap(iSession, mapId,outType,MessageTypeProto.MessageType.MAP_OUT_RESPONSE); } }