From c20652705b302271dae10d0acf6a7069ee63bdb9 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 19 Aug 2019 00:00:56 +0800 Subject: [PATCH] fix ission --- .../com/ljsd/jieling/globals/BIReason.java | 76 +++++++++---------- .../jieling/logic/activity/ActivityLogic.java | 3 + .../jieling/logic/dao/UserMissionManager.java | 2 +- .../event/MissionEventDistributor.java | 16 ++-- .../ljsd/jieling/thread/task/MinuteTask.java | 2 + 5 files changed, 54 insertions(+), 45 deletions(-) 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 fdb030be5..a54064248 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -11,7 +11,7 @@ public interface BIReason { int HERO_RANDOM = 7 ;//抽卡 - int WORKSHOP_CREATEMATERIAL = 8; // + int WORKSHOP_CREATEMATERIAL = 8; //基础打造 int WORKSHOP_CREATEQUIP = 9; // 装备打造 int WORKSHOP_MAKEFOOD = 10; // 装备打造 @@ -55,70 +55,70 @@ public interface BIReason { int TOWER_SWEEP_REWARD = 34;//爬塔扫荡奖励 - int WORK_SHOP_TECHNOGY_RESET_DROP =35 ; + int WORK_SHOP_TECHNOGY_RESET_DROP =35 ; //工坊科技重置返回奖励 - int TAKE_STAR_REWARD = 36; + int TAKE_STAR_REWARD = 36; // 领取星级奖励 - int TOWER_FLOOR_REWARD = 37; + int TOWER_FLOOR_REWARD = 37; //领取试炼层级奖励 - int MONTH_CARD_REWARD = 38; - int BLESS_REWARD = 39; + int MONTH_CARD_REWARD = 38;//月卡奖励 + int BLESS_REWARD = 39;//云梦抽取奖励 - int SEVEN_SCORE_REWARD = 40; + int SEVEN_SCORE_REWARD = 40;//领取七日狂欢奖励 + + int TIME_REWARD=41; //道具按时回复 + + int TEMPORARY_REWARD=42;//临时背包到背包 + + int SUDDENLY_REWARD = 43; // 精英怪奖励 //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 int SECRETBOX_CONSUME = 1001; //秘盒抽卡 - int DECOMPOSE_ITEM_CONSUME = 1002; - int UP_HEROSTAR_CONSUME = 1003; + int DECOMPOSE_ITEM_CONSUME = 1002; //分解道具消耗 + int UP_HEROSTAR_CONSUME = 1003;//升星消耗 int WORKSHOP_REBUILD_EQUIP_CONSUME = 1004; int WORKSHOP_CREATEMATERIAL_CONSUME = 1005; - int WORKSHOP_EQUIP_CONSUME = 1005; - int WORKSHOP_TECHNOLOGY_CONSUME = 1005; - int ACTIVE_BLUE_CONSUME = 1006; + int WORKSHOP_EQUIP_CONSUME = 1005;// + int WORKSHOP_TECHNOLOGY_CONSUME = 1005;//工坊科技树科技消耗 + int ACTIVE_BLUE_CONSUME = 1006; //激活蓝图消耗 int STORE_HAND_REFRESH = 1007;//手动刷新商店 int USER_ITEM = 1008; // 使用道具 int RANDOM_HERO_CONSUME = 1008;//聚灵 - int UP_HERO_LEVEL_CONSUME = 1009; - int START_DIFFICULT = 1010; - int END_DIFFICULT = 1011; - int COMPOS_HERO_CONSUME = 1012; - int POKEMON_LOAD_CONSUME = 1013; - int POKEMON_ADVANCE_CONSUME = 1014; - int POKEMON_UPLEVEL_CONSUME = 1015; + int UP_HERO_LEVEL_CONSUME = 1009; // 卡牌升级消耗 + int START_DIFFICULT = 1010;//关卡开始战斗消耗 + int END_DIFFICULT = 1011;// 关卡结束战斗消耗 + int COMPOS_HERO_CONSUME = 1012;// 合成英雄消耗 + int POKEMON_LOAD_CONSUME = 1013;// 放置异妖组件消耗 + int POKEMON_ADVANCE_CONSUME = 1014;//异妖进阶消耗 + int POKEMON_UPLEVEL_CONSUME = 1015;//异妖升级消耗 - int BUY_GOODS_CONSUME = 1016; - int SWEEP_FIGHT_CONSUME = 1017; - int MAP_ENTER_CONSUME = 1018; - int MAP_EVENT_CONSUME = 1019; + int BUY_GOODS_CONSUME = 1016;//购买商品消耗 + int SWEEP_FIGHT_CONSUME = 1017;//扫荡消耗 + int MAP_ENTER_CONSUME = 1018;//进入滴入消耗 + int MAP_EVENT_CONSUME = 1019;//地图事件点消耗 - int ARENA_CHALLENGE_CONSUME = 1020; + int ARENA_CHALLENGE_CONSUME = 1020; // 竞技场挑战消耗 - int RINGFIRE_LOAD_CONSUME = 1021; - int SUDDENLY_REWARD = 1022; - - int BOMB_CONSUME = 1023; - - int CHALLENGE_INVASIONBOSS_CONSUME = 1024; + int RINGFIRE_LOAD_CONSUME = 1021; // 放置天赋异妖 - int MAP_CONSUME = 1025; + int BOMB_CONSUME = 1023; // 使用次元炸弹 - int TIME_REWARD=1026; + int CHALLENGE_INVASIONBOSS_CONSUME = 1024; //挑战秘境外敌boss消耗 - int TEMPORARY_REWARD=1027; - int BLESS_CHOOSE_CONSUME = 1028; + int MAP_CONSUME = 1025; // 地图行为消耗 - int BUY_TREASURE_CONSUME = 1029; - int LUCKYCAT_CONSUME = 1030; + int BLESS_CHOOSE_CONSUME = 1028;//云梦抽取 + + int BUY_TREASURE_CONSUME = 1029;//购买孙龙的宝藏消耗 + int LUCKYCAT_CONSUME = 1030; // 招财猫消耗 int CREATE_GUILD_CONSUME = 1031; // 创建宗门消耗 int ENDLESS_CONSUME_EXECUTION = 1032; //无尽副本消耗行动力 - int EMAIL_AUTO_TAKE_REWARD = 1033 ;// 活动结束邮件补发未领取奖 - } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index c03537525..e81dcfd29 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -13,6 +13,7 @@ import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MapInfoProto; @@ -97,6 +98,7 @@ public class ActivityLogic { for (Map.Entry entry : OnlineUserManager.sessionMap.entrySet()) { User user = UserManager.getUserInMem(entry.getKey()); PlayerInfoProto.ActivityUpateIndication.Builder builder = PlayerInfoProto.ActivityUpateIndication.newBuilder(); + MissionEventDistributor.requestStart(); Set openNews = checkActivityOfUser(user, builder); if (!openNews.isEmpty()) { Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); @@ -110,6 +112,7 @@ public class ActivityLogic { if (builder.getActivityInfoCount() > 0 || builder.getCloseActivityIdCount() > 0) { MessageUtil.sendIndicationMessage(entry.getValue(), 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_INDICATION_VALUE, builder.build(), true); } + MissionEventDistributor.requestEnd(entry.getValue(),true); } } 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 4a9dc5428..95b215013 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 @@ -80,9 +80,9 @@ public class UserMissionManager extends MongoBase { List servenMissionmStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.SEVENMISSION); for(STreasureTaskConfig sTreasureTaskConfig : sTreasureTaskConfigs){ sevenHappyMissionType.getDoingMissionIds().add(sTreasureTaskConfig.getId()); - servenMissionmStateChangeInfos.add(new MissionStateChangeInfo(sTreasureTaskConfig.getId(), MissionState.DOING,0)); } sevenHappyCumulationData.reset(); + sevenHappyMissionType.checkAndUpdateMision(user,sTreasureTaskConfigs,servenMissionmStateChangeInfos,sevenHappyCumulationData); updateString("sevenHappyMissionType", sevenHappyMissionType); updateString("sevenHappyCumulationData", sevenHappyCumulationData); break; 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 502f77144..884698196 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 @@ -311,13 +311,17 @@ public class MissionEventDistributor { } if(gameMisionType == GameMisionType.SEVENMISSION){ STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionStateChangeInfo.getMissionId()); - if(sTreasureTaskConfig.getTaskType() == MissionType.SENVER_HAPPY.getMissionTypeValue()){ - continue; - } - progress= sTreasureTaskConfig.getTaskValue()[1][0]; - if(progress<0){ - progress=1; + if(sTreasureTaskConfig.getTaskType() != MissionType.SENVER_HAPPY.getMissionTypeValue()){ + progress= sTreasureTaskConfig.getTaskValue()[1][0]; + if(progress<0){ + progress=1; + } + }else{ + if(progress ==0){ + continue; + } } + } } builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes())); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 95a861875..2fd289346 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.thread.task; import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.core.GlobalsDef; +import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.hotfix.HotfixUtil; import com.ljsd.jieling.ktbeans.BeanBuilder.KtBeanBuilderUtils; @@ -47,6 +48,7 @@ public class MinuteTask extends Thread { everyMondyFiveClockTask(); fiveMinuteOnlineSend(); CheckFight.getInstance().luaHotFix(); + MongoUtil.getInstence().lastUpdate(); LOGGER.info("MinuteTask end..."); } catch (Exception e) { LOGGER.error("e",e);