diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java index 68b446c45..7f9dcda7b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/explorerMap/ExplorerMapEventHandler.java @@ -107,7 +107,7 @@ public class ExplorerMapEventHandler extends BaseHandler { @@ -33,11 +36,18 @@ public class ExplorerMapEventXMBeforeBattleHandler extends BaseHandler exploreEventConfig = STableManager.getConfig(SExploreEvent.class); + if(!exploreEventConfig.containsKey(eventId)){ + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerXMEventChallengeBeforeResponse.getNumber(), builder.build(), true); + return; + } int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup(); String key = RedisUtil.getInstence().getKey(RedisKey.FORCE_CURR_RANK,String.valueOf(crossGroup),false); Set> forceZetSort = RedisUtil.getInstence().getAllZsetRange(key); - int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false); - final int forcelimit = force+force*500/10000; + int force = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.EXPLORE_EVENT_TEAM.getTeamId(), false); + int forceRange = exploreEventConfig.get(eventId).getForceRange(); + final int forcelimit = force+force*forceRange/10000; int matchUid = forceZetSort.stream().filter(n -> n.getScore() >= forcelimit).map(v -> Integer.parseInt(v.getValue())).findAny().orElse(0); if(matchUid == 0){ List> lst = new ArrayList>(forceZetSort); // @@ -48,7 +58,7 @@ public class ExplorerMapEventXMBeforeBattleHandler extends BaseHandler event = user.getPlayerInfoManager().getExploreEvent(); + List filtEvent = event.stream().filter(n->n.getVal()>=TimeUtils.nowInt()).collect(Collectors.toList()); + if(event.size() != filtEvent.size()){ + user.getPlayerInfoManager().setExploreEvent(filtEvent); + PlayerInfoProto.ExplorerMapIndicationResponse.Builder indication = PlayerInfoProto.ExplorerMapIndicationResponse.newBuilder(); + for (KeyVal keyVal : filtEvent) { + indication.addRandEvent(CommonProto.CommKeyVal.newBuilder().setKey(keyVal.getKey()).setVal(keyVal.getVal()). + setVal2(keyVal.getVa2()).build()); + } + MessageUtil.sendIndicationMessage(sess, 1, MessageTypeProto.MessageType.ExplorerMapIndicationResponse_VALUE, indication.build(), true); + } + } public void calOfflineReward(User user) throws Exception { //计算离线奖励 @@ -434,6 +448,7 @@ public class ExplorerMapLogic { }*/ sendRandomEvent(user); } + sendDisappearEvent(user); MongoUtil.getLjsdMongoTemplate().lastUpdate(); } } catch (Exception e) {