diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 1ff358163..713bc366b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -14,5 +14,6 @@ public interface GlobalGm { int VIP_LEVEL = 11; // 根据等级开启对应的关卡 int RESET_USER_NAME = 12; int CREATE_INVADE = 13; //生成外敌 + int SET_TOWER_NUMBER = 14;//设置试炼副本进入层数 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 9046def3e..b6727b821 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -206,7 +206,10 @@ public class GMRequestHandler extends BaseHandler{ break; case GlobalGm.CREATE_INVADE: CombatLogic.getInstance().randomInvasionBoss(iSession.getUid(),prarm1,100,true); - + break; + case GlobalGm.SET_TOWER_NUMBER: + MapLogic.getInstance().setTower(iSession.getUid(),prarm1); + break; default: } try { 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 0c0ae6938..c64b2e0e4 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 @@ -198,9 +198,10 @@ public class MapLogic { } mapEnterResponse.addAllBuf(towerBuffs); } + SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(mapManager.getCurMapId()); mapEnterResponse.setDieCount(mapManager.getDieCount()); mapEnterResponse.addAllMapList(cells); - mapEnterResponse.setCurXY(mapManager.getCurXY()); + mapEnterResponse.setCurXY(CellUtil.xy2Pos(sChallengeMapConfig.getPosition()[0],sChallengeMapConfig.getPosition()[1])); mapEnterResponse.addAllWakeCells(mapManager.getWalkCells() == null ? new ArrayList<>() : mapManager.getWalkCells()); if (mapManager.getTemporaryItems() != null) { mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems())); @@ -230,14 +231,6 @@ public class MapLogic { .build(); mapEnterResponse.addHeroInfos(heroInfo); } -// List buffers = new ArrayList<>(); -// if(mapManager.getTowerUnusedBuffer()!=null){ -// for(Map.Entry entry:mapManager.getTowerUnusedBuffer().entrySet()){ -// TowerBuff buff = new TowerBuff(entry.getKey(),entry.getValue()); -// buffers.add(CBean2Proto.getTowerBuff(buff)); -// } -// } -// mapManager.setStartExporeTime(System.currentTimeMillis()); LOGGER.info("enterMap() uid=>{} mapId =>{}", uid, mapManager.getCurMapId()); MessageUtil.sendMessage(iSession, 1, messageType.getNumber(), mapEnterResponse.build(), true); } @@ -429,37 +422,40 @@ public class MapLogic { Cell cell = mapManager.getMapInfo().get(triggerXY); if (cell == null) { cell = mapManager.getMapInfo().get(curXY); - if (cell == null) { + if (cell == null&&mapManager.getEssenceValue()!=-1) { LOGGER.info("xy is wrong =>{} triggerXY=>{}", curXY, triggerXY); MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } } - int pointId = cell.getPointId(); - MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(pointId); - if (mapPointConfig.getStyle() == EventType.suddenlyBoss) { - int suddenlyBoss = mapManager.getSuddenlyBoss(); - SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(cell.getEventId()); - if (suddenlyBoss == 0) { - int now = (int) (TimeUtils.now() / 1000); - int bossId = sEventPointConfig.getOption()[0]; - mapManager.findSuddenlyBoss(bossId, now); + int pointId = cell.getPointId(); + MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(pointId); + if (mapPointConfig.getStyle() == EventType.suddenlyBoss) { + int suddenlyBoss = mapManager.getSuddenlyBoss(); + SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(cell.getEventId()); + if (suddenlyBoss == 0) { + int now = (int) (TimeUtils.now() / 1000); + int bossId = sEventPointConfig.getOption()[0]; + mapManager.findSuddenlyBoss(bossId, now); + } + } else if (mapPointConfig.getStyle() == EventType.businessman) { + if (!user.getStoreManager().getStoreInfoMap().containsKey(3)) { + StoreLogic.initOneStore(user, 3); + } + } - } else if (mapPointConfig.getStyle() == EventType.businessman) { - if (!user.getStoreManager().getStoreInfoMap().containsKey(3)) { - StoreLogic.initOneStore(user, 3); - } - } + mapManager.setTriggerXY(triggerXY); mapManager.addWalkCells(new HashSet<>(cells)); mapManager.setCurXY(curXY); - MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder() - .setEventId(cell.getEventId()) - .setLeftTime(getLeftTime(user, true)) - .build(); - LOGGER.info("updateMap() uid=>{} mapId =>{} eventId=>{}", uid, mapManager.getCurMapId(), cell.getEventId()); + MapInfoProto.MapUpdateResponse.Builder mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder(); + mapUpdateResponse.setLeftTime(getLeftTime(user, true)); + mapUpdateResponse.setEventId(cell.getEventId()); + + + // LOGGER.info("updateMap() uid=>{} mapId =>{} eventId=>{}", uid, mapManager.getCurMapId(), cell.getEventId()); mapManager.updateFoodBufferByStep(cells.size()); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse.build(), true); } @@ -825,6 +821,7 @@ public class MapLogic { } mapManager.setEssenceValue(0); + mapManager.setCurrTowerTime(0); boolean result = onlyLevelMap(user, true); if (!result) { MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); @@ -837,7 +834,6 @@ public class MapLogic { if(mapManager.getTower()>mapManager.getHighestTower()){ mapManager.setHighestTower(mapManager.getTower()); } - mapManager.setCurrTowerTime(0); MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); return; } @@ -1033,10 +1029,12 @@ public class MapLogic { STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower()); int[][] randomMonsterType = sTrialConfig.getRandomMonsterType(); if(cell.getCellId()!=mapManager.getBossXY()){ - if (randomMonsterType[0][1] == cell.getPointId()&&mapManager.getEssenceValue()!=-1) { - mapManager.setEssenceValue(mapManager.getEssenceValue() + sTrialConfig.getNormalEnergy()); - } else { - mapManager.setEssenceValue(mapManager.getEssenceValue() + sTrialConfig.getEliteEnergy()); + if(mapManager.getEssenceValue()!=-1){ + if (randomMonsterType[0][1] == cell.getPointId()) { + mapManager.setEssenceValue(mapManager.getEssenceValue() + sTrialConfig.getNormalEnergy()); + } else { + mapManager.setEssenceValue(mapManager.getEssenceValue() + sTrialConfig.getEliteEnergy()); + } } } } @@ -2129,12 +2127,10 @@ public class MapLogic { int[][] bossType = config.getRandomBossType(); type = MathUtils.randomFromWeight(bossType); -// if(mapManager.getTower()<=4){ -// type = 2; -// } -// }else if(mapManager.getTower()==2){ -// type = 3; - clearNormalMonster(user); + if(mapManager.getTower()%5!=0){ + type = 3; + } + LOGGER.info("trigger!!!!!!!!!!!!!!!!!-------->{},{}",CellUtil.pos2XY(mapManager.getCurXY())[0],CellUtil.pos2XY(mapManager.getCurXY())[1]); int[][][] pointId = config.getRandomMapPointId(); int mapId = config.getMapId(); SChallengeMapConfig challengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(mapId); @@ -2143,6 +2139,7 @@ public class MapLogic { Set xySet = CellUtil.getSurroundPos(mapSize[0],mapSize[1],mapManager.getCurXY()); LOGGER.info(xySet.toString()); Map mapInfo = mapManager.getMapInfo(); + clearNormalMonster(user); Iterator it = xySet.iterator(); Map pointConfig = MapPointConfig.scMapEventMap; @@ -2260,6 +2257,7 @@ public class MapLogic { } public void clearNormalMonster(User user) throws Exception { + MapManager mapManager = user.getMapManager(); LOGGER.info("删除当前地图小怪!!"); Map configMap = MapPointConfig.scMapEventMap; Set destoryCell = new HashSet<>(); @@ -2267,7 +2265,7 @@ public class MapLogic { for(Map.Entry entry:mapInfo.entrySet()){ int monsterType = configMap.get(entry.getValue().getPointId()).getStyle(); if(monsterType==1||monsterType==11){ - if(entry.getValue().getEventId() == -1){ + if(!CellUtil.checkIsNextCell(mapManager.getTriggerXY(),entry.getKey())&&entry.getValue().getEventId() == -1){ continue; } destoryCell.add(entry.getValue().getPointId()); @@ -2303,9 +2301,9 @@ public class MapLogic { MessageUtil.sendErrorResponse(iSession,0,messageType.getNumber(),"最高层数为0,无需重置。"); return; } - int afterResetTower = mapManager.getHighestTower()-(mapManager.getHighestTower()%5); + int afterResetTower = mapManager.getHighestTower()-(mapManager.getHighestTower()%5==0?5:mapManager.getHighestTower()%5); LOGGER.info("重置当前层,当前层为{},重置为{}",mapManager.getTower(),afterResetTower); - if(mapManager.getTower()>=5){ + if(mapManager.getTower()>5){ mapManager.setTower(afterResetTower); }else{ mapManager.setTower(1); @@ -2320,6 +2318,7 @@ public class MapLogic { mapManager.setTowerStartTime(0); mapManager.setCurrTowerTime(0); resetMapInfo(user, true); +// mapManager.setTower(98); MapInfoProto.MapTowerResetResponse mapTowerResetResponse = MapInfoProto.MapTowerResetResponse .newBuilder() .setTower(mapManager.getTower()) @@ -2452,5 +2451,9 @@ public class MapLogic { } MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } + //GM调用 + public void setTower(int uid,int towerNumber) throws Exception { + UserManager.getUser(uid).getMapManager().setTower(towerNumber); + } }