From 520950456d27fa0e164f72b97dabdbe3d4f80803 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 28 Oct 2019 11:35:35 +0800 Subject: [PATCH 1/2] fix rank --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 104f5cd62..332daca22 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2154,7 +2154,7 @@ public class MapLogic { .setUid(uidTmp) .setLevel(playerInfoManager.getLevel()) .setName(playerInfoManager.getNickName()) - .setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(score).getId()) + .setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(score).getVirtureId()) .setHead(playerInfoManager.getHead()) .setRank(rank++) .setTotalForce(userTmp.getPlayerInfoManager().getMaxForce()) @@ -2178,6 +2178,7 @@ public class MapLogic { int uid = session.getUid(); for(CommonProto.MainLevelRankInfo.Builder builder1 : mainLevelRankInfoList){ builder1.setRank(rank++); + builder1.setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(builder1.getFightId()).getId()); builder.addMainLevelRankInfo(builder1.build()); if(builder1.getUid() == uid){ myRank = builder1.getRank(); From 452d1a84b9c0c6f4585e3b27e9cfc6dc8d30fbef Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Thu, 28 Nov 2019 11:46:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=B4=BB=E5=8A=A8=20?= =?UTF-8?q?=E8=A1=A5=E5=8F=91=E5=85=A8=E9=83=A8=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/AbstractActivity.java | 84 ++++++++++--------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java index d6c8fe7fa..dc90a71f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/AbstractActivity.java @@ -59,9 +59,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { /** * 子类重写 - * - * @param user - * @throws Exception */ @Override public void onResume(User user) throws Exception { @@ -73,8 +70,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { /** * 活动期间活动进度会进行多次 领完所有活动奖励重置 - * @param user - * @throws Exception */ public void reSetValue(User user) throws Exception { ActivityManager activityManager = user.getActivityManager(); @@ -143,13 +138,13 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { //up miss int[][] reward = sActivityRewardConfig.getReward(); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); - checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId); + checkAndSetProgress(activityMission, activityProgressInfo, missionId); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if(null!=sGlobalActivity&&ActivityLogic.getInstance().checkActivityMissionFinishAndTaked(id,activityMission)&&sGlobalActivity.getResetGrade()==1){ + if (null != sGlobalActivity && ActivityLogic.getInstance().checkActivityMissionFinishAndTaked(id, activityMission) && sGlobalActivity.getResetGrade() == 1) { reSetValue(user); ActivityMission newmiss = user.getActivityManager().getActivityMissionMap().get(id); - sendActivityProgress(session, newmiss,null); - }else { + sendActivityProgress(session, newmiss, null); + } else { sendActivityProgress(session, activityMission, Collections.singleton(missionId)); } KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId); @@ -158,32 +153,49 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { return true; } + /** + * 领取所有活动奖励 有的活动是重置类型 迭代处理 + */ void takeAllReward(ISession session) throws Exception { User user = UserManager.getUser(session.getUid()); - List misssIds = new LinkedList<>(); + List itemArrs = new LinkedList<>(); + getAllMissRewards(user, session, itemArrs); + if (itemArrs.size() == 0) + return; + SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); + if (null == sGlobalActivity) + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalActivity.getSesc()}); + String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()}); + String mailReward = ItemUtil.getMailReward(itemArrs); + int nowTime = (int) (TimeUtils.now() / 1000); + MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + } + private void getAllMissRewards(User user, ISession session, List itemAttrs) throws Exception { + List misssIds = new LinkedList<>(); List cfgs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); if (null == cfgs) { - return; + throw new ErrorCodeException(ErrorCode.CFG_NULL); } for (SActivityRewardConfig sActivityRewardConfig : cfgs) { misssIds.add(sActivityRewardConfig.getId()); } + //check state + ActivityManager activityManager = user.getActivityManager(); + ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); + if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) { + return; + } - List itemArrs = new LinkedList<>(); + boolean isTake = false; for (Integer missionId : misssIds) { //check cfg SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId); if (sActivityRewardConfig == null || sActivityRewardConfig.getActivityId() != id) { continue; } - //check state - ActivityManager activityManager = user.getActivityManager(); - ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); - if (activityMission == null || activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) { - continue; - } ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId); if (activityProgressInfo == null || activityProgressInfo.getState() == ActivityType.HAD_TAKED) { continue; @@ -194,22 +206,25 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { } //up miss int[][] reward = sActivityRewardConfig.getReward(); - itemArrs.add(reward); + itemAttrs.add(reward); + isTake = true; } - if(itemArrs.size()==0) + if (!isTake) { return; + } SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if (null == sGlobalActivity) - return; - String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalActivity.getSesc()}); - String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalActivity.getSesc()}); - String mailReward = ItemUtil.getMailReward(itemArrs); - int nowTime = (int) (TimeUtils.now() / 1000); - MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + if (null != sGlobalActivity && sGlobalActivity.getResetGrade() == 1) { + reSetValue(user); + getAllMissRewards(user, session, itemAttrs); + } + } - void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, SActivityRewardConfig sActivityRewardConfig, int missionId) { + /** + * 领奖后更新奖励进度 + */ + private void checkAndSetProgress(ActivityMission activityMission, ActivityProgressInfo activityProgressInfo, int missionId) { activityProgressInfo.setState(ActivityType.HAD_TAKED); activityMission.updateProgressInfo(missionId, activityProgressInfo); } @@ -222,10 +237,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { int[][] values = sActivityRewardConfig.getValues(); int missionProgress = activityProgressInfo.getProgrss(); - if (missionProgress < values[0][0]) { - return false; - } - return true; + return missionProgress < values[0][0]; } /** @@ -235,10 +247,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getValue(); - if (value < values[0][0]) { - return false; - } - return true; + return value >= values[0][0]; } void onActivityEndSelfWithDealReward(User user) throws Exception { @@ -250,7 +259,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { /** - * 绝对时间和相对开服结束回调 + * 绝对时间和相对开服结束回调 */ @Override public void onActivityEnd() throws Exception { @@ -264,7 +273,6 @@ public abstract class AbstractActivity implements IActivity, IEventHandler { public void onActivityEndOnMySelf(User user) throws Exception { - } /**