diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index ebffbddc1..9a90c5995 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -174,23 +174,24 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (sGlobalActivity == null){ + throw new ErrorCodeException(ErrorCode.CFG_NULL); + } //up miss int[][] reward = sActivityRewardConfig.getReward(); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); checkAndSetProgress(activityMission, activityProgressInfo, missionId); - if (null != sGlobalActivity && checkActivityMissionFinishAndTake(session.getUid(),id, activityMission) && sGlobalActivity.getResetGrade() == 1) { + // 领取完全部奖励是否重置 + if (checkActivityMissionFinishAndTake(session.getUid(),id, activityMission) && sGlobalActivity.getResetGrade() == 1) { reSetValue(user); - if(sGlobalActivity.getType() != ActivityType.OnlineReward) { - ActivityMission newmiss = user.getActivityManager().getActivityMissionMap().get(id); - sendActivityProgress(session, null); - } - } else { - if(sGlobalActivity.getType() != ActivityType.OnlineReward){ - sendActivityProgress(session, Collections.singleton(missionId)); - } } + // 非在线奖励需要推送活动信息 + if(sGlobalActivity.getType() != ActivityType.OnlineReward){ + sendActivityProgress(session, Collections.singleton(missionId)); + } + reportTakeActivityReward(user,reward,missionId); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);