diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 4053d045d..12e20fcf4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -514,7 +514,12 @@ public class MissionLoigc { Set doingMissionIds = achievementMissionTypMap.getDoingMissionIds(); Set finishMissionIds = achievementMissionTypMap.getFinishMissionIds(); BitSet rewardedMissionIds = achievementMissionTypMap.getRewardedMissionIds(); + // 过滤出 配置日期(不含)前开服的可见 + long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); for (SAchievementConfig sAchievementConfig : STableManager.getConfig(SAchievementConfig.class).values()) { + if (sAchievementConfig.getEffectTime() != 0 && openTime >= sAchievementConfig.getEffectTime()) { + continue; + } int state = 2; int missionId = sAchievementConfig.getId(); int progrss = sAchievementConfig.getValues()[1][0]; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 55971f577..e519e31df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.mission.event; +import com.ljsd.GameApplication; import config.*; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -13,6 +14,7 @@ import com.ljsd.jieling.util.MessageUtil; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import util.TimeUtils; import java.util.ArrayList; import java.util.HashMap; @@ -622,6 +624,7 @@ public class MissionEventDistributor { if(missionStateChangeInfos.isEmpty()){ return; } + long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); for(MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos){ MissionState missionState = missionStateChangeInfo.getMissionState(); int state = missionState.getState(); @@ -665,8 +668,11 @@ public class MissionEventDistributor { } if(gameMisionType == GameMisionType.ACHIEVEMISSION){ - SAchievementConfig achievementConfig = STableManager.getConfig(SAchievementConfig.class).get(missionStateChangeInfo.getMissionId()); - progress= achievementConfig.getValues()[1][0]; + SAchievementConfig sAchievementConfig = STableManager.getConfig(SAchievementConfig.class).get(missionStateChangeInfo.getMissionId()); + if (sAchievementConfig.getEffectTime() != 0 && openTime >= sAchievementConfig.getEffectTime()) { + continue; + } + progress= sAchievementConfig.getValues()[1][0]; } if(gameMisionType == GameMisionType.SEVENMISSION){ diff --git a/tablemanager/src/main/java/config/SAchievementConfig.java b/tablemanager/src/main/java/config/SAchievementConfig.java index 51e9f1d63..694c50d8b 100644 --- a/tablemanager/src/main/java/config/SAchievementConfig.java +++ b/tablemanager/src/main/java/config/SAchievementConfig.java @@ -2,6 +2,7 @@ package config; import manager.STableManager; import manager.Table; +import util.TimeUtils; import java.util.*; @@ -16,7 +17,10 @@ public class SAchievementConfig implements BaseConfig { private int[][] reward; - public static Map> setTMap; + private String effectData; + + private long effectTime; + public static Map> sTaskConfigByTypeMap; @Override public void init() throws Exception { @@ -24,6 +28,10 @@ public class SAchievementConfig implements BaseConfig { Map> configListTmp = new HashMap<>(); for(SAchievementConfig sAchievementConfig : configTmp.values()){ int taskType = sAchievementConfig.getType(); + String effectData = sAchievementConfig.getEffectData(); + if (effectData != null && !effectData.isEmpty()) { + sAchievementConfig.setEffectTime(TimeUtils.parseTimeToMiles(effectData,TimeUtils.Stand_CeHua_Data_format)); + } if(!configListTmp.containsKey(taskType)){ configListTmp.put(taskType,new ArrayList<>()); } @@ -49,11 +57,15 @@ public class SAchievementConfig implements BaseConfig { return reward; } - public static Map> getsTaskConfigByTypeMap() { - return sTaskConfigByTypeMap; + public long getEffectTime() { + return effectTime; } - public static void setsTaskConfigByTypeMap(Map> sTaskConfigByTypeMap) { - SAchievementConfig.sTaskConfigByTypeMap = sTaskConfigByTypeMap; + public void setEffectTime(long effectTime) { + this.effectTime = effectTime; + } + + public String getEffectData() { + return effectData; } } \ No newline at end of file