From 43e53006c2e5ef60eab6e68124d0d2d986c9737f Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 14 Apr 2023 17:56:02 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=BF=83=E9=AD=94=E9=A2=86=E5=A5=96?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/GetDemonsTrialRewardHandler.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java index 5428dd9ba..dcdc2dba7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java @@ -6,7 +6,6 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.util.ItemUtil; import config.SFloodConfig; import manager.STableManager; @@ -44,6 +43,12 @@ public class GetDemonsTrialRewardHandler extends BaseHandler Date: Mon, 17 Apr 2023 11:36:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=9D=92=E9=BE=99=E7=A7=98=E5=AE=9D?= =?UTF-8?q?=E9=A2=86=E5=A5=96=E6=B7=BB=E5=8A=A0=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/ExpeditionExpert.java | 8 +- .../logic/activity/TreasureActivity.java | 126 ++++-------------- 2 files changed, 26 insertions(+), 108 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java index 6151e6d79..185b07263 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpeditionExpert.java @@ -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 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]; } } 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 e2a27be9c..7559855aa 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 @@ -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 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); -// } -// } 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 dropList,int curState,int targetState,int missionId){ + + private void dropByState(User user, List 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 dropList){ - for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){ - Map progressInfoMap = activityMission.getActivityMissionMap(); + for(int i = 1 ; i <= user.getPlayerInfoManager().getTreasureLevel();i++){ + Map 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 itemAttrs){ getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getDestState(user), itemAttrs); From 3e0422736250343989b8ac4510c28d65afd9684e Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 18 Apr 2023 15:06:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=9D=E5=99=A8=E6=88=98=E5=8A=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/CoreService.java | 18 ++++++++++++++++++ .../ljsd/jieling/logic/dao/EquipManager.java | 10 +++++++--- .../com/ljsd/jieling/logic/hero/HeroLogic.java | 13 ++++++------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index eb776f9af..ff79d9764 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -374,11 +374,29 @@ public class CoreService implements RPCRequestIFace.Iface { jsonObject.getJSONObject("itemManager").put("itemMap",new HashMap<>()); jsonObject.remove("mailManager"); jsonObject.remove("storeManager"); + jsonObject.getJSONObject("equipManager").put("jewelMap", getJewelManager(user)); return jsonObject.toString(); } return ""; } + public HashMap getJewelManager(User user){ + HashMap jewelMap = new HashMap<>(); + try { + Map equipMap = user.getEquipManager().getEquipMap(); + for (Map.Entry entry : equipMap.entrySet()) { + com.ljsd.jieling.logic.dao.PropertyItem propertyItem = entry.getValue(); + if (propertyItem instanceof Jewel){ + Jewel jewel = (Jewel) propertyItem; + jewelMap.put(entry.getKey(), jewel); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + return jewelMap; + } + @Override public void updateUserInfoByRpc(int uid, String userStr, int type) throws TException { User thisUser = null; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java index 55fd9c83e..7d1e657c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java @@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; import com.ljsd.jieling.logic.dao.root.User; +import org.springframework.data.annotation.Transient; import java.util.*; @@ -11,9 +12,8 @@ public class EquipManager extends MongoBase { private final Map faxiangMap = new HashMap<>(); private final Set equipBookEnabled = new HashSet<>(); private final Set equipList = new HashSet<>(); - -// private Equip unDetermined; - + @Transient + private final Map jewelMap = new HashMap<>(); private final Map equipHandBook; private int soulEquipPool;//占星装备卡池 @@ -56,6 +56,10 @@ public class EquipManager extends MongoBase { } } + public Map getJewelMap() { + return jewelMap; + } + public Map getEquipMap() { return equipMap; } 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 e73902cdd..7a2302a11 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 @@ -27,12 +27,10 @@ import com.ljsd.jieling.logic.activity.eventhandler.PokemonFiveStarGetEventHandl import com.ljsd.jieling.logic.activity.eventhandler.SaveHeroForceEventHandler; import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; import com.ljsd.jieling.logic.dao.*; -import com.ljsd.jieling.logic.dao.cross.CSPlayer; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.vo.HeroVo; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.fight.CombatLogic; -import com.ljsd.jieling.logic.fight.DuoduiTowerLogic; import com.ljsd.jieling.logic.fight.passiveSkillCal.PassiveskillCalEnum; import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum; import com.ljsd.jieling.logic.help.HelpHero; @@ -3090,11 +3088,12 @@ public class HeroLogic { if (propertyItem instanceof Jewel){ jewel = (Jewel) propertyItem; }else { - jewel = new Jewel(); - jewel.setHeroId(propertyItem.getHeroId()); - jewel.setLevel(propertyItem.getLevel()); - jewel.setEquipId(propertyItem.getEquipId()); - jewel.setBuildLevel(1); + Map jewelMap = equipManager.getJewelMap(); + jewel = jewelMap.get(jewelId); + if (jewel == null){ + LOGGER.error("计算战力,英雄:{}-{},宝器:{},数据库内找不到",hero.getId(),hero.getTemplateId(),jewelId); + continue; + } } SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(jewel.getEquipId()); // 进阶