From d96dc3a63d7d0bad4cbe84a6f153b737fc687e89 Mon Sep 17 00:00:00 2001 From: yuanshuai <243578945@qq.com> Date: Thu, 16 Dec 2021 16:39:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=89=88=E5=A4=A9=E5=B0=8A=E9=99=8D?= =?UTF-8?q?=E4=B8=96=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/activity/ActivityLogic.java | 10 + .../logic/activity/NewWelfareActivity.java | 204 +++++++++++------- .../activity/event/NewWelfareTypeEnum.java | 3 +- .../jieling/logic/store/BuyGoodsNewLogic.java | 4 + 4 files changed, 144 insertions(+), 77 deletions(-) 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 d72e4bfb2..cdacf19ad 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 @@ -436,6 +436,16 @@ public class ActivityLogic implements IEventHandler{ Map activityMissionMap = activityManager.getActivityMissionMap(); for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { int activityId = sGlobalActivity.getId(); + ////天尊降世活动特殊处理 + if (activityMissionMap.containsKey(42)){ + if (activityId==4201){ + continue; + } + }else{ + if (activityId==42){ + continue; + } + } if (openActivityIds.contains(activityId)) { int[] ifOpen = sGlobalActivity.getIfOpen(); if (ifOpen == null || ifOpen.length <= 0){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java index 7cb3fdd6a..c0704938b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java @@ -32,96 +32,176 @@ public class NewWelfareActivity extends AbstractActivity { @Override public void onEvent(IEvent event) throws Exception { - if(! (event instanceof NewWelfareEvent) ){ - return; - } + if (!(event instanceof NewWelfareEvent)) { + return; + } + if (this.id == 42) { + oldActivityEvent(event); + } else { + NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event; + if (newWelfareEvent.getType() == NewWelfareTypeEnum.BUY_1106.getType()) { + User user = newWelfareEvent.getUser(); + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + for (Map.Entry item : activityMission.getActivityMissionMap().entrySet()) { + ActivityProgressInfo activityProgressInfo = item.getValue(); + int missionId=item.getKey(); + if (missionId==4209){ + activityProgressInfo.setState(1); + } + activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); + } + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); + } + } + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + if (this.id == 42) { + User user = UserManager.getUser(session.getUid()); + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + oldActivityTakeReward(session,missionId,user,activityMission,activityProgressInfoMap); + } else { + super.takeReward(session,missionId); + } + + + return true; + } + + @Override + public void getAllMissRewards(User user, ISession session, List itemAttrs) { + if (this.id == 42) { + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { + return; + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + for (ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()) { + if (activityProgressInfo.getState() != 1) { + return; + } + } + for (ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()) { + activityProgressInfo.setState(2); + } + + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + item.getValue().setState(2); + activityMission.getActivityMissionMap().put(item.getKey(), item.getValue()); + } + + List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); + itemAttrs.add(sActivityRewardConfigs.get(0).getReward()); + }else{ +// super.getAllMissRewards(user,session,itemAttrs); + } + } + + + @Override + void updateProgress(ActivityMission activityMission, int count) { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + ActivityProgressInfo activityProgressInfo = item.getValue(); + int missionId=item.getKey(); + SActivityRewardConfig rewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); + activityProgressInfo.setProgrss(count); + if (activityProgressInfo.getProgrss()>=rewardConfig.getValues()[0][0]&&rewardConfig.getReward().length<=0&&missionId!=4209){ + activityProgressInfo.setState(ActivityType.HAD_TAKED); + } + activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); + } + } + + private void oldActivityEvent(IEvent event) { NewWelfareEvent newWelfareEvent = (NewWelfareEvent) event; - User user =newWelfareEvent.getUser(); + User user = newWelfareEvent.getUser(); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - if( null == activityMission){ + if (null == activityMission) { return; } List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); Map activityProgressInfoMap = activityMission.getActivityMissionMap(); boolean isUpdate = false; - for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){ + for (SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs) { ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.get(sActivityRewardConfig.getId()); - if(sActivityRewardConfig.getSort()==1){//拿sort区分新老至尊降世活动任务 - if(activityProgressInfo.getState() == 1){ + if (sActivityRewardConfig.getSort() == 1) {//拿sort区分新老至尊降世活动任务 + if (activityProgressInfo.getState() == 1) { continue; } - if(sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType() ){ + if (sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType()) { int parm = newWelfareEvent.getParm(); - if( newWelfareEvent.getType() == NewWelfareTypeEnum.LOGIN_TIMES.getType()){ - activityProgressInfo.setProgrss(activityProgressInfo.getProgrss()+1); - parm=activityProgressInfo.getProgrss(); + if (newWelfareEvent.getType() == NewWelfareTypeEnum.LOGIN_TIMES.getType()) { + activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1); + parm = activityProgressInfo.getProgrss(); } - if(parm ==sActivityRewardConfig.getValues()[1][0]){ - if(newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()){ + if (parm == sActivityRewardConfig.getValues()[1][0]) { + if (newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()) { //可领取奖励 activityProgressInfo.setState(3); - }else{ + } else { activityProgressInfo.setState(1); } activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo); isUpdate = true; } } - }else{ + } else { //新增任务 - if(activityProgressInfo.getState()!= 0){ + if (activityProgressInfo.getState() != 0) { continue; } - if(sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType() ){ + if (sActivityRewardConfig.getValues()[0][0] == newWelfareEvent.getType()) { int parm = newWelfareEvent.getParm(); - if (newWelfareEvent.getType() == NewWelfareTypeEnum.ALL_MISSION_FIN.getType()||newWelfareEvent.getType() == NewWelfareTypeEnum.EXPLORE.getType()){ - activityProgressInfo.setProgrss(activityProgressInfo.getProgrss()+1); - parm=activityProgressInfo.getProgrss(); + if (newWelfareEvent.getType() == NewWelfareTypeEnum.ALL_MISSION_FIN.getType() || newWelfareEvent.getType() == NewWelfareTypeEnum.EXPLORE.getType()) { + activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1); + parm = activityProgressInfo.getProgrss(); } - if(parm ==sActivityRewardConfig.getValues()[1][0]){ + if (parm == sActivityRewardConfig.getValues()[1][0]) { activityProgressInfo.setState(3); activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo); isUpdate = true; - if (sActivityRewardConfig.getSort()==2){ - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user,NewWelfareTypeEnum.ALL_MISSION_FIN.getType(),1)); + if (sActivityRewardConfig.getSort() == 2) { + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.ALL_MISSION_FIN.getType(), 1)); } } } } } - if(isUpdate){ + if (isUpdate) { //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); sendActivityProgress(sessionByUid, activityMission, null); } } - @Override - public boolean takeReward(ISession session, int missionId) throws Exception { + private void oldActivityTakeReward(ISession session, int missionId, User user, ActivityMission activityMission, Map activityProgressInfoMap) throws Exception { PlayerInfoProto.TakeActivityRewardResponse build = null; - User user = UserManager.getUser(session.getUid()); - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } - ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - Map activityProgressInfoMap = activityMission.getActivityMissionMap(); //0是领取最后奖励 - if(missionId==0){ + if (missionId == 0) { for (Map.Entry inter : activityProgressInfoMap.entrySet()) { - ActivityProgressInfo activityProgressInfo=inter.getValue(); - int activityMissionId=inter.getKey(); - SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(activityMissionId); - if(activityProgressInfo.getState() != 1&&missonConfig.getSort()==1){ + ActivityProgressInfo activityProgressInfo = inter.getValue(); + int activityMissionId = inter.getKey(); + SActivityRewardConfig missonConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(activityMissionId); + if (activityProgressInfo.getState() != 1 && missonConfig.getSort() == 1) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } - for(Map.Entry item: activityProgressInfoMap.entrySet()){ - SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey()); - if (missonConfig.getSort()==1){ + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + SActivityRewardConfig missonConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey()); + if (missonConfig.getSort() == 1) { item.getValue().setState(2); - activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); + activityMission.getActivityMissionMap().put(item.getKey(), item.getValue()); } } @@ -129,52 +209,24 @@ public class NewWelfareActivity extends AbstractActivity { List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); - reportTakeActivityReward(user,sActivityRewardConfigs.get(0).getReward(),missionId); + reportTakeActivityReward(user, sActivityRewardConfigs.get(0).getReward(), missionId); - }else{ + } else { //领取第三个奖励用 - if(!activityProgressInfoMap.containsKey(missionId)||activityProgressInfoMap.get(missionId).getState()!=3){ + if (!activityProgressInfoMap.containsKey(missionId) || activityProgressInfoMap.get(missionId).getState() != 3) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } //领过了 activityProgressInfoMap.get(missionId).setState(1); SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); - if(sActivityRewardConfig==null){ + if (sActivityRewardConfig == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } sendActivityProgress(session, activityMission, null); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD); build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); - reportTakeActivityReward(user,sActivityRewardConfig.getReward(),missionId); + reportTakeActivityReward(user, sActivityRewardConfig.getReward(), missionId); } - MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); - return true; - } - - @Override - public void getAllMissRewards(User user, ISession session, List itemAttrs){ - SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) { - return; - } - ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); - Map activityProgressInfoMap = activityMission.getActivityMissionMap(); - for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ - if(activityProgressInfo.getState() != 1){ - return; - } - } - for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ - activityProgressInfo.setState(2); - } - - for(Map.Entry item: activityProgressInfoMap.entrySet()){ - item.getValue().setState(2); - activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); - } - - List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); - itemAttrs.add(sActivityRewardConfigs.get(0).getReward()); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java index f91cd1ffd..53f90a993 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java @@ -6,7 +6,8 @@ public enum NewWelfareTypeEnum { RECHARGE_BUY(3), EXPLORE(4),//极速探索n次 UPSTAR(5),//指定英雄升级至x星 - ALL_MISSION_FIN(6)//sort为2所有任务完成 + ALL_MISSION_FIN(6),//sort为2所有任务完成 + BUY_1106(7),//购买1106礼包 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 918633841..985848b0b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -227,6 +227,9 @@ public class BuyGoodsNewLogic { //处理特权 activePrivilege(user,config); resultRes.setResultCode(1); + if (goodsId==1106){ + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.BUY_1106.getType(),0)); + } //发送邮件 int[] mail = config.getMail(); if(config.getPrice()!=0&&mail!=null&&mail.length>1){ @@ -332,6 +335,7 @@ public class BuyGoodsNewLogic { ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.JADE_DYNASTY_RECHARGE_SUM,(int)(price*1000)); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY, (int)(user.getPlayerInfoManager().getRechargedaily()*1000) ); ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FIND_FAIRY_FESTIVAL, (int)(price*1000)); + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.NEW_WELFARE, (int)(info.getRr())); AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AynMissionWorker(GameEvent.RECHARGE_TOTAL,(int)(price*1000))) ; ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);