diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index da01083bd..8e9807578 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -6,6 +6,8 @@ import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.handler.map.TrialInfo; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.PlayerManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mail.MailLogic; @@ -35,31 +37,67 @@ class ExpectRankActivity extends AbstractActivity { super(id); } + + @Override + public void onActivityStart() throws Exception { + + + } + + @Override + public void initActivity(User user) throws Exception { + //PlayerManager player = user.getPlayerInfoManager(); + if (SGlobalActivity.getsGlobalActivityMap().get(id).getType() != 70){ + return; + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + if (null == activityMission) { + return; + } + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + + MapManager mapManager = user.getMapManager(); + TrialInfo trialInfo = mapManager.getTrialInfo(); + SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).stream().forEach(n -> + { + if (trialInfo.getFloor() >= n.getValues()[1][0]) { + ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(n.getId(), null); + if (null == activityProgressInfo) + return; + activityProgressInfo.setState(1); + } + } + ); + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); + } + @Override void updateProgressWithUser(User user, ActivityMission activityMission, int count) { - if(SGlobalActivity.getsGlobalActivityMap().get(id).getType() == 70){ + if (SGlobalActivity.getsGlobalActivityMap().get(id).getType() == 70) { //森罗幻境特殊处理 - if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){ + if (SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking() == 1) { MapManager mapManager = user.getMapManager(); TrialInfo trialInfo = mapManager.getTrialInfo(); //排除神秘关卡 - if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ + if (trialInfo.getFloor() < 10000 && trialInfo.getFloor() > activityMission.getV()) { activityMission.setV(trialInfo.getFloor()); - }else if(trialInfo.getFloor()>10000){ - activityMission.setV(trialInfo.getFloor()-10000); + } else if (trialInfo.getFloor() > 10000) { + activityMission.setV(trialInfo.getFloor() - 10000); } - RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); - }else{ + RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(), String.valueOf(id), activityMission.getV()); + } else { activityMission.setV(count + activityMission.getV()); } - }else { + } else { activityMission.setV(count + activityMission.getV()); - if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){ + if (SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking() == 1) { // String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(id), false); // RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), activityMission.getV()); - RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); + RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(), String.valueOf(id), activityMission.getV()); } } } @@ -100,7 +138,7 @@ class ExpectRankActivity extends AbstractActivity { User user = UserManager.getUser(session.getUid()); int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV(); if (value < values[1][0]) { - // MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); + // MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); return false; } return true; @@ -112,28 +150,27 @@ class ExpectRankActivity extends AbstractActivity { ThreadManager.getScheduledExecutor().execute(this::sendReward); } - protected void sendReward(){ - Thread.currentThread().setName("sendReward-Activity-"+id); + protected void sendReward() { + Thread.currentThread().setName("sendReward-Activity-" + id); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - if(sGlobalActivity.getOpenRanking()==0){ + if (sGlobalActivity.getOpenRanking() == 0) { return; } List sActivityRankingReward = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); - if(null==sActivityRankingReward) { + if (null == sActivityRankingReward) { return; } int maxRank = 0; int maxRewardId = 0; Map rank2miss = new HashMap<>(); for (SActivityRankingReward sActivityRankingReward1 : sActivityRankingReward) { - if(sActivityRankingReward1.getMaxRank()==-1){ - maxRank =-1; + if (sActivityRankingReward1.getMaxRank() == -1) { + maxRank = -1; maxRewardId = sActivityRankingReward1.getId(); continue; } - if(maxRank!=-1) - { + if (maxRank != -1) { maxRank = Math.max(maxRank, sActivityRankingReward1.getMaxRank()); } @@ -184,15 +221,15 @@ class ExpectRankActivity extends AbstractActivity { //checkAndUpdate value SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId); //sendmail - String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); - String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(),ranking},new int[]{1,0},"#"); + String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()}, new int[]{1}, "#"); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(), ranking}, new int[]{1, 0}, "#"); String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward()); MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); }); ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); rank++; - }catch (Exception e) { - LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功 e={}",uid,id,e); + } catch (Exception e) { + LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功 e={}", uid, id, e); e.printStackTrace(); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java index 9fa81d576..17f33504d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ChallengeLogic.java @@ -121,7 +121,8 @@ public class ChallengeLogic { } ratio = percent[1]; } - builder.setLossBlood((long)lossBlood); + LOGGER.info("输了 lossBlood:"+lossBlood); + builder.setLossBloodOrTimes((long)lossBlood); } else if (type == 2) {//回合数 long times = result[1];//回合数 for (int[] percent : reward1) { @@ -130,6 +131,8 @@ public class ChallengeLogic { } ratio = percent[1]; } + builder.setLossBloodOrTimes(times); + LOGGER.info("输了 回合数 times :"+times); } LOGGER.info("challengeHandler ====>id:{},ratio:{}", sChallengeConfig.getId(), ratio); for (int[] fix : sChallengeConfig.getPassReward()) { @@ -198,10 +201,10 @@ public class ChallengeLogic { int endlessNewReplicaLexel = user.getPlayerInfoManager().getEndlessNewReplica(); int treasureReplicaLexel = user.getPlayerInfoManager().getTreasureReplica(); //限制 - boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sChallengeConfig.getPivilegeID()[1], 1); + /* boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sChallengeConfig.getPivilegeID()[1], 1); if (!consume) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } + }*/ Map comDropMap = new HashMap<>(); if (model == 2) { //扫荡