From c149f6ad1679388917fd060c6eb549b39439943e Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Tue, 6 Jul 2021 00:40:05 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B1=B1=E6=B2=B3=E7=A4=BE=E7=A8=B7?= =?UTF-8?q?=E6=98=9F=E6=95=B0=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/dao/UserMissionManager.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index ceff8f6b2..80629144c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -9,6 +9,7 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.hardStage.HardStageLogic; import com.ljsd.jieling.logic.mission.*; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.logic.mission.main.*; @@ -585,8 +586,12 @@ public class UserMissionManager extends MongoBase { //缥缈之旅 if(!mistyTripMissionType.getDoingMissionIds().isEmpty() ){ - Map endlessConfig = STableManager.getConfig(SEndlessTask.class); - if(endlessConfig!=null&&endlessConfig.size()!=0){ + Map config = STableManager.getConfig(SEndlessTask.class); + if(config!=null&&config.size()!=0){ + int starSum = HardStageLogic.getHardStageStarsSum(user); + if(starSum != 0 && mistyTripCumulationData.getHardstage_stars() == 0){ + mistyTripCumulationData.setHardstage_stars(starSum); + } CumulationData.Result result= mistyTripCumulationData.updateData(missionType, parm); if(result!=null){ mistyTripMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.MISTY_TRIP_MISSION),mistyTripCumulationData); From f390066adbb1e946f1732cf267f5c285e4fc3f64 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Wed, 7 Jul 2021 16:27:02 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=A3=98=E6=B8=BA=E4=B9=8B=E6=97=85?= =?UTF-8?q?=E5=A4=A7=E9=97=B9=E5=A4=A9=E5=AE=AB=E6=AC=A1=E6=95=B0=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/dao/UserMissionManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 80629144c..317f08fcf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -592,6 +592,9 @@ public class UserMissionManager extends MongoBase { if(starSum != 0 && mistyTripCumulationData.getHardstage_stars() == 0){ mistyTripCumulationData.setHardstage_stars(starSum); } + if(treasureWeekCumulationData.expeditinoTimes!= 0 && mistyTripCumulationData.expeditinoTimes == 0){ + mistyTripCumulationData.expeditinoTimes = treasureWeekCumulationData.expeditinoTimes; + } CumulationData.Result result= mistyTripCumulationData.updateData(missionType, parm); if(result!=null){ mistyTripMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.MISTY_TRIP_MISSION),mistyTripCumulationData); From 1fc0e7335f599c2f1ed84a3c720871635f566a42 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Mon, 5 Jul 2021 18:35:49 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=BC=A5=E7=BC=88=E4=B9=8B=E6=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/dao/UserMissionManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 317f08fcf..bec55bf1a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -595,6 +595,10 @@ public class UserMissionManager extends MongoBase { if(treasureWeekCumulationData.expeditinoTimes!= 0 && mistyTripCumulationData.expeditinoTimes == 0){ mistyTripCumulationData.expeditinoTimes = treasureWeekCumulationData.expeditinoTimes; } + if(sevenHappyCumulationData.expeditinoTimes!= 0 && sevenHappyCumulationData.expeditinoTimes == 0){ + mistyTripCumulationData.expeditinoTimes = sevenHappyCumulationData.expeditinoTimes; + } + CumulationData.Result result= mistyTripCumulationData.updateData(missionType, parm); if(result!=null){ mistyTripMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.MISTY_TRIP_MISSION),mistyTripCumulationData); From d9941a380c2a65c39e847c7edcf83809da272ac4 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 5 Jul 2021 18:43:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=BF=83=E6=84=BF=E6=8A=BD=E5=8D=A1?= =?UTF-8?q?=E6=A6=82=E7=8E=87=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) 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 e647378d6..7701a87bf 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 @@ -417,6 +417,8 @@ public class HeroLogic{ if (scHero.getStar() < 5){ return item; } + + /* ======================= 中不中心愿 ======================= */ // 随机权重 int totalNum = 10000; int anInt = MathUtils.randomInt(totalNum); @@ -424,24 +426,37 @@ public class HeroLogic{ int value = SSpecialConfig.getIntegerValue(SSpecialConfig.CARDWISHBLOCKRATE); // 获取玩家现在的心愿格子信息 Map cardInfoMap = user.getHeroManager().getWishDrawCardInfoMap(); + // 中将权重值 + int weight = cardInfoMap.size() * value; + // 未中奖 + if (anInt > weight){ + return item; + } + + /*======================== 中心愿随机奖励 ========================*/ // 计算权重map - HashMap map = new HashMap<>(4); + HashMap map = new HashMap<>(); for (Integer key : cardInfoMap.keySet()) { if (cardInfoMap.get(key).getStatus() == 1){ // 已经抽中得格子去除 - totalNum-=value; + weight-=value; continue; } map.put(key,value); } + + // 全部抽中 + if (map.isEmpty() || weight == 0){ + return item; + } + int sum = map.values().stream().mapToInt(Integer::intValue).sum(); - // 这里添加得是空格子, key随便填,只要不和之前重复既可. 目前用的总权重数负值当key - map.put(-totalNum,totalNum-sum); + int randomInt = MathUtils.randomInt(sum); // 遍历权重 for (Map.Entry entry : map.entrySet()) { - if (anInt <= entry.getValue()){ + if (randomInt <= entry.getValue()){ // 读取格子信息 WishDrawCardInfo cardInfo = cardInfoMap.get(entry.getKey()); // null表示未中心愿, 该格子已锁定, 是空格子