幸运探宝活动奖励领完 重置进度

back_recharge
zhangshanxue 2019-10-10 11:08:30 +08:00
parent 3d769948ad
commit 2ff9f1583e
5 changed files with 47 additions and 19 deletions

View File

@ -131,4 +131,9 @@ public class SGlobalActivity implements BaseConfig {
public int getShopId() { public int getShopId() {
return shopId; return shopId;
} }
public int getResetGrade() {
return resetGrade;
}
} }

View File

@ -69,6 +69,18 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
activityManager.initAllActivityMission(id); activityManager.initAllActivityMission(id);
} }
/**
*
* @param user
* @throws Exception
*/
public void reSetValue(User user) throws Exception {
ActivityManager activityManager = user.getActivityManager();
activityManager.removeActivity(id);
activityManager.initAllActivityMission(id);
}
@Override @Override
public void update(User user, int count) { public void update(User user, int count) {
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
@ -135,8 +147,14 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
int[][] reward = sActivityRewardConfig.getReward(); int[][] reward = sActivityRewardConfig.getReward();
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId); checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId);
//send SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(null!=sGlobalActivity&&ActivityLogic.getInstance().checkActivityMissionFinishAndTaked(id,activityMission)&&sGlobalActivity.getResetGrade()==1){
reSetValue(user);
activityMission.setValue(activityMission.getValue()-sActivityRewardConfig.getValues()[0][0]);
sendActivityProgress(session, activityMission,null);
}else {
sendActivityProgress(session, activityMission, Collections.singleton(missionId)); sendActivityProgress(session, activityMission, Collections.singleton(missionId));
}
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
@ -226,7 +244,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
return true; return true;
} }
public void onActivityEndSelfWithDealReward(User user) throws Exception { void onActivityEndSelfWithDealReward(User user) throws Exception {
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (sGlobalActivity.getIsMail() == 1) if (sGlobalActivity.getIsMail() == 1)
onActivityEndDealReward(user); onActivityEndDealReward(user);
@ -261,7 +279,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
takeAllReward(sessionByUid); takeAllReward(sessionByUid);
} }
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) { List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
return getAllMissInfo(activityMission, null); return getAllMissInfo(activityMission, null);
} }

View File

@ -467,29 +467,32 @@ public class ActivityLogic {
} }
} }
private void checkActivityMissionFinishAndTaked(int activityId, ActivityMission activityMission) { public boolean checkActivityMissionFinishAndTaked(int activityId, ActivityMission activityMission) {
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
boolean isAllTaked = true;
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) { for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
ActivityProgressInfo activityProgressInfo = item.getValue(); ActivityProgressInfo activityProgressInfo = item.getValue();
Integer missionStatus = activityProgressInfo.getState(); int missionStatus = activityProgressInfo.getState();
if (missionStatus == ActivityType.WILL_TAKE) { if (missionStatus == ActivityType.WILL_TAKE) {
isAllTaked = false; return false;
} }
if (SGlobalActivity.getsGlobalActivityMap().get(activityId).getType() == ActivityType.TREASURE) { if (SGlobalActivity.getsGlobalActivityMap().get(activityId).getType() == ActivityType.TREASURE) {
if (missionStatus == ActivityType.HAD_TAKED) { if (missionStatus == ActivityType.HAD_TAKED) {
isAllTaked = false; return false;
} }
} }
} }
if (activityProgressInfoMap.isEmpty()) { if (activityProgressInfoMap.isEmpty()) {
isAllTaked = false; return false;
} }
if (isAllTaked) { SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
if(sGlobalActivity.getResetGrade()==0){
activityMission.updateActivityState(ActivityType.FINISH_STATE); activityMission.updateActivityState(ActivityType.FINISH_STATE);
} }
return true;
} }
public int getInitActivityMissionProgress(int activityId) { public int getInitActivityMissionProgress(int activityId) {
int defalutProgress = 0; int defalutProgress = 0;
switch (activityId) { switch (activityId) {

View File

@ -1,17 +1,11 @@
package com.ljsd.jieling.logic.activity; package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SDailyTasksConfig; import com.ljsd.jieling.config.*;
import com.ljsd.jieling.config.SDialRewardConfig;
import com.ljsd.jieling.config.SDialRewardSetting;
import com.ljsd.jieling.config.SGlobalActivity;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.LuckWheelAdvanceEvent; import com.ljsd.jieling.logic.activity.event.LuckWheelAdvanceEvent;
import com.ljsd.jieling.logic.activity.event.LuckWheelEvent; import com.ljsd.jieling.logic.activity.event.LuckWheelEvent;
import com.ljsd.jieling.logic.dao.ActivityMission; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.LuckWheelMission;
import com.ljsd.jieling.logic.dao.LuckWheelPosInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
@ -59,6 +53,11 @@ public abstract class LuckWheelActivity extends AbstractActivity {
activityMission.setValue(count + activityMission.getValue()); activityMission.setValue(count + activityMission.getValue());
} }
@Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
return checkValue(session, sActivityRewardConfig, activityProgressInfo);
}
/** /**
* *
*/ */

View File

@ -329,6 +329,9 @@ public class PlayerManager extends MongoBase {
public void vipFlush( Set<Integer> removePrivileges) { public void vipFlush( Set<Integer> removePrivileges) {
for(Integer id : vipInfo.keySet()){ for(Integer id : vipInfo.keySet()){
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id); SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id);
if(null == sPrivilegeTypeConfig){
continue;
}
int refreshType = sPrivilegeTypeConfig.getRefreshType()[0]; int refreshType = sPrivilegeTypeConfig.getRefreshType()[0];
if(refreshType == 1){ if(refreshType == 1){
vipInfo.put(id,0); vipInfo.put(id,0);