diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 11d881b1c..0ad86ffb5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1275,7 +1275,8 @@ public class ActivityLogic implements IEventHandler{ throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } - PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()).build(); + PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()) + .setHadBuy(user.getPlayerInfoManager().getHadBuyTreasure()).build(); MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); @@ -1317,8 +1318,16 @@ public class ActivityLogic implements IEventHandler{ public void getTreasureNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception { int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000); - int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); - PlayerInfoProto.TreasureRefreshTimeResponse response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build(); + int uid = session.getUid(); + User user = UserManager.getUser(uid); + PlayerInfoProto.TreasureRefreshTimeResponse response; + if(user.getActivityManager().getActivityMissionMap().containsKey(801)){ + int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); + response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build(); + }else{ + long weekRefresh = user.getUserMissionManager().getTreasureMissionIdsType().getWeekRefresh(); + response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime((int)(weekRefresh/1000)).build(); + } MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 8814e7b2a..94043dc45 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -6,6 +6,7 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.VipInfo; @@ -68,6 +69,10 @@ public class TreasureActivity extends AbstractActivity { ActivityLogic.getInstance().initOtherMission(activityMission,levels); // long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000; user.getActivityManager().getActivityMissionMap().put(sGlobalActivity.getId(), activityMission); + PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()) + .setHadBuy(user.getPlayerInfoManager().getHadBuyTreasure()).build(); + MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true); + } 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 7107707df..f5e081407 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 @@ -8,6 +8,7 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.*; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; @@ -17,6 +18,7 @@ import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.ToolsUtil; import util.MathUtils; import com.ljsd.jieling.util.MessageUtil; import config.*; @@ -492,10 +494,31 @@ public class UserMissionManager extends MongoBase { private int[] resetTreasureTaskInfo(int type, int activityId, Map> missionTypeEnumListMap,CumulationData treasureCumulationData){ //周刷新检测 if (type == 2) { - if (treasureMissionIdsType.getWeekRefresh() != 0 && !TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(), TimeUtils.now(), 1, 5)) { - return null; + if(activityId!=801){ + if(treasureMissionIdsType.getWeekRefresh()!=0&&TimeUtils.now()endTime){ + return null; + } + do{ + startTime += TimeUtils.WEEK; + }while(startTime+5*TimeUtils.HOUR taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type); @@ -551,7 +574,7 @@ public class UserMissionManager extends MongoBase { private int[] resetJadeDynastyTaskInfo(int type, int activityId, Map> missionTypeEnumListMap,CumulationData jadeDynastyCumulationData){ //周刷新检测 if (type == 2) { - if (jadeDynastyMissionType.getWeekRefresh() != 0) { + if (jadeDynastyMissionType.getWeekRefresh() != 0 && TimeUtils.now()