diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DunBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DunBehavior.java index dfcce0236..66dc14735 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DunBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DunBehavior.java @@ -22,24 +22,24 @@ public class DunBehavior extends BaseBehavior { @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - /* int[] behaviorTypeValue = behaviorTypeValues[0]; + int[] behaviorTypeValue = behaviorTypeValues[0]; int randomANums = behaviorTypeValue[0]; int randomBNums = behaviorTypeValue[1]; if(randomANums!=0 || randomBNums!=0){ List randomAEvents = MathUtils.randomForOneArray(behaviorTypeValues[1], randomANums); List randomBEvents = MathUtils.randomForOneArray(behaviorTypeValues[2], randomBNums); randomBEvents.addAll(randomAEvents); - List randomABPosList = MathUtils.randomForOneArray(behaviorTypeValues[3], randomBNums+randomANums); + MapManager mapManager = user.getMapManager(); + List randomABPosList = MathUtils.randomForOneArray(behaviorTypeValues[3], randomBNums); for(Integer pos : randomABPosList){ - Integer eventId = randomBEvents.remove(0); + Integer pointId = randomBEvents.remove(0); eventUpdateResponse.addAddMapInfo(CommonProto.Cell.newBuilder() .setCellId(pos) - .setPointId(eventId) + .setPointId(randomBEvents.remove(0)) .build()); - BehaviorUtil.addBehaviorInfo(eventId,user.getMapManager(),pos); + BehaviorUtil.addBehaviorInfo(pointId,mapManager,pos); } } - return true;*/ - return false; + return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 59c74b6e9..58bd2035a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -589,7 +589,8 @@ public class ArenaLogic { if(type == GlobalsDef.ARENA_DAILY_REWARD){ MissionEventDistributor.requestStart(); - user.getUserMissionManager().onGameEvent(user,GameEvent.ARENA_UPDATE_RANK,-rank); + user.getUserMissionManager().onGameEvent(user,GameEvent.ARENA_UPDATE_RANK,rank); + user.getPlayerInfoManager().removeRed(GlobalsDef.ARENA_CHALLENGE_TYPE); ISession sessionByUid = OnlineUserManager.getSessionByUid(uid); if(sessionByUid!=null){ MissionEventDistributor.requestEnd(sessionByUid,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index a237a7668..1ee6b40f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -38,6 +38,8 @@ public class CumulationData { */ private Map heroLevleCountMap = new HashMap<>(); + public Map levlePassMap = new HashMap<>(); + /** * key:副本类型 value:战斗次数 */ @@ -103,6 +105,7 @@ public class CumulationData { exploreFight.clear(); storyFightInfo.clear(); heroLevleCountMap.clear(); + levlePassMap.clear(); clearArray(sEquipQualityCount); clearArray(heroQualityCount); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 594e51e81..b1b3528cb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -231,8 +231,8 @@ public class HeroLogic { if( (alreadyCount + perCount)/lotterySecurityReward[0] > alreadyCount/lotterySecurityReward[0]){ builder.setExtraBox(ItemUtil.drop(user, new int[]{lotterySecurityReward[1]},1F,0,BIReason.HERO_RANDOM)); } - user.getUserMissionManager().onGameEvent(user,GameEvent.RANDOM_HERO,sLotterySetting.getLotteryType(),perCount); } + user.getUserMissionManager().onGameEvent(user,GameEvent.RANDOM_HERO,sLotterySetting.getLotteryType(),perCount); heroManager.updateRandCount(type,randCount); if(tenTimesMustGetItem!=null){ for(int i=0;imaxFightId){ - data.getHeroLevleCountMap().put(type,fightId); + data.levlePassMap.put(type,fightId); result = new CumulationData.Result(missionType); } }else{ - data.getHeroLevleCountMap().put(type,fightId); + data.levlePassMap.put(type,fightId); result = new CumulationData.Result(missionType); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 78a5d491e..67ac75542 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -35,6 +35,7 @@ public class MissionEventDistributor { List typeList = new ArrayList<>(); typeList.add(MissionType.RECRUITMENT_RANDOM_HEROES); + typeList.add(MissionType.ELEMENT_RANDOM_TIMES); eventEnumListMap.put(GameEvent.RANDOM_HERO,typeList); eventProcessor.put(GameEvent.RANDOM_HERO,new CumulationDataEventProcessor()); @@ -117,6 +118,8 @@ public class MissionEventDistributor { typeList = new ArrayList<>(); typeList.add(MissionType.HERO_STORY_PLAY_TIMES); + typeList.add(MissionType.INVASIONBOSS_PLAY_TIMES); + typeList.add(MissionType.FAST_ADVENTUREREWARD_TIMES); eventEnumListMap.put(GameEvent.PlAY_STORY,typeList); eventProcessor.put(GameEvent.PlAY_STORY,new CumulationDataEventProcessor()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java index 1c24fbc3d..0c856e6c6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java @@ -83,13 +83,16 @@ public class TreasureMissionType extends AbstractMissionType{ if(takeTimes == null){ takeTimes = 0; } - if(times!=0 && (doingProgress/finishParm>times || (doingProgress!=0 && finishParm<0 && doingProgress>finishParm) )){ + if(times!=0 && (finishParm>0 && doingProgress/finishParm>times || (doingProgress!=0 && finishParm<0 && doingProgress>=finishParm) )){ doingMissionIds.remove(id); getFinishMissionIds().add(id); MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.FINISH,times,takeTimes); missionStateChangeInfos.add(missionStateChangeInfo); continue; } + if(finishParm<0){ + continue; + } int sendProgress = (doingProgress - takeTimes * finishParm) / finishParm; if(sendProgress>0){