From 5ed723c9da0dd7990e6bdc2b418e58eaecab9252 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 23 Oct 2019 14:48:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=89=AF=E6=9C=AC=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 137 +++++++++--------- .../jieling/logic/GlobalDataManaager.java | 2 +- 2 files changed, 71 insertions(+), 68 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 ef5963895..46ab50eaa 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 @@ -1235,7 +1235,10 @@ public class MapLogic { } int groupId = option[0]; if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) { - groupId =STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId); + Integer newGroupId= STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId); + if(newGroupId!=null){ + groupId = newGroupId; + } } int destoryXY = mapManager.getTriggerXY(); CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(user, mapManager.getTeamId(), true); @@ -1277,14 +1280,13 @@ public class MapLogic { if (resultCode == 0) { //todo 无尽副本不复活记得改回去 if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) { -// //无尽副本复活消耗 +// //无尽副本复活消耗 reviveConsumeExecution(user); - } -// for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ -// mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); -// mapManager.updateEndlessHeroHp(entry.getKey(),0); -// } -// }else { + for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ + mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); + mapManager.updateEndlessHeroHp(entry.getKey(),0); + } + }else { // 失败需要等待n秒后复活所有英雄 int dieCount = user.getMapManager().getDieCount(); dieCount++; @@ -1308,7 +1310,7 @@ public class MapLogic { remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } } -// } + } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse .newBuilder() @@ -1515,67 +1517,67 @@ public class MapLogic { mapManager.setLastFightResult(resultCode); if (resultCode == 0 || dropout == 1) { //todo 无尽副本复活 - if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 4) { //无尽副本复活消耗 reviveConsumeExecution(user); -// for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ -// mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); -// mapManager.updateEndlessHeroHp(entry.getKey(),0); -// } - } -// else{ - // 失败需要等待n秒后复活所有英雄 - int dieCount = user.getMapManager().getDieCount(); - dieCount++; - user.getMapManager().setDieCount(dieCount); - int[] reviveTime = sChallengeConfig.getReviveTime(); - long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); - user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user, true); - remainHp.clear(); - if (leftTime <= (int) (time / 1000)) { - resetMapInfo(user, false); + for (Map.Entry> entry : mapManager.getHeroAllAttributeMap().entrySet()) { + mapManager.updateHeroOneAttribute(entry.getKey(), HeroAttributeEnum.CurHP.getPropertyId(), 0); + mapManager.updateEndlessHeroHp(entry.getKey(), 0); + } } else { - initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2); - Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { - continue; + // 失败需要等待n秒后复活所有英雄 + int dieCount = user.getMapManager().getDieCount(); + dieCount++; + user.getMapManager().setDieCount(dieCount); + int[] reviveTime = sChallengeConfig.getReviveTime(); + long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); + user.getMapManager().setCanMoveTime(TimeUtils.now() + time); + int leftTime = getLeftTime(user, true); + remainHp.clear(); + if (leftTime <= (int) (time / 1000)) { + resetMapInfo(user, false); + } else { + initTeamInfo(mapManager.getTeamId(), uid, user, mapManager, 2); + Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); + for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { + Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); + if (hero == null) { + continue; + } + remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } - remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } } - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse - .newBuilder(); - fightEndResponse.setResult(resultCode); - fightEndResponse.setEnventDrop(dropBuilder); - fightEndResponse.addAllRemainHpList(remainHp); - fightEndResponse.setLastXY(mapManager.getLastXY()); - mapManager.setCurXY(mapManager.getLastXY()); - if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==2){ - fightEndResponse.setLastTowerTime((int)(mapManager.getCurrTowerTime()/1000)); - } + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse + .newBuilder(); + fightEndResponse.setResult(resultCode); + fightEndResponse.setEnventDrop(dropBuilder); + fightEndResponse.addAllRemainHpList(remainHp); + fightEndResponse.setLastXY(mapManager.getLastXY()); + mapManager.setCurXY(mapManager.getLastXY()); + if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 2) { + fightEndResponse.setLastTowerTime((int) (mapManager.getCurrTowerTime() / 1000)); + } - if(sOptionConfig!=null){ - int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues(); - if(jumpTypeValues.length>0 && sOptionConfig.getJumpType() == 3){ - SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]); - if(sOptionAddConditions!=null && sOptionAddConditions.getType() == 7){ - Cell cell = mapManager.getMapInfo().get(triggerXY); - if (cell != null ) { - nextEventId = getNextEventId(user, cell, sOptionConfig); - cell.setEventId(nextEventId); - mapManager.addOrUpdateCell(triggerXY, cell); - fightEndResponse.setEventId(nextEventId); + if (sOptionConfig != null) { + int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues(); + if (jumpTypeValues.length > 0 && sOptionConfig.getJumpType() == 3) { + SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]); + if (sOptionAddConditions != null && sOptionAddConditions.getType() == 7) { + Cell cell = mapManager.getMapInfo().get(triggerXY); + if (cell != null) { + nextEventId = getNextEventId(user, cell, sOptionConfig); + cell.setEventId(nextEventId); + mapManager.addOrUpdateCell(triggerXY, cell); + fightEndResponse.setEventId(nextEventId); + } } } } - } - MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); - return; + MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); + return; } for (int i = 2; i < checkResult.length; i++) { if (checkResult[i] <= 0) { @@ -1588,13 +1590,14 @@ public class MapLogic { List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){ mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1); - for (int i = 0 ; i heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); - int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); - mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); - mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); - + if(checkResult[0]>0){ + for (int i = 0 ; i heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); + int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); + mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); + mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + } } // if(!cacheRemove.isEmpty()){ // Iterator iterator = team.iterator(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index da94017c0..4caef3e30 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -386,7 +386,7 @@ public class GlobalDataManaager { } int size = (int)(users.size()*0.85); if(size ==0){ - return -1; + return 1; } int level = 0; for(int i = 0 ; i