From 3811d592998c1214c8175a20f869d74a671134b3 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Mon, 24 May 2021 15:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=B1=E6=B2=B3=E7=A4=BE=E7=A8=B7gm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/GlobalGm.java | 1 + .../handler/GameGM/GMRequestHandler.java | 8 ++++ .../jieling/logic/dao/HardStageManager.java | 6 ++- .../logic/hardStage/HardStageChapter.java | 2 +- .../logic/hardStage/HardStageLogic.java | 48 ++++++++++++++++++- 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 4e3a34fea..8105dbd55 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -27,5 +27,6 @@ public interface GlobalGm { int JOURNEY_GM = 24;//逍遥游GM操作 // int TECNOLOGY_MAX = 21;//科技树一键满级 // int POKEMAN_MAX = 22;//一键获得所有满级异妖 + int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡 } 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 d4996291d..20c2c16bc 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 @@ -1,5 +1,6 @@ package com.ljsd.jieling.handler.GameGM; +import com.fasterxml.jackson.databind.deser.impl.CreatorCandidate; import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig; @@ -16,6 +17,7 @@ import com.ljsd.jieling.handler.map.*; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.CombatLogic; +import com.ljsd.jieling.logic.hardStage.HardStageLogic; import com.ljsd.jieling.logic.mission.main.VipMissionIdsType; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; @@ -444,6 +446,12 @@ public class GMRequestHandler extends BaseHandler{ } cUser.getMapManager().updateJourneyInfoByMapId(prarm2,pathInfo); break; + case GlobalGm.HARD_STAGE: + //通关山河社稷图特定关卡的之前所有关卡 + int id = prarm1; + HardStageLogic.test(cUser,id); + HardStageLogic.sendHardStageIndication(cUser); + break; default: break; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java index 2d535f9eb..1892cbced 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HardStageManager.java @@ -29,7 +29,7 @@ public class HardStageManager extends MongoBase { return chapterMap; } - private Map initChapterMap(User user) throws Exception { + public Map initChapterMap(User user) throws Exception { Map map = new HashMap<>(); SHardStage nodeOne = SHardStage.getConfigMap().get(1);//第一个节点 if (user.getPlayerInfoManager().getLevel() < nodeOne.getLevelLimit()) { @@ -86,6 +86,10 @@ public class HardStageManager extends MongoBase { } HardStageChapter chapter; chapter = chapterMap.computeIfAbsent(config.getChapter(), k -> initChapter(config.getChapter())); + + if(chapter.getNodeList().stream().anyMatch(n->n.getId() == config.getId())){ + return; + } HardStageNode node = initNode(config); chapter.addNodeList(node); /*if(chapterMap.containsKey(config.getChapter())){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java index aea8c5114..7cf1ae70c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageChapter.java @@ -25,7 +25,7 @@ public class HardStageChapter extends MongoBase { this.chapterId = chapterId; } - public List getNodeList() { + public List getNodeList() { return nodeList; } 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 afeb133bc..4a89db61d 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 @@ -12,6 +12,7 @@ import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemMap; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; +import com.sun.codemodel.internal.JForEach; import config.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,6 +21,7 @@ import rpc.protocols.MessageTypeProto; import rpc.protocols.PlayerInfoProto; import util.StringUtil; +import javax.swing.text.StyledEditorKit; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -330,4 +332,48 @@ public class HardStageLogic { } return 0; } -} + + + /** + * gm测试 + * + * @param + */ + public static void test(User user,int id) throws Exception{ + user.getHardStageManager().getChapterMap(user); + + for(int i=1;i<=id;i++){ + SHardStage config = SHardStage.getConfigMap().get(i); + if(config != null){ + user.getHardStageManager().openNewNode(user,config); + if(i == id){ + user.getHardStageManager().setCurChapter(config.getChapter()); + user.getHardStageManager().setCurNode(config.getSection()); + } + } + } + //user.getHardStageManager().updateString("hardStageManager", user.getHardStageManager()); + Map map = user.getHardStageManager().getChapterMap(user); + //Set key = map.keySet(); + for(Integer key:map.keySet()){ + HardStageChapter chapter = map.get(key); + chapter.getNodeList().stream().forEach(n-> + { + if(!n.isHasPass()){ + if(n.getType()== 1){ + n.setState(7); + chapter.addStars(3); + user.getHardStageManager().updateString("chapterMap." + chapter.getChapterId(), chapter); + //user.getHardStageManager().updateString("chapterMap",user.getHardStageManager().getChapterMap()); + + }else { + n.setState(1); + } + n.setHasPass(true); + } + + }); + } + //user.getHardStageManager().updateString("", user.getHardStageManager()); + } + }