青龙秘宝领奖添加验证

back_recharge
duhui 2023-04-17 11:36:59 +08:00
parent 43e53006c2
commit 7a02f3271b
2 changed files with 26 additions and 108 deletions

View File

@ -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];
}
}

View File

@ -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);