From d28a826f38a156fc4bf4e4a4f12caa003af6f087 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Wed, 3 Jun 2020 17:02:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=BB=E5=8A=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../family/FamilyFeteRequestHandler.java | 19 ++++++++++++++++-- .../jieling/logic/activity/ActivityType.java | 2 +- .../logic/activity/ActivityTypeEnum.java | 3 ++- .../ljsd/jieling/logic/mission/GameEvent.java | 4 ++-- .../jieling/logic/mission/MissionLoigc.java | 7 ++++++- .../mission/data/DataManagerDistributor.java | 9 ++++++++- .../logic/mission/data/UpJewlDataManager.java | 20 +++++++++++++++---- .../event/MissionEventDistributor.java | 1 + 8 files changed, 53 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java index d505abab9..9ef4537b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFeteRequestHandler.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.family; import com.google.protobuf.GeneratedMessage; import com.ljsd.GameApplication; +import com.ljsd.jieling.core.Lockeys; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; @@ -13,6 +14,7 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.GuildCache; import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.Family; import com.ljsd.jieling.protocols.MessageTypeProto; @@ -21,7 +23,9 @@ import config.SGuildLevelConfig; import config.SGuildSacrificeConfig; import manager.STableManager; +import java.util.HashSet; import java.util.Map; +import java.util.Set; /** * Description: 祭祀请求 @@ -57,6 +61,9 @@ public class FamilyFeteRequestHandler extends BaseHandler sendUids = new HashSet<>(); + for (Set items : guildInfo.getMembers().values()) { + sendUids.addAll(items); + } + Lockeys.getLockeys().lock("guild",sendUids); + + int addexp = sGuildSacrificeConfig.getGuildExperience(); //自动推送给所有成员 guildInfo.addFete(sGuildSacrificeConfig.getGuildExperience()); - + user.getUserMissionManager().onGameEvent(user, GameEvent.GUILD_GIVE,1); Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); if (guildInfo.getExp() + addexp >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { guildInfo.updateLevel(guildInfo.getLevel() + 1); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index b959cdd07..9ae60bd8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -61,7 +61,7 @@ public interface ActivityType { int LEVEL_EXPERT = 52; //进阶达人 int BUY_GOLD = 53; //购买金币 点石成金 - + int COPY_PASS = 54; // 开服福利 副本限时通过奖励 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index fb7d5c131..4e2ffcbc6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -45,7 +45,8 @@ public enum ActivityTypeEnum { HERORANDOM_EXPERT(ActivityType.HERORANDOM_EXPERT,HeroRandomExpectRankActivity::new), SECURTBOX_EXPERT(ActivityType.SECURTBOX_EXPERT,SecurtBoxExpectRankActivity::new), FIND_FAIRY_FESTIVAL(ActivityType.FIND_FAIRY_FESTIVAL,RechargeSumActivity::new), - BUY_GOLD(ActivityType.BUY_GOLD,BuyGoldActivity::new) + BUY_GOLD(ActivityType.BUY_GOLD,BuyGoldActivity::new), + COPY_PASS(ActivityType.COPY_PASS,ChapterRewardActivity::new) ; private int type; private Function toActivityFunction; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index f504174ce..e9433d03f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -86,7 +86,7 @@ public enum GameEvent { CARD_RANDWM,// 使用普通召唤num次 (十连抽num计10) - GUILD_GIVE,//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次 //TODO + GUILD_GIVE,//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次 TEN_CHALLENGE,//挑战十绝阵num次 //TODO // SIX_RANDOM,//使用6灵阁召唤num次 EXPEDITION_FINISH,//猎妖之路通过第floor层的首领节点(每层最多一个)num次 @@ -94,7 +94,7 @@ public enum GameEvent { DEATH_PATH,//击杀过关十绝阵num次//TODO DAILY_TASK_TYPE,//日常任务 // - GUID_HELP,//公会援助他人次数达到num//TODO + GUID_HELP,//公会援助他人次数达到num CAR_PLAY,//参与车迟斗法num次.//TODO CAR_PLAY_LOOT,//于车迟斗法中抢夺其他玩家积分num次//TODO 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 c458d4362..82e802f8f 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 @@ -785,7 +785,12 @@ public class MissionLoigc { break; case GUILD_GIVE_TIME: - count = cumulationData.guild_give_time.get(missionSubType[0]); + if(missionSubType[0] == 0){ + count = (int)(cumulationData.guild_give_time.values().stream().collect(Collectors.summarizingInt(x->x)).getSum()); + }else{ + count = cumulationData.guild_give_time.get(missionSubType[0]); + } + break; case TEN_CHALLENGE_TIME: count = cumulationData.ten_challenge_time; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index 652e5616f..724452c23 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.mission.data; import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.MissionType; import java.util.HashMap; @@ -139,10 +140,16 @@ public class DataManagerDistributor { } public static CumulationData.Result updateData(CumulationData data, MissionType missionType, Object...parm) throws Exception { - BaseDataManager updater = judges.get(missionType); + + BaseDataManager updater = DataManagerDistributor.getMissTypeData(missionType); if(updater==null){ return null; } +// if(updater instanceof AbstractDataManager){ +// if(!((AbstractDataManager) updater).ishit(user,data, missionSubType,parm)){ +// return null; +// } +// } return updater.updateData(data, missionType,parm); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/UpJewlDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/UpJewlDataManager.java index 84173772e..cf968ef19 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/UpJewlDataManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/UpJewlDataManager.java @@ -31,21 +31,33 @@ public class UpJewlDataManager extends AbstractDataManager{ @Override public boolean isFinish(User user,CumulationData data, int[][] cfgValue, Object... parm) { - +// if(parm.length==1&&(int)parm[0]!=6){ +// return false; +// } +// if(parm.length==2&&(int)parm[0]!=cfgValue[1][0]){ +// return false; +// } + if( data.jewl_all_leve==cfgValue[1][0]){ + return true; + } for (Map.Entry> entry:user.getTeamPosManager().getTeamPosForHero().entrySet()){ List teamPosHeroInfos =entry.getValue(); if(teamPosHeroInfos.size()!=6){ continue; } + boolean isAll =true; for (TeamPosHeroInfo info:teamPosHeroInfos){ Hero hero = user.getHeroManager().getHero(info.getHeroId()); if( hero.getEspecialEquipLevel()(); typeList.add(MissionType.HERO_IN_TEAM_NUMS); + typeList.add(MissionType.JEWL_ALL_LEVE); eventEnumListMap.put(GameEvent.HERO_IN_TEAM,typeList); eventProcessor.put(GameEvent.HERO_IN_TEAM,new CumulationDataEventProcessor());