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 12bce5cb9..448e53b1f 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 @@ -62,9 +62,18 @@ public class CombatLogic { 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; } if(sAdventureConfig.getMinNum() > heroIds.size()){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"英雄数量小于规定数量"); + return; + } + + int pooId = sAdventureConfig.getPooId(); + SAdventureSetting sAdventureSetting = SAdventureSetting.getsAdventureSetting(pooId); + if(hourDuration > sAdventureSetting.getPerMapMaxHour()){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"超出时长"); return; } @@ -73,6 +82,7 @@ public class CombatLogic { Map adventureStateInfoMap = adventureManager.getAdventureStateInfoMap(); AdventureStateInfo adventureStateInfo = adventureManager.getAdventureStateInfoMap().get(position); if(adventureStateInfo!=null){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"已驻扎"); return; } @@ -81,6 +91,7 @@ public class CombatLogic { for(String useHeroId : heroIds1){ if(heroIds.contains(useHeroId)){ //该英雄已上阵 + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"该英雄已上阵"); return; } } @@ -99,12 +110,14 @@ public class CombatLogic { AdventureManager adventureManager = user.getAdventureManager(); AdventureStateInfo adventureStateInfo = adventureManager.getAdventureStateInfoMap().get(position); if( null == adventureStateInfo ){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,""); return; } int startTime = adventureStateInfo.getStartTime(); int hourDuration = adventureStateInfo.getHourDuration(); int now = (int)(System.currentTimeMillis()/1000); if( (now - startTime ) /3600 < hourDuration ){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,"驻扎时长不到"); return; } //计算奖励 @@ -165,11 +178,9 @@ public class CombatLogic { public float calRatio(float value,float[][] base){ float result = 0; - int length = base.length; for(int i=0;i< base.length;i++){ float weight = base[i][0]; - value = value - weight; - if(value< weight){ + if(value>= weight){ result = base[i][1]; } }