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 bec55bf1a..05ebed227 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,7 +595,7 @@ public class UserMissionManager extends MongoBase { if(treasureWeekCumulationData.expeditinoTimes!= 0 && mistyTripCumulationData.expeditinoTimes == 0){ mistyTripCumulationData.expeditinoTimes = treasureWeekCumulationData.expeditinoTimes; } - if(sevenHappyCumulationData.expeditinoTimes!= 0 && sevenHappyCumulationData.expeditinoTimes == 0){ + if(sevenHappyCumulationData.expeditinoTimes!= 0 && mistyTripCumulationData.expeditinoTimes == 0){ mistyTripCumulationData.expeditinoTimes = sevenHappyCumulationData.expeditinoTimes; } 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 7701a87bf..d9979d773 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 @@ -450,9 +450,8 @@ public class HeroLogic{ if (map.isEmpty() || weight == 0){ return item; } - - int sum = map.values().stream().mapToInt(Integer::intValue).sum(); - int randomInt = MathUtils.randomInt(sum); + + int randomInt = MathUtils.randomInt(weight); // 遍历权重 for (Map.Entry entry : map.entrySet()) { @@ -476,7 +475,7 @@ public class HeroLogic{ return result; } // 权重递减 - anInt-=entry.getValue(); + randomInt-=entry.getValue(); } return item; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MistyTripMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MistyTripMissionType.java index 370f41e7d..13f0abd7c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MistyTripMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/MistyTripMissionType.java @@ -6,11 +6,13 @@ import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.mission.MissionState; +import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.logic.mission.data.AbstractDataManager; import com.ljsd.jieling.logic.mission.data.BaseDataManager; import com.ljsd.jieling.logic.mission.data.DataManagerDistributor; import config.SJourneyWithWind; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -30,6 +32,12 @@ public class MistyTripMissionType extends AbstractMissionType{ @Override public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { List sTaskConfigs = SJourneyWithWind.getsTaskConfigByTypeMap(result.subType.getMissionTypeValue()); + if (sTaskConfigs == null) { + if(result.subType == MissionType.LOGIN_TIMES){ + //解决新旧版本 更新状态不自动改变问题 + sTaskConfigs = new ArrayList(SJourneyWithWind.config.values()); + } + } if (sTaskConfigs == null) { return; }