From 7ff90d3a74e7149f2e48451bd0ee660e7d26952c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 25 Jul 2019 15:44:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activity/BlessInitHandler.java | 2 +- .../jieling/logic/activity/ActivityLogic.java | 152 +++++++++--------- 2 files changed, 78 insertions(+), 76 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInitHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInitHandler.java index d588598dd..72f3a3081 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInitHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/BlessInitHandler.java @@ -17,6 +17,6 @@ public class BlessInitHandler extends BaseHandler { @Override public void process(ISession iSession, PacketNetData netData) throws Exception { - ActivityLogic.getInstance().blessActivityInit(iSession, MessageTypeProto.MessageType.BLESS_INIT_RESPONSE); +// ActivityLogic.getInstance().blessActivityInit(iSession, MessageTypeProto.MessageType.BLESS_INIT_RESPONSE); } } 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 61a6eb79d..c83468567 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 @@ -4,6 +4,7 @@ import com.ljsd.jieling.config.*; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; +import com.ljsd.jieling.handler.activity.BlessInfoConfig; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.dao.*; @@ -590,24 +591,24 @@ public class ActivityLogic { secretBoxSeasonTimes=0; } //云梦祈福初始化 - public void blessActivityInit(ISession session,MessageTypeProto.MessageType messageType) throws Exception { - User user = UserManager.getUser(session.getUid()); - ActivityManager activityManager = user.getActivityManager(); - if(activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId()).getActivityProgressInfoMap().size()>0){ -// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经初始化过,不需要初始化"); - MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); - return; - } - //祈福信息初始化 - blessInfoInit(activityManager,7); - MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); - } +// public void blessActivityInit(ISession session,MessageTypeProto.MessageType messageType) throws Exception { +// User user = UserManager.getUser(session.getUid()); +// ActivityManager activityManager = user.getActivityManager(); +// if(activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId()).getActivityProgressInfoMap().size()>0){ +//// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经初始化过,不需要初始化"); +// MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); +// return; +// } +// //祈福信息初始化 +// blessInfoInit(activityManager,7); +// MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); +// } /** * 祈福信息初始化 * @param activityManager */ - private void blessInfoInit(ActivityManager activityManager,int activityId){ + private ActivityMission blessInfoInit(ActivityManager activityManager,int activityId){ //第一次9种 int fixRewardPool = SBlessingConfig.sBlessingConfig.getRandomPoolId(); int fixRewardNum = SBlessingConfig.sBlessingConfig.getRandomNum(); @@ -671,39 +672,42 @@ public class ActivityLogic { ActivityMission activityMission =new ActivityMission(); - for(int i=16;i>0;i--){ + for(int i = BlessInfoConfig.START_CAPACITY; i>0; i--){ ActivityProgressInfo progressInfo =new ActivityProgressInfo(); - if(16-i blessInfoMap = activityMission.getActivityProgressInfoMap(); //保存之前 - if(blessInfoMap.get(99).getProgrss()==0){ + if(blessInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()==0){ for(Map.Entry entry:blessInfoMap.entrySet()){ - if(entry.getKey()/1000>0){ + if(entry.getKey()/BlessInfoConfig.COUNT_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%1000) + .setLocationId(entry.getKey()%BlessInfoConfig.COUNT_REWARD_START_ID) .setState(0) .setRewardId(entry.getValue().getProgrss()) .build(); response.addCountReward(blessReward); continue; - }else if(entry.getKey()/500>0){ + }else if(entry.getKey()/BlessInfoConfig.SUPREME_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%500+1) + .setLocationId(entry.getKey()%BlessInfoConfig.SUPREME_REWARD_START_ID+1) .setState(0) .setRewardId(entry.getValue().getProgrss()) .build(); response.addSupremeReward(blessReward); continue; - }else if(entry.getKey()/200>0){ + }else if(entry.getKey()/BlessInfoConfig.LEGEND_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%200+1) + .setLocationId(entry.getKey()%BlessInfoConfig.LEGEND_REWARD_START_ID+1) .setState(0) .setRewardId(entry.getValue().getProgrss()) .build(); response.addLegendReward(blessReward); continue; - }else if(entry.getKey()<=16){ + }else if(entry.getKey()<=BlessInfoConfig.START_CAPACITY){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() .setLocationId(entry.getKey()) .setState(0) @@ -758,26 +762,26 @@ public class ActivityLogic { } }else{//保存之后 for(Map.Entry entry:blessInfoMap.entrySet()){ - if(entry.getKey()/1000>0){ + if(entry.getKey()/BlessInfoConfig.COUNT_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%1000) + .setLocationId(entry.getKey()%BlessInfoConfig.COUNT_REWARD_START_ID) .setState(1) .setRewardId(entry.getValue().getProgrss()) .build(); response.addCountReward(blessReward); continue; - }else if(entry.getKey()/500>0){ + }else if(entry.getKey()/BlessInfoConfig.SUPREME_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%500+1) + .setLocationId(entry.getKey()%BlessInfoConfig.SUPREME_REWARD_START_ID+1) .setState(1) .setRewardId(entry.getValue().getProgrss()) .build(); response.addSupremeReward(blessReward); continue; - }else if(entry.getKey()/200>0){ + }else if(entry.getKey()/BlessInfoConfig.LEGEND_REWARD_START_ID>0){ CommonProto.blessReward blessReward = CommonProto.blessReward.newBuilder() - .setLocationId(entry.getKey()%200+1) + .setLocationId(entry.getKey()%BlessInfoConfig.LEGEND_REWARD_START_ID+1) .setState(1) .setRewardId(entry.getValue().getProgrss()) .build(); @@ -785,21 +789,21 @@ public class ActivityLogic { continue; } } - for(int i = 17;i<=48;i++){ + for(int i = BlessInfoConfig.CHOOSE_START_ID;i<=BlessInfoConfig.REWARD_VIEW_END_ID;i++){ for(Map.Entry entry:blessInfoMap.entrySet()) { if(entry.getKey()!=i){ continue; - }if (i<33){ + }if (i activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); - if(activityProgressInfoMap.get(locationId+16).getProgrss()!=0){ + if(activityProgressInfoMap.get(locationId+BlessInfoConfig.START_CAPACITY).getProgrss()!=0){ MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经抽过改格子"); return; } int resultRewardId = 0; - if(activityProgressInfoMap.get(99).getProgrss()==-1){ + if(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()==-1){ Map poolMap = SBlessingRewardPool.sBlessingRewardPoolMap; - int[][] result = new int[16][]; + int[][] result = new int[BlessInfoConfig.START_CAPACITY][]; int index = 0; for (Map.Entry entry :activityProgressInfoMap.entrySet()) { - if(entry.getKey()>16){ + if(entry.getKey()>BlessInfoConfig.START_CAPACITY){ continue; } int[] temp = new int[2]; @@ -865,13 +868,13 @@ public class ActivityLogic { result[index] = temp; index++; } - int[] order = MathUtils.randomFromWeightWithTaking(result, 16); + int[] order = MathUtils.randomFromWeightWithTaking(result, BlessInfoConfig.START_CAPACITY); for (int i = 0; i entry :activityProgressInfoMap.entrySet()) { - if(entry.getKey()>16){ + if(entry.getKey()>BlessInfoConfig.START_CAPACITY){ continue; } ActivityProgressInfo progress = new ActivityProgressInfo(); @@ -879,24 +882,24 @@ public class ActivityLogic { activityMission.updateProgressInfo(entry.getKey(),progress); index++; } - activityMission.updateProgressInfo(99,new ActivityProgressInfo(1,0)); + activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo(1,0)); } //检验消耗道具 int[][] costConfig = SBlessingConfig.sBlessingConfig.getCost(); int[][] cost = new int[1][]; int[] temp = new int[2]; temp[0] = costConfig[0][0]; - temp[1] = (int)MathUtils.calABX(activityProgressInfoMap.get(99).getProgrss(),costConfig[1]); + temp[1] = (int)MathUtils.calABX(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(),costConfig[1]); cost[0] = temp; - LOGGER.info("本次为第{}次抽取,消耗{}个数为{}",activityProgressInfoMap.get(99).getProgrss(),temp[0],temp[1]); + LOGGER.info("本次为第{}次抽取,消耗{}个数为{}",activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss(),temp[0],temp[1]); boolean costResult = ItemUtil.itemCost(user,cost,BIReason.BLESS_CHOOSE_CONSUME,1); if(!costResult){ MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"道具不足"); return; } - if(activityProgressInfoMap.get(99).getProgrss()>0){ + if(activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()>0){ for (Map.Entry entry :activityProgressInfoMap.entrySet()) { - if(entry.getKey()>16){ + if(entry.getKey()>BlessInfoConfig.START_CAPACITY){ continue; } if(entry.getValue().getProgrss()==0){ @@ -905,7 +908,7 @@ public class ActivityLogic { resultRewardId = entry.getValue().getProgrss(); ActivityProgressInfo progress = new ActivityProgressInfo(); progress.setProgrss(entry.getValue().getProgrss()); - activityMission.updateProgressInfo(locationId+16,progress); + activityMission.updateProgressInfo(locationId+BlessInfoConfig.START_CAPACITY,progress); activityMission.updateProgressInfo(entry.getKey(),new ActivityProgressInfo()); break; } @@ -914,16 +917,17 @@ public class ActivityLogic { Map poolMap = SBlessingRewardPool.sBlessingRewardPoolMap; int[][] dropItem = new int[1][]; for(Integer count:SBlessingConfig.sBlessingConfig.getCounts()){ - if (count!=activityProgressInfoMap.get(99).getProgrss()){ + if (count!=activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()){ continue; } dropItem = new int[2][]; - dropItem[1] = poolMap.get(activityProgressInfoMap.get(1000+count).getProgrss()).getReward(); + dropItem[1] = poolMap.get(activityProgressInfoMap.get(BlessInfoConfig.COUNT_REWARD_START_ID+count).getProgrss()).getReward(); + break; } int[] reward = poolMap.get(resultRewardId).getReward(); dropItem[0] = reward; CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropItem, BIReason.BLESS_REWARD); - activityMission.updateProgressInfo(99,new ActivityProgressInfo(activityProgressInfoMap.get(99).getProgrss()+1,0)); + activityMission.updateProgressInfo(BlessInfoConfig.BLESS_PROGRESS_STATUS,new ActivityProgressInfo(activityProgressInfoMap.get(99).getProgrss()+1,0)); PlayerInfoProto.blessChooseResponse response = PlayerInfoProto.blessChooseResponse.newBuilder().setReward(drop).setChooseRewardId(resultRewardId).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); } @@ -940,18 +944,16 @@ public class ActivityLogic { MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"活动不可刷新"); return; } -// boolean check = user.getPlayerInfoManager().check(SBlessingConfig.sBlessingConfig.getDailyRefreshTimes(), 1); -// if(!check){ -// MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无刷新次数"); -// return; -// } -// user.getPlayerInfoManager().updateVipPrivilage(SBlessingConfig.sBlessingConfig.getDailyRefreshTimes(),1); + ActivityManager activityManager = user.getActivityManager(); ActivityMission activityMission = activityManager.getActivityMissionMap().get(SBlessingConfig.sBlessingConfig.getActivityId()); - activityMission.initMissionInfo(SBlessingConfig.sBlessingConfig.getActivityId()); - activityMission.updateProgressInfo(99,new ActivityProgressInfo()); - activityMission.updateProgressInfo(100,new ActivityProgressInfo((int)(TimeUtils.now()/1000),0)); - blessInfoInit(activityManager,7); + ActivityProgressInfo tempProgress = new ActivityProgressInfo(); + //数据清空 + for(Map.Entry entry:activityMission.getActivityProgressInfoMap().entrySet()){ + activityMission.updateProgressInfo(entry.getKey(),tempProgress); + } + activityMission = blessInfoInit(activityManager, 7); + activityMission.updateProgressInfo(BlessInfoConfig.LAST_REFRESH_TIME,new ActivityProgressInfo((int)(TimeUtils.now()/1000),0)); PlayerInfoProto.blessRefresh res = PlayerInfoProto.blessRefresh.newBuilder().setReward(getBlessInfoResponse(activityMission).build()).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),res,true); }