From 8f34ad884a76fb1c34cb8ea4c29b84eaec6ae3ce Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 15 Oct 2019 10:22:08 +0800 Subject: [PATCH] fix activity --- .../jieling/logic/activity/ActivityLogic.java | 36 ++++++++++++++----- .../src/main/java/config/SGlobalActivity.java | 4 +-- 2 files changed, 29 insertions(+), 11 deletions(-) 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 403818c31..aa73ede32 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 @@ -103,20 +103,23 @@ public class ActivityLogic { if (now < startTime) { continue; } - int ifOpen = sGlobalActivity.getIfOpen(); - if(ifOpen!=0 && GameApplication.serverConfig.getCacheOpenTime() + ifOpen*TimeUtils.ONE_DAY - startTime >0){ - continue; + int[] ifOpen = sGlobalActivity.getIfOpen(); + if(ifOpen!=null && ifOpen.length>0){ + if(ifOpen[0]==2){ //开服 + if(GameApplication.serverConfig.getCacheOpenTime() + ifOpen[1]*TimeUtils.ONE_DAY - startTime >0){ + continue; + } + } } + if (endTime != 0 && now > endTime) { if (openActivityIds.contains(sGlobalActivity.getId())) { openActivityIds.remove(sGlobalActivity.getId()); - AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(sGlobalActivity.getId()); if (null == abstractActivity) { continue; } abstractActivity.onActivityEnd(); - } continue; } @@ -186,11 +189,18 @@ public class ActivityLogic { ActivityManager activityManager = user.getActivityManager(); Map sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); Set openNewActivityIds = new HashSet<>(); - + long userCreateTime = user.getPlayerInfoManager().getCreateTime(); //初始化活动 绝对时间和相对开服时间 for (Integer openActivityId : openActivityIds) { SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(openActivityId); - + int[] ifOpen = sGlobalActivity.getIfOpen(); + if(ifOpen!=null && ifOpen.length>0){ + if(ifOpen[0]==1){ //创角 + if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY - now >0){ + continue; + } + } + } ActivityMission activityMission = activityManager.getActivityMissionMap().get(openActivityId); if (activityMission != null) { continue; @@ -212,11 +222,19 @@ public class ActivityLogic { } } Map activityMissionMap = activityManager.getActivityMissionMap(); - long userCreateTime = user.getPlayerInfoManager().getCreateTime(); for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { int activityId = sGlobalActivity.getId(); if (openActivityIds.contains(activityId)) { - continue; + int[] ifOpen = sGlobalActivity.getIfOpen(); + if(ifOpen!=null && ifOpen.length>0){ + if(ifOpen[0]==1){ //创角 + if(userCreateTime + ifOpen[1]*TimeUtils.ONE_DAY - now >0){ + continue; + } + } + }else{ + continue; + } } int time = sGlobalActivity.getTime(); if (time == ActivityType.OPEN_TYPE_ROLE) { diff --git a/tablemanager/src/main/java/config/SGlobalActivity.java b/tablemanager/src/main/java/config/SGlobalActivity.java index 4f61d0781..9836947d6 100644 --- a/tablemanager/src/main/java/config/SGlobalActivity.java +++ b/tablemanager/src/main/java/config/SGlobalActivity.java @@ -31,7 +31,7 @@ public class SGlobalActivity implements BaseConfig { private int isMail; - private int ifOpen; + private int[] ifOpen; private int shopId; @@ -112,7 +112,7 @@ public class SGlobalActivity implements BaseConfig { return isMail; } - public int getIfOpen() { + public int[] getIfOpen() { return ifOpen; }