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 038e226d6..8f63c3150 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 @@ -469,7 +469,7 @@ public class GMRequestHandler extends BaseHandler{ //通关山河社稷图特定关卡的之前所有关卡 int id = prarm1; HardStageLogic.test(cUser,id); - HardStageLogic.sendHardStageIndication(cUser); + HardStageLogic.sendHardStageIndication(cUser,1); break; case GlobalGm.FOUR_SPIRITS: //四灵试炼跳关 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageInfoRequestHandler.java index dfc49719f..f3a2f7b50 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/HardStageInfoRequestHandler.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.handler.hardStage; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.hardStage.HardStageChapter; import com.ljsd.jieling.logic.hardStage.HardStageLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.MessageUtil; @@ -11,6 +12,9 @@ import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; +import java.util.Comparator; +import java.util.Map; + @Component public class HardStageInfoRequestHandler extends BaseHandler { @@ -21,11 +25,16 @@ public class HardStageInfoRequestHandler extends BaseHandler map = user.getHardStageManager().getChapterMap(user); + int maxChapter = map.keySet().stream().max(Comparator.comparing(Integer::intValue)).orElse(0); + int page = maxChapter%10 == 0? maxChapter/10:maxChapter/10+1; + response.setIsEnd(proto.getPage()>=page?1:0); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.HARD_STAGE_INFO_RESPONSE.getNumber(), response.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java index ddd636535..b93c7b9fa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hardStage/StartHardStageRequestHandler.java @@ -59,6 +59,7 @@ public class StartHardStageRequestHandler extends BaseHandler dropList = new ArrayList(); SHardStage nodeConfig = SHardStage.getConfigMap().get(nodeId); + int page = nodeConfig.getChapter()%10 == 0? nodeConfig.getChapter()/10:nodeConfig.getChapter()/10+1; Map chapterMap = user.getHardStageManager().getChapterMap(user); if (!chapterMap.containsKey(nodeConfig.getChapter()) ||chapterMap.get(nodeConfig.getChapter()).getNode(nodeId) == null) { //上一个节点 @@ -244,7 +245,7 @@ public class StartHardStageRequestHandler extends BaseHandler extMap = new TreeMap<>(); extMap.put("power",force); 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 c0abe1a0f..040e1639e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -508,7 +508,7 @@ public class GlobalDataManaager implements IManager { } // 山河社稷图 每日奖励领取状态设为false user.getHardStageManager().setTakeReward(false); - HardStageLogic.sendHardStageIndication(user); + HardStageLogic.sendHardStageIndication(user,1); //刷新膜拜信息 user.getPlayerInfoManager().setProudInfo(new HashSet<>()); // 道具刷新 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java index 36d2755c9..1d55dd859 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java @@ -45,7 +45,7 @@ public class HardStageLogic { /** * 获取山河社稷图信息 */ - public static CommonProto.HardStageInfo.Builder getInfo(User user) throws Exception { + public static CommonProto.HardStageInfo.Builder getInfo(User user,int page) throws Exception { Map map = user.getHardStageManager().getChapterMap(user); CommonProto.HardStageInfo.Builder builder = CommonProto.HardStageInfo.newBuilder(); int needSaveChapterId = 0; @@ -73,8 +73,8 @@ public class HardStageLogic { } } } - - for (Map.Entry entry : map.entrySet()) { + int start = (page - 1) * 10, end = page * 10 ; + for (Map.Entry entry : map.entrySet().stream().filter(n->n.getKey()> start&&n.getKey()<=end).collect(Collectors.toList())) { //章节信息 CommonProto.HardStageChapter.Builder chapterBuilder = CommonProto.HardStageChapter.newBuilder(); int starNums =0;//章节星星数检测 章节星星总数和所有小节的星星累加的总数 比较 @@ -303,7 +303,8 @@ public class HardStageLogic { } } - sendHardStageIndication(user); + //int page = nodeConfig.getChapter()%10 == 0? nodeConfig.getChapter()/10:nodeConfig.getChapter()/10+1; + //sendHardStageIndication(user,page); return star; } public static void updateChapterAndNodeLevel(User user, SHardStage nodeConfig ){ @@ -352,8 +353,8 @@ public class HardStageLogic { return false; } - public static void sendHardStageIndication(User user) throws Exception { - CommonProto.HardStageInfo.Builder info = getInfo(user); + public static void sendHardStageIndication(User user,int page) throws Exception { + CommonProto.HardStageInfo.Builder info = getInfo(user,page); PlayerInfoProto.HardStageResponse.Builder response = PlayerInfoProto.HardStageResponse.newBuilder(); response.setInfo(info); response.setIsTake(user.getHardStageManager().isTakeReward()); @@ -393,7 +394,7 @@ public class HardStageLogic { user.getHardStageManager().setNoOpenId(noOpenId); needDel.clear(); } - sendHardStageIndication(user); + //sendHardStageIndication(user); } /**