diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexEquipHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexEquipHandler.java index c46d0340d..f23b53363 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexEquipHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexEquipHandler.java @@ -13,6 +13,8 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.item.ItemLogic; +import com.ljsd.jieling.logic.mission.GameEvent; +import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.HeroInfoProto; @@ -90,6 +92,9 @@ public class ComplexEquipHandler extends BaseHandler createEntry:countMap.entrySet()){ createArray[index] = new int[]{createEntry.getKey(),createEntry.getValue()}; index++; + totalCreate += createEntry.getValue(); } ItemUtil.itemCost(user, consumeMap, BIReason.COMPLEX_EQUIP_CONSUME, 0); CommonProto.Drop.Builder drop = ItemUtil.drop(user,createArray,BIReason.COMPLEX_EQUIP); + user.getUserMissionManager().onGameEvent(user, GameEvent.WORKSHOP_CREATE_EQUIP, totalCreate); HeroInfoProto.ComplexEquipResponse.Builder response = HeroInfoProto.ComplexEquipResponse.newBuilder(); response.setDrop(drop); ReportUtil.onReportEvent(user, ReportEventEnum.EQUIP_SYNTHESIS.getType(),new ArrayList<>(countMap.keySet()),"",new ArrayList<>(consumeMap.keySet()),consumeMap.values()); 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 f3a19fadf..681255c4e 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 @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.activity; -import com.google.common.collect.Sets; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; @@ -93,7 +92,7 @@ public class TreasureActivity extends AbstractActivity { private void takeTreasureReward(ISession session, User user, int activityId, int missionId) throws Exception { int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE; ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId); - int changeState = getChangerState(user); + int destState = getDestState(user); List dropList = new ArrayList<>(2); // Set missionIds = new HashSet<>(); if (missionId == -2) { @@ -115,15 +114,15 @@ public class TreasureActivity extends AbstractActivity { dropList.add(rewards); notifyClient(session,user); } else if (missionId == -1) { - getAllTreasureRewards(user, activityMission, changeState, dropList); + getAllTreasureRewards(user, activityMission, destState, dropList); } else { int state = activityMission.getActivityMissionMap().get(missionId).getState(); - if (state == changeState || state == ActivityType.FINISH_TAKED) { - throw new ErrorCodeException(ErrorCode.newDefineCode("该奖励已领取过")); + if (state == destState || state == ActivityType.FINISH_TAKED) { + throw new ErrorCodeException(ErrorCode.newDefineCode("奖励不可重复领取")); } - dropByState(dropList, state, changeState, missionId); + dropByState(dropList, state, destState, missionId); ActivityProgressInfo progressInfo = new ActivityProgressInfo(); - progressInfo.setState(changeState); + progressInfo.setState(destState); progressInfo.setProgrss(0); activityMission.getActivityMissionMap().put(missionId, progressInfo); // missionIds.add(missionId); @@ -233,7 +232,7 @@ public class TreasureActivity extends AbstractActivity { } - private int getChangerState(User user){ + private int getDestState(User user){ PlayerManager playerInfoManager = user.getPlayerInfoManager(); int changeState = ActivityType.HAD_TAKED; int hadBuyTreasure = playerInfoManager.getHadBuyTreasure(); @@ -242,24 +241,24 @@ public class TreasureActivity extends AbstractActivity { } return changeState; } - private void getAllTreasureRewards(User user, ActivityMission activityMission, int changeState, List dropList){ + private void getAllTreasureRewards(User user, ActivityMission activityMission, int destState, List dropList){ for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){ Map progressInfoMap = activityMission.getActivityMissionMap(); int state =progressInfoMap.get(i).getState(); - if(state==changeState||state==ActivityType.FINISH_TAKED) { + if(state==destState||state==ActivityType.FINISH_TAKED) { continue; } - dropByState(dropList,state,changeState,i); + dropByState(dropList,state,destState,i); ActivityProgressInfo progressInfo = new ActivityProgressInfo(); progressInfo.setProgrss(0); - progressInfo.setState(changeState); + 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), getChangerState(user), itemAttrs); + getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getDestState(user), itemAttrs); } /** diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index d667f4e11..42be73718 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -34,7 +34,7 @@ public enum MissionType { BUY_GOLD_TIMES(20), //买金币次数 BUY_STAMINA_TIMES(21), //购买体力次数 - WORKSHOP_CREATE_EQUIP_NUMS(22), //工坊合成装备件数 + WORKSHOP_CREATE_EQUIP_NUMS(22), //锻器阁合成装备件数 GENERAL_STORY_TIMES(23), //每日挑战普通副本次数 HERO_STORY_TIMES(24), //每日挑战精英副本次数 LEVEL_STORY_TIMES(25), //每日挑战故事关卡次数 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index a465f9a2a..5b17ea23e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -421,33 +421,35 @@ public class BuyGoodsLogic { if(user.getPlayerInfoManager().getMonthCard().containsKey(Global.LMONTHCARDID) ){ PlayerLogic.getInstance().sendDayilyMail(user,goodsType); int starReward = user.getMapManager().getStarReward(); - if(starReward == 0){ - return; - } - StringBuilder rewardStr = new StringBuilder(); - while (starReward>0){ - SChallengeStarBox sChallengeStarBox = STableManager.getConfig(SChallengeStarBox.class).get(starReward); - int[][] extraReward = sChallengeStarBox.getExtraReward(); - starReward--; - if(starReward>0){ - rewardStr.append(StringUtil.parseArrayToString(extraReward)).append("|"); - }else{ - rewardStr.append(StringUtil.parseArrayToString(extraReward)); + /** + * 之前这里是starReward为0就直接return了 + * 方法最后边的月卡和基金的每日邮件也不会发送 + * 备注下,如果发了月卡和基金的每日邮件反而是错的,还要改回来 + */ + if(starReward != 0){ + StringBuilder rewardStr = new StringBuilder(); + while (starReward>0){ + SChallengeStarBox sChallengeStarBox = STableManager.getConfig(SChallengeStarBox.class).get(starReward); + int[][] extraReward = sChallengeStarBox.getExtraReward(); + starReward--; + if(starReward>0){ + rewardStr.append(StringUtil.parseArrayToString(extraReward)).append("|"); + }else{ + rewardStr.append(StringUtil.parseArrayToString(extraReward)); + } } + + String title = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_txt"); + MailLogic.getInstance().sendMail(user.getId(),title,content,rewardStr.toString(),nowTime, Global.MAIL_EFFECTIVE_TIME); } - String title = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("recharge_6_stars_txt"); - MailLogic.getInstance().sendMail(user.getId(),title,content,rewardStr.toString(),nowTime, Global.MAIL_EFFECTIVE_TIME); } - if(user.getPlayerInfoManager().getMonthCard().containsKey(Global.MONTHCARDID) || goodsType == GiftGoodsType.WEEKCARD || goodsType == GiftGoodsType.FOUND_ONE || goodsType == GiftGoodsType.FOUND_TWO){ PlayerLogic.getInstance().sendDayilyMail(user,goodsType); }else if(goodsType == GiftGoodsType.SUN_LONG ){ user.getPlayerInfoManager().setHadBuyTreasure(1); - } - } public static boolean isHadBought( Map buyGoodsTimes,int giftGoodsType){