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 2de8c91db..c6ac509a5 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 @@ -46,27 +46,50 @@ public class NewWelfareActivity extends AbstractActivity { boolean isUpdate = false; for(SActivityRewardConfig sActivityRewardConfig : sActivityRewardConfigs){ ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.get(sActivityRewardConfig.getId()); - if(activityProgressInfo.getState() == 1){ - continue; - } - 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(sActivityRewardConfig.getSort()==1){ + if(activityProgressInfo.getState() == 1){ + continue; } - if(parm ==sActivityRewardConfig.getValues()[1][0]){ - if(newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()){ - //可领取奖励 - activityProgressInfo.setState(3); - }else{ - activityProgressInfo.setState(1); + 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(parm ==sActivityRewardConfig.getValues()[1][0]){ + if(newWelfareEvent.getType() == NewWelfareTypeEnum.RECHARGE_BUY.getType()){ + //可领取奖励 + activityProgressInfo.setState(3); + }else{ + activityProgressInfo.setState(1); + } + activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo); + isUpdate = true; + } + } + }else{ + //新增任务 + if(activityProgressInfo.getState()!= 0){ + continue; + } + 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(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)); + } } - activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo); - isUpdate = true; } } } + if(isUpdate){ //更新进度 ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); @@ -86,17 +109,22 @@ public class NewWelfareActivity extends AbstractActivity { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); //0是领取最后奖励 if(missionId==0){ - for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ - if(activityProgressInfo.getState() != 1){ + 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){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } for(Map.Entry item: activityProgressInfoMap.entrySet()){ - item.getValue().setState(2); - activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); + SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey()); + if (missonConfig.getSort()==1){ + item.getValue().setState(2); + activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); + } } - sendActivityProgress(session, activityMission, null); List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); 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 052d18dec..f91cd1ffd 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 @@ -3,7 +3,10 @@ package com.ljsd.jieling.logic.activity.event; public enum NewWelfareTypeEnum { LEVEL_FIGHT(1), LOGIN_TIMES(2), - RECHARGE_BUY(3) + RECHARGE_BUY(3), + EXPLORE(4),//极速探索n次 + UPSTAR(5),//指定英雄升级至x星 + ALL_MISSION_FIN(6)//sort为2所有任务完成 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 1f11ce946..a950b4242 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -19,6 +19,8 @@ import com.ljsd.jieling.ktbeans.KTGameType; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SecretEvent; import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; @@ -234,7 +236,9 @@ public class CombatLogic { user.getUserMissionManager().onGameEvent(user,GameEvent.PlAY_STORY,9999,1); Poster.getPoster().dispatchEvent(new SecretEvent(user.getId())); user.getUserMissionManager().onGameEvent(user, GameEvent.TAKE_ADVENTURE_REWARD_COUNT,1); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.EXPLORE.getType(),1)); } + FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(adventureFastReward.get(1)).setRandomDrop(adventureFastReward.get(2)).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true); KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10); 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 50144da8b..2b47d1f15 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 @@ -1541,7 +1541,7 @@ public class HeroLogic{ rankUpHeroExecute(targetHero); user.getHeroManager().addHeroStar(targetHero.getTemplateId(),targetHero.getStar()); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); - + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user,NewWelfareTypeEnum.UPSTAR.getType(),targetHero.getTemplateId())); targetHero.setStarBreakId(scHeroRankUpConfig.getId()); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar()); user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,targetHero.getTemplateId(),targetHero.getStar());