【成就优化】根据开服时间决定服务器内的成就

back_recharge
jiahuiwen 2021-10-15 18:20:59 +08:00
parent b4ad96bba7
commit 7c0c66be39
3 changed files with 30 additions and 7 deletions

View File

@ -514,7 +514,12 @@ public class MissionLoigc {
Set<Integer> doingMissionIds = achievementMissionTypMap.getDoingMissionIds();
Set<Integer> 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];

View File

@ -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){

View File

@ -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<Integer, Set<Integer>> setTMap;
private String effectData;
private long effectTime;
public static Map<Integer, List<SAchievementConfig>> sTaskConfigByTypeMap;
@Override
public void init() throws Exception {
@ -24,6 +28,10 @@ public class SAchievementConfig implements BaseConfig {
Map<Integer, List<SAchievementConfig>> 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<Integer, List<SAchievementConfig>> getsTaskConfigByTypeMap() {
return sTaskConfigByTypeMap;
public long getEffectTime() {
return effectTime;
}
public static void setsTaskConfigByTypeMap(Map<Integer, List<SAchievementConfig>> sTaskConfigByTypeMap) {
SAchievementConfig.sTaskConfigByTypeMap = sTaskConfigByTypeMap;
public void setEffectTime(long effectTime) {
this.effectTime = effectTime;
}
public String getEffectData() {
return effectData;
}
}