From 138af14f00795f38abeca3f1b4ae3f603055b131 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 19 Oct 2019 16:49:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=99=E9=BE=99=E5=AE=9D=E8=97=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/config/SSpecialConfig.java | 11 +- .../config/STreasureSunlongConfig.java | 46 ++-- .../config/STreasureSunlongTaskConfig.java | 2 +- .../com/ljsd/jieling/globals/BIReason.java | 2 + .../handler/GameGM/GMRequestHandler.java | 2 +- .../jieling/handler/GetPlayerInfoHandler.java | 2 +- .../jieling/logic/GlobalDataManaager.java | 1 + .../logic/activity/TreasureActivity.java | 198 ++++++++++-------- .../ljsd/jieling/logic/dao/PlayerManager.java | 18 +- .../jieling/logic/dao/UserMissionManager.java | 9 +- .../jieling/logic/mission/MissionLoigc.java | 9 +- .../event/MissionEventDistributor.java | 2 +- .../mission/main/TreasureMissionType.java | 64 ++---- 13 files changed, 194 insertions(+), 172 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SSpecialConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SSpecialConfig.java index b92598bd4..7b9cd59ce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SSpecialConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SSpecialConfig.java @@ -26,7 +26,7 @@ public class SSpecialConfig implements BaseConfig { public static final String EQUIPSIGN_LIMIT = "EquipSign_limit";//仓库中的魂印上限 public static final String FRIENDAMOUNT_LIMIT = "FriendAmount_limit";//好友上限 public static final String FRIENDAPPLYAMOUNT_LIMIT = "FriendApplyAmount_limit";//好友申请上限 - + public static final String SUNLONG_DAILYTASKS = "Sunlong_DailyTasks";//孙龙的宝藏每日、每周、每月任务个数 @Override public void init() throws Exception { @@ -53,6 +53,15 @@ public class SSpecialConfig implements BaseConfig { } return Integer.valueOf(value); } + public static int[] getOnceArrayValue(String key){ + String value = enumers.get(key); + String[] array = value.split("#"); + int[] arrayNum = new int[array.length]; + for (int i = 0 ; i < array.length;i++) { + arrayNum[i] = Integer.parseInt(array[i]); + } + return arrayNum; + } public int getId() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongConfig.java index 902a1d4ab..098085782 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongConfig.java @@ -3,57 +3,69 @@ package com.ljsd.jieling.config; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; +import java.util.HashMap; import java.util.Map; @Table(name ="TreasureSunlongConfig") public class STreasureSunlongConfig implements BaseConfig { - private int id; + private int id; - private int activityId; + private int activityId; - private int type; + private int type; - private int level; + private int level; - private int integral; + private int[][] integral; - private int[][] reward; + private int[][] reward; - private int[][] treasureReward; + private int[][] treasureReward; - - @Override + public static Map treasureSunlongConfigMap; + + public static Map levelTreasureConfigMap; + @Override public void init() throws Exception { - + treasureSunlongConfigMap=STableManager.getConfig(STreasureSunlongConfig.class); + levelTreasureConfigMap= new HashMap<>(treasureSunlongConfigMap.size()); + for(Map.Entry entry:treasureSunlongConfigMap.entrySet()){ + STreasureSunlongConfig config = entry.getValue(); + if(config.getActivityId()!=40){ + continue; + } + levelTreasureConfigMap.put(config.getLevel(), config); + } + } - public int getId() { + public int getId() { return id; } - public int getActivityId() { + public int getActivityId() { return activityId; } - public int getType() { + public int getType() { return type; } - public int getLevel() { + public int getLevel() { return level; } - public int getIntegral() { + public int[][] getIntegral() { return integral; } - public int[][] getReward() { + public int[][] getReward() { return reward; } - public int[][] getTreasureReward() { + public int[][] getTreasureReward() { return treasureReward; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongTaskConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongTaskConfig.java index bf33f8e7a..e6b390d3d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongTaskConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STreasureSunlongTaskConfig.java @@ -37,7 +37,7 @@ public class STreasureSunlongTaskConfig implements BaseConfig { if(!taskTypeMap.containsKey(entry.getValue().getType())){ taskTypeMap.put(entry.getValue().getType(),new ArrayList<>()); } - taskTypeMap.get(entry.getValue()).add(entry.getKey()); + taskTypeMap.get(entry.getValue().getType()).add(entry.getKey()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 186a1245c..89d69a44d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -152,4 +152,6 @@ public interface BIReason { int FAMILY_SET_ICON = 1037;//工会修改图腾 + int TREASURE_LEVEL_UP_CONCUME = 1038;//孙龙宝藏等级提升消耗 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index d89080fd1..a6f598192 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -330,7 +330,7 @@ public class GMRequestHandler extends BaseHandler{ } public void treasureScore(ISession session,int score) throws Exception { User user = UserManager.getUser(session.getUid()); - user.getPlayerInfoManager().setTreasureScore(score); +// user.getPlayerInfoManager().setTreasureScore(score); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 69d218e40..4b1b4ea24 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -150,7 +150,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .addAllTowerReceivedReward(towerFloorReceivedReward) .addAllGoodsTypeDuration(goodsTypeDurations) .setHadBuyTreasure(playerInfoManager.getHadBuyTreasure()) - .setTreasureScore(playerInfoManager.getTreasureScore()) + .setTreasureLevel(playerInfoManager.getTreasureLevel()) .setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(playerInfoManager.getSign()+1).setState(playerInfoManager.getSignTotay()).build()) .setMonsterAttackTime(user.getMapManager().getLastMonsterAttack()) .setFirstTenth(user.getHeroManager().getFirstTenth()) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 781eadc9e..88e5149df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -283,6 +283,7 @@ public class GlobalDataManaager { PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder); user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); + user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0); FriendLogic.getInstance().refreshState(session); int sendDays = user.getPlayerInfoManager().getSendDays(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 3f5dbcb21..3efe89796 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.config.SGlobalActivity; import com.ljsd.jieling.config.STreasureConfig; +import com.ljsd.jieling.config.STreasureSunlongConfig; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; @@ -31,15 +32,12 @@ public class TreasureActivity extends AbstractActivity { @Override public void initActivity(User user) throws Exception { + LOGGER.info("戒灵秘宝初始化..."); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, sGlobalActivity.getId()); + user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, sGlobalActivity.getId()); ActivityMission activityMission = new ActivityMission(); - List sTreasureConfigs = STreasureConfig.configByActivityIdMap.get(sGlobalActivity.getId()); - List misionIds = new ArrayList<>(sTreasureConfigs.size()); - for (STreasureConfig sTreasureConfig : sTreasureConfigs) { - misionIds.add(sTreasureConfig.getId()); - } - activityMission.initOtherMission(misionIds); + List levels = new ArrayList<>(STreasureSunlongConfig.levelTreasureConfigMap.keySet()); + activityMission.initOtherMission(levels); long endTime = sGlobalActivity.getTimeLong(user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000; user.getActivityManager().setTrsendTime(endTime); user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission); @@ -67,93 +65,123 @@ public class TreasureActivity extends AbstractActivity { if (hadBuyTreasure == 1) { changeState = ActivityType.FINISH_TAKED; } - int treasureScore = playerInfoManager.getTreasureScore(); - CommonProto.Drop.Builder drop = null; - if (missionId == -1) { - List dropList = new ArrayList<>(10); - boolean canTakeFinalReward = true; - STreasureConfig finalSTreasureConfig = null; - Map willUpdateAcP = new HashMap<>(); - for (Map.Entry 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); + List dropList = new ArrayList<>(2); + if(missionId==-1){ + for (Map.Entry entry : activityMission.getActivityProgressInfoMap().entrySet()) { + if(entry.getKey() 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"); + }else{ + int state = activityMission.getActivityProgressInfoMap().get(missionId).getState(); + if(state==changeState||state==ActivityType.FINISH_TAKED){ + MessageUtil.sendErrorResponse(session,0,rewardResponseValue,"该奖励已领取过"); 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 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()); - } - drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD); - activityProgressInfo.setState(changeState); - activityMission.updateProgressInfo(missionId, activityProgressInfo); - KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, missionId); - } + dropByState(dropList,state,changeState,missionId); } +// if (missionId == -1) { +// List dropList = new ArrayList<>(10); +// boolean canTakeFinalReward = true; +// STreasureConfig finalSTreasureConfig = null; +// Map willUpdateAcP = new HashMap<>(); +// for (Map.Entry 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 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 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); +// } +// } + 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 dropList,int curState,int targetState,int missionId){ + STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(missionId); + if(curState==ActivityType.WILL_TAKE){ + dropList.add(rewardConfig.getReward()); + if(targetState == ActivityType.FINISH_TAKED){ + dropList.add(rewardConfig.getTreasureReward()); + } + }else if(curState==ActivityType.HAD_TAKED){ + if(targetState == ActivityType.FINISH_TAKED){ + dropList.add(rewardConfig.getTreasureReward()); + } + } + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 15e1c2877..00ef79734 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -62,7 +62,7 @@ public class PlayerManager extends MongoBase { private int headFrame; - private int treasureScore; //孙龙的宝藏分数 + private int treasureLevel; //孙龙的宝藏等级 private int hadBuyTreasure; //是否已购 @@ -92,18 +92,18 @@ public class PlayerManager extends MongoBase { this.setRootCollection(User._COLLECTION_NAME); } - public int getTreasureScore() { - return treasureScore; + public int getTreasureLevel() { + return treasureLevel; } - public void addTreasureScore(int treasureScore) { - this.treasureScore += treasureScore; - setTreasureScore(this.treasureScore); + public void addTreasureLevel() { + this.treasureLevel++; + setTreasureLevel(this.treasureLevel); } - public void setTreasureScore(int treasureScore){ - this.treasureScore = treasureScore; - updateString("treasureScore", treasureScore); + public void setTreasureLevel(int treasureLevel){ + this.treasureLevel = treasureLevel; + updateString("treasureLevel", treasureLevel); } public int getHadBuyTreasure() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 83a4e1d6a..84c2d5a96 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -61,9 +61,13 @@ public class UserMissionManager extends MongoBase { resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData); break; case TREASH_WEEK_REFRESH: + resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData); resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData); break; case TREASH_MONTH_REFRESH: + System.out.println("戒灵秘宝月任务初始化"); + resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData); + resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData); resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData); break; case SERVENHAPPY_REFRESH: @@ -218,6 +222,7 @@ public class UserMissionManager extends MongoBase { private void resetTreasureTaskInfo(int type,Map> missionTypeEnumListMap,CumulationData treasureCumulationData){ + int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS); List taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type); for(Integer treasure:taskTypeMap){ if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){ @@ -234,10 +239,10 @@ public class UserMissionManager extends MongoBase { for(int i = 0 ; i missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION); for(Integer task:tasks){ treasureMissionIdsType.getDoingMissionIds().add(task); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 8ac95ecdc..65f98347a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -349,14 +349,11 @@ public class MissionLoigc { Map> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId); missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION); if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ - int takeTimes = missionStateChangeInfos.get(0).getProgress(); - missionStateChangeInfos.get(0).setProgress(0); -// int score = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId). * takeTimes; -// user.getPlayerInfoManager().addTreasureScore(score); - ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE); + +// ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE); KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId); Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,""); - PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setTreasureScore(user.getPlayerInfoManager().getTreasureScore()).build(); + PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); return; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 7c96fb4cc..18320b09f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -34,7 +34,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess()); - eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess()); + eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java index 9aa5306ee..a6e0f6ca0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java @@ -1,11 +1,15 @@ package com.ljsd.jieling.logic.mission.main; +import com.ljsd.jieling.config.STreasureSunlongConfig; +import com.ljsd.jieling.config.STreasureSunlongTaskConfig; import com.ljsd.jieling.config.STreasureTaskConfig; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.mission.MissionState; import com.ljsd.jieling.logic.mission.MissionType; +import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MathUtils; import java.util.HashMap; @@ -22,57 +26,21 @@ public class TreasureMissionType extends AbstractMissionType{ } - public void rewardMission(User user,int missionId, List missionTypeEnumListMap, CumulationData cumulationData){ - STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId); - if(sTreasureTaskConfig == null){return;} - int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]); + public void rewardMission(User user,int missionId, List missionTypeEnumListMap, CumulationData cumulationData) throws Exception { + STreasureSunlongTaskConfig taskConfig = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId); + if(taskConfig == null){return;} + int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, taskConfig.getTaskType(), taskConfig.getTaskValue()[0]); //完成 - int finishParm = sTreasureTaskConfig.getTaskValue()[1][0]; - Integer takeTimes = this.takeTimes.get(missionId); - if(takeTimes == null){ - takeTimes = 0; + int finishParm = taskConfig.getTaskValue()[1][0]; + if(doingProgressfinishParm){ - reallyTakeTimes =1; - } - if(reallyTakeTimes>0){ - if(sTreasureTaskConfig.getTimes()>0){ - reallyTakeTimes = MathUtils.setBetweenWithMax(reallyTakeTimes,0,sTreasureTaskConfig.getTimes() - takeTimes); - } - int hadTakes = takeTimes + reallyTakeTimes; - if(sTreasureTaskConfig.getTimes()>0 && hadTakes>=sTreasureTaskConfig.getTimes()){ - hadTakes = sTreasureTaskConfig.getTimes(); - } - int[][] rewward = sTreasureTaskConfig.getRewward(); - int[][] rewardFinal = new int[rewward.length][]; - if(rewward.length>0){ - for(int i=0;i0 && this.takeTimes.get(missionId)>=sTreasureTaskConfig.getTimes()){ - getRewardedMissionIds().set(missionId); - getDoingMissionIds().remove(missionId); - getFinishMissionIds().remove(missionId); - MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,reallyTakeTimes,hadTakes); - if(rewward.length>0){ - stateChangeInfo.setRewwards(rewardFinal); - } - missionTypeEnumListMap.add(stateChangeInfo); - return; - }else{ - MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.DOING,reallyTakeTimes,hadTakes); - if(rewward.length>0){ - stateChangeInfo.setRewwards(rewardFinal); - } - missionTypeEnumListMap.add(stateChangeInfo); - - } + STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel()); + if(ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){ + user.getPlayerInfoManager().addTreasureLevel(); } + MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral()); + missionTypeEnumListMap.add(stateChangeInfo); }