青龙秘宝领奖添加验证
parent
43e53006c2
commit
7a02f3271b
|
@ -51,15 +51,13 @@ public class ExpeditionExpert extends ExpectRankActivity implements IEventHandle
|
|||
super(id);
|
||||
Poster.getPoster().listenEvent(this,EndExpeditionNodeEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
Map<Integer, ActivityProgressInfo> value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getActivityMissionMap();
|
||||
if (value.containsKey(sActivityRewardConfig.getId())&& value.get(sActivityRewardConfig.getId()).getProgrss()< values[1][0]) {
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
|
||||
return !value.containsKey(sActivityRewardConfig.getId()) || value.get(sActivityRewardConfig.getId()).getProgrss() >= values[1][0];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,15 +15,16 @@ import com.ljsd.jieling.logic.dao.VipInfo;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SSpecialConfig;
|
||||
import config.STreasureSunlongConfig;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -66,8 +67,6 @@ public class TreasureActivity extends AbstractActivity {
|
|||
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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -113,115 +112,35 @@ public class TreasureActivity extends AbstractActivity {
|
|||
int[][] rewards = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_REWARD);
|
||||
dropList.add(rewards);
|
||||
notifyClient(session,user);
|
||||
} else if (missionId == -1) {
|
||||
}
|
||||
else if (missionId == -1) {
|
||||
getAllTreasureRewards(user, activityMission, destState, dropList);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
int state = activityMission.getActivityMissionMap().get(missionId).getState();
|
||||
if (state == destState || state == ActivityType.FINISH_TAKED) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("奖励不可重复领取"));
|
||||
}
|
||||
dropByState(dropList, state, destState, missionId);
|
||||
dropByState(user, dropList, state, destState, missionId);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
|
||||
progressInfo.setState(destState);
|
||||
progressInfo.setProgrss(0);
|
||||
activityMission.getActivityMissionMap().put(missionId, progressInfo);
|
||||
// missionIds.add(missionId);
|
||||
}
|
||||
// sendActivityProgress(session,activityMission,missionIds);
|
||||
|
||||
|
||||
|
||||
// if (missionId == -1) {
|
||||
// List<int[][]> dropList = new ArrayList<>(10);
|
||||
// boolean canTakeFinalReward = true;
|
||||
// STreasureConfig finalSTreasureConfig = null;
|
||||
// Map<Integer, ActivityProgressInfo> willUpdateAcP = new HashMap<>();
|
||||
// for (Map.Entry<Integer, ActivityProgressInfo> activityProgressInfoItem : activityMission.getActivityProgressInfoMap().entrySet()) {
|
||||
// Integer mineMision = activityProgressInfoItem.getKey();
|
||||
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(mineMision);
|
||||
// if (sTreasureConfig.getType() == 2) {
|
||||
// finalSTreasureConfig = sTreasureConfig;
|
||||
// continue;
|
||||
// }
|
||||
// ActivityProgressInfo value = activityProgressInfoItem.getValue();
|
||||
// int stateTmp = value.getState();
|
||||
// if (treasureScore >= sTreasureConfig.getPoints()) {
|
||||
// if (changeState != stateTmp) {
|
||||
// STreasureConfig sTreasureConfigTmp = STreasureConfig.configMap.get(mineMision);
|
||||
// if (stateTmp == ActivityType.WILL_TAKE) {
|
||||
// dropList.add(sTreasureConfigTmp.getReward());
|
||||
// }
|
||||
// if (changeState == ActivityType.FINISH_TAKED) {
|
||||
// dropList.add(sTreasureConfigTmp.getTreasureReward());
|
||||
// }
|
||||
// willUpdateAcP.put(mineMision, value);
|
||||
// }
|
||||
// } else {
|
||||
// canTakeFinalReward = false;
|
||||
// }
|
||||
// }
|
||||
// for (Map.Entry<Integer, ActivityProgressInfo> item : willUpdateAcP.entrySet()) {
|
||||
// ActivityProgressInfo value = item.getValue();
|
||||
// value.setState(changeState);
|
||||
// activityMission.updateProgressInfo(item.getKey(), value);
|
||||
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, item.getKey());
|
||||
// }
|
||||
// if (canTakeFinalReward && finalSTreasureConfig != null) {
|
||||
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(finalSTreasureConfig.getId());
|
||||
// int stateTmp = activityProgressInfo.getState();
|
||||
// if (changeState != stateTmp) {
|
||||
// if (stateTmp == ActivityType.WILL_TAKE) {
|
||||
// dropList.add(finalSTreasureConfig.getReward());
|
||||
// }
|
||||
// if (changeState == ActivityType.FINISH_TAKED) {
|
||||
// dropList.add(finalSTreasureConfig.getTreasureReward());
|
||||
// }
|
||||
// activityProgressInfo.setState(changeState);
|
||||
// activityMission.updateProgressInfo(finalSTreasureConfig.getId(), activityProgressInfo);
|
||||
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, finalSTreasureConfig.getId());
|
||||
// }
|
||||
// }
|
||||
// if (dropList.isEmpty()) {
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "no one can take");
|
||||
// return;
|
||||
// }
|
||||
// drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
// } else {
|
||||
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(missionId);
|
||||
// int type = sTreasureConfig.getType();
|
||||
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
|
||||
// int state = activityProgressInfo.getState();
|
||||
// if (state == changeState) {
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
|
||||
// return;
|
||||
// }
|
||||
// if (type == 1) {
|
||||
// List<int[][]> dropList = new ArrayList<>(2);
|
||||
// if (treasureScore < sTreasureConfig.getPoints()) {
|
||||
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
|
||||
// return;
|
||||
// }
|
||||
// if (state == ActivityType.WILL_TAKE) {
|
||||
// dropList.add(sTreasureConfig.getReward());
|
||||
// }
|
||||
// if (changeState == ActivityType.FINISH_TAKED) {
|
||||
// dropList.add(sTreasureConfig.getTreasureReward());
|
||||
// }
|
||||
// activityProgressInfo.setState(changeState);
|
||||
// activityMission.updateProgressInfo(missionId, activityProgressInfo);
|
||||
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, missionId);
|
||||
// }
|
||||
// }
|
||||
|
||||
reportTakeActivityReward(user,dropList.get(0),missionId);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
}
|
||||
private void dropByState(List<int[][]> dropList,int curState,int targetState,int missionId){
|
||||
|
||||
private void dropByState(User user, List<int[][]> dropList, int curState, int targetState, int missionId){
|
||||
STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(id).get(missionId);
|
||||
if(curState==ActivityType.WILL_TAKE){
|
||||
if(rewardConfig.getReward()!=null&&rewardConfig.getReward().length>0){
|
||||
if (user.getPlayerInfoManager().getTreasureLevel() < rewardConfig.getLevel()){
|
||||
return;
|
||||
}
|
||||
if(curState == ActivityType.WILL_TAKE){
|
||||
if(rewardConfig.getReward()!=null && rewardConfig.getReward().length>0){
|
||||
dropList.add(rewardConfig.getReward());
|
||||
}
|
||||
if(targetState == ActivityType.FINISH_TAKED){
|
||||
|
@ -244,25 +163,26 @@ public class TreasureActivity extends AbstractActivity {
|
|||
}
|
||||
return changeState;
|
||||
}
|
||||
|
||||
private void getAllTreasureRewards(User user, ActivityMission activityMission, int destState, List<int[][]> dropList){
|
||||
for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
|
||||
for(int i = 1 ; i <= user.getPlayerInfoManager().getTreasureLevel();i++){
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
|
||||
if(progressInfoMap.get(i)==null){
|
||||
LOGGER.info("问题id:{}",i);
|
||||
continue;
|
||||
}
|
||||
int state =progressInfoMap.get(i).getState();
|
||||
int state = progressInfoMap.get(i).getState();
|
||||
if(state == destState || state == ActivityType.FINISH_TAKED) {
|
||||
continue;
|
||||
}
|
||||
dropByState(dropList,state,destState,i);
|
||||
dropByState(user, dropList, state, destState, i);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
|
||||
progressInfo.setProgrss(0);
|
||||
progressInfo.setState(destState);
|
||||
activityMission.getActivityMissionMap().put(i, progressInfo);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
|
||||
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getDestState(user), itemAttrs);
|
||||
|
|
Loading…
Reference in New Issue