From 0f7b73924dda75c060bee5063674a93f3c103c56 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 10 Nov 2021 15:15:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=80=81=E8=B5=B0=E6=94=AF=E6=8F=B4?= =?UTF-8?q?=E7=A5=9E=E5=B0=86=E4=BB=A5=E5=90=8E=EF=BC=8C=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E5=A4=96=E9=9D=A2=E6=88=98=E5=8A=9B=E4=B8=8D=E5=AF=B9?= =?UTF-8?q?=20bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/hero/HeroGodSoulBindRequestHandler.java | 3 +++ .../ljsd/jieling/handler/hero/SixiangUpRequestHandler.java | 3 +++ .../main/java/com/ljsd/jieling/logic/dao/HeroManager.java | 6 ++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java index a3d0317b6..d76e8b8af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/HeroGodSoulBindRequestHandler.java @@ -2,6 +2,8 @@ package com.ljsd.jieling.handler.hero; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.HeroManager; import com.ljsd.jieling.logic.dao.UserManager; @@ -60,6 +62,7 @@ public class HeroGodSoulBindRequestHandler extends BaseHandler>godSoulBindMap=hero.getGodSoulBindMap(); for (Map.Entry> integerListEntry : godSoulBindMap.entrySet()) { @@ -282,6 +283,7 @@ public class HeroManager extends MongoBase { Hero bingHero= heroMap.get(stringIntegerEntry.getKey()); bingHero.setGodSoulBindMap(2,stringIntegerEntry.getValue(),null); } + Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(uid)); } public Map getHeroMap() { From d381581b7385ba468ff39b328cfb8ada30458fb8 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Wed, 10 Nov 2021 15:26:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E6=88=98=E6=96=97=E5=8A=9B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java index 33b441f31..98337d42d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/SixiangUpStarRequestHandler.java @@ -6,6 +6,8 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.dao.SixiangProfessionInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -63,6 +65,7 @@ public class SixiangUpStarRequestHandler extends BaseHandler Date: Thu, 25 Nov 2021 18:26:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=81=B5=E5=85=BD=E5=AE=9D=E9=98=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 13 ++++++++++- .../jieling/logic/activity/ActivityLogic.java | 22 +++++++++++++------ .../LimitRandomSpecialMonsterActivity.java | 15 +++++++++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 14 +++++++----- .../main/java/config/SSpiritAnimalSummon.java | 11 +++------- 5 files changed, 54 insertions(+), 21 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index f9e2902be..adb798721 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -23,6 +23,8 @@ import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; import config.SErrorCodeEerverConfig; import config.SGlobalActivity; +import config.SSpiritAnimalSummon; +import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import rpc.protocols.CommonProto; @@ -171,11 +173,20 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), activityProgressInfo.getProgrss(), sActivityRewardConfig.getValues()); throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件")); } + + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); //up miss int[][] reward = sActivityRewardConfig.getReward(); + if(sGlobalActivity.getType() == ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY) { + int summonId=activityMission.getActivityMissionMap().get(0).getProgrss(); + if (summonId>0){ + SSpiritAnimalSummon summonConfig=STableManager.getConfig(SSpiritAnimalSummon.class).get(summonId); + reward[0][0]=summonConfig.getOriginalItem(); + } + } CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); checkAndSetProgress(activityMission, activityProgressInfo, missionId); - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (null != sGlobalActivity && checkActivityMissionFinishAndTake(session.getUid(),id, activityMission) && sGlobalActivity.getResetGrade() == 1) { reSetValue(user); if(sGlobalActivity.getType() != ActivityType.OnlineReward) { 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 1b72cf6b6..4ec86aa55 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 @@ -49,6 +49,8 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; +import static manager.STableManager.getConfig; + /** * */ @@ -970,7 +972,7 @@ public class ActivityLogic implements IEventHandler{ } int resultRewardId = 0; if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_STATUS).getProgrss() == -2) { - Map poolMap = STableManager.getConfig(SBlessingRewardPool.class); + Map poolMap = getConfig(SBlessingRewardPool.class); int[][] result = new int[BlessInfoConfig.START_CAPACITY][]; int index = 0; for (Map.Entry entry : activityProgressInfoMap.entrySet()) { @@ -1039,7 +1041,7 @@ public class ActivityLogic implements IEventHandler{ } } LOGGER.info("blessChoose uid=>{}本次抽取的Id为{}", user.getId(), resultRewardId); - Map poolMap = STableManager.getConfig(SBlessingRewardPool.class); + Map poolMap = getConfig(SBlessingRewardPool.class); int[][] dropItem = new int[1][]; for (Integer count : SBlessingConfig.blessingConfigMap.get(blessActivityId).getCounts()) { if (count != activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()) { @@ -1485,12 +1487,18 @@ public class ActivityLogic implements IEventHandler{ if(activityMission==null||!activityMission.getActivityMissionMap().containsKey(0)){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - Map sSpiritAnimalSummon = STableManager.getConfig(SSpiritAnimalSummon.class); - if(!sSpiritAnimalSummon.containsKey(chooseId)||sSpiritAnimalSummon.get(chooseId).getActivityID()!=activityId){ + + Map summonConfig= STableManager.getConfig(SSpiritAnimalSummon.class); + int summonId=0; + for (Map.Entry summonEntry : summonConfig.entrySet()) { + if (summonEntry.getValue().getActivityID()==activityId&&summonEntry.getValue().getFocusID()==chooseId) { + summonId=summonEntry.getKey(); + } + } + if (summonId==0){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - activityMission.getActivityMissionMap().get(0).setProgrss(chooseId); - + activityMission.getActivityMissionMap().get(0).setProgrss(summonId); MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true); } @@ -1585,7 +1593,7 @@ public class ActivityLogic implements IEventHandler{ public void choiceDrawCard(User user,int activityId,int type) throws Exception { // 初始值 ActivityProto.choiceDrawCardResponse.Builder build = ActivityProto.choiceDrawCardResponse.newBuilder(); - SWishActivitySetting setting = STableManager.getConfig(SWishActivitySetting.class).get(1); + SWishActivitySetting setting = getConfig(SWishActivitySetting.class).get(1); // 抽奖次数 int num = type == 1?1:10; // 抽奖上限 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java index 18399fa36..0174b1ff4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java @@ -1,8 +1,18 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import config.SActivityRewardConfig; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; import java.util.Map; @@ -41,4 +51,9 @@ public class LimitRandomSpecialMonsterActivity extends LimitRandomCardActivity { activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); } } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + return super.takeReward(session, missionId); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 330882d62..c104aa825 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -63,6 +63,7 @@ import util.MathUtils; import util.StringUtil; import util.TimeUtils; +import java.awt.event.ItemEvent; import java.lang.reflect.Array; import java.math.BigDecimal; import java.util.*; @@ -731,11 +732,14 @@ public class HeroLogic { } //进行替换 for (int[] randomItem : random) { - int length = Math.min(sSpiritAnimalSummon.getOriginalItemList().length, sSpiritAnimalSummon.getTargetItemList().length); - for (int i = 0; i < length; i++) { - if (randomItem[0] == sSpiritAnimalSummon.getOriginalItemList()[i]) { - randomItem[0] = sSpiritAnimalSummon.getTargetItemList()[i]; - } + SItem itemConfig=SItem.getsItemMap().get(randomItem[0]); + if (itemConfig.getQuantity()<5){ + continue; + } + if (itemConfig.getItemType()== GlobalItemType.SpecialMonster) { + randomItem[0]=sSpiritAnimalSummon.getFocusID(); + }else if(itemConfig.getItemType()==GlobalItemType.SpecialMonsterItem){ + randomItem[0]=sSpiritAnimalSummon.getOriginalItem(); } } } diff --git a/tablemanager/src/main/java/config/SSpiritAnimalSummon.java b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java index 81fde2427..703bae574 100644 --- a/tablemanager/src/main/java/config/SSpiritAnimalSummon.java +++ b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java @@ -15,9 +15,8 @@ public class SSpiritAnimalSummon implements BaseConfig { private int activityID; - private int[] originalItemList; + private int originalItem; - private int[] targetItemList; // public static Map>> spiritAnimalSummonMapByActivityId; @@ -50,12 +49,8 @@ public class SSpiritAnimalSummon implements BaseConfig { return activityID; } - public int[] getOriginalItemList() { - return originalItemList; - } - - public int[] getTargetItemList() { - return targetItemList; + public int getOriginalItem() { + return originalItem; }