From 41d73df618eb52ed6e5ede7b847f3d31981f940e Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 19 Aug 2020 09:50:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E5=89=AF=E6=9C=AC=E6=8E=92?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/redis/RedisKey.java | 2 ++ .../logic/family/GuildChallengeLogic.java | 23 +++++++++++++------ .../com/ljsd/jieling/logic/rank/RankEnum.java | 2 +- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index cd9d04282..f12d3e4cc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -263,6 +263,8 @@ public class RedisKey { public static final String SITUATION_RANK = "SITUATION_RANK"; + public static final String GUILD_CHALLENGE_RANK = "GUILD_CHALLENGE_RANK"; + public static final String DEATH_PAHT_TOTAL_CHALLENGE_COUNT = "DEATH_PAHT_TOTAL_CHALLENGE_COUNT"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index cf400c0ad..cb133a860 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.family; +import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.logic.dao.GuilidManager; @@ -10,6 +11,9 @@ import com.ljsd.jieling.logic.fight.FightDispatcher; import com.ljsd.jieling.logic.fight.GameFightType; import com.ljsd.jieling.logic.fight.PVEFightEvent; import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.rank.RankContext; +import com.ljsd.jieling.logic.rank.RankEnum; +import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.Family; @@ -87,6 +91,7 @@ public class GuildChallengeLogic { CommonProto.Drop.Builder drop = null; CommonProto.FightData fightData = null; int kill = 0; + long damage = 0; synchronized (lockMap.get(guildId)){ GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId); if(guildInfo.getCurrBossId()!=bossId||guildInfo.getBossHpRemain()<=0){ @@ -94,33 +99,37 @@ public class GuildChallengeLogic { }else{ SGuildCheckpointConfig config = STableManager.getConfig(SGuildCheckpointConfig.class).get(bossId); - if(type==0){ PVEFightEvent pveFightEvent = new PVEFightEvent(uid, 1, 10, "", GameFightType.DailyChallenge, config.getMonsterId(), 3); FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent); fightData = fightResult.getFightData(); int[] checkResult = fightResult.getCheckResult(); - int damage = checkResult[1]; + int damageInt = checkResult[1]; if(checkResult[0]==1){ kill = 1; guildInfo.setCurrBossId(guildInfo.getCurrBossId()+1); } - user.getGuildMyInfo().setGuildChallengeDamage(damage); + user.getGuildMyInfo().setGuildChallengeDamage(damageInt); //记录血量 - guildInfo.setBossHpRemain(guildInfo.getBossHpRemain()-damage); + guildInfo.setBossHpRemain(guildInfo.getBossHpRemain()-damageInt); + damage = damageInt; }else{ //扫荡 guildInfo.setBossHpRemain(guildInfo.getBossHpRemain()-user.getGuildMyInfo().getGuildChallengeDamage()); + damage = user.getGuildMyInfo().getGuildChallengeDamage(); } - - - drop = ItemUtil.drop(user, new int[]{config.getReward()}, 1, 0, 1); } } + + //伤害排行 + AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType()); + long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue(); + rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage); + if(!error.isEmpty()){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java index 517eb41fb..8d06f20d0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/RankEnum.java @@ -33,7 +33,7 @@ public enum RankEnum { EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new),//param1:活动进度 param2:无 param3:无 FORCE_CURR_RANK(22,RedisKey.FORCE_CURR_RANK,ForceCurrRank::new),//param1:人物战力 param2:无 param3:无 SITUATION_RANK(24,RedisKey.SITUATION_RANK,SituationRank::new),//param1:通关次数 param2:无 param3:无 - + GUILD_CHALLENGE_RANK(25,RedisKey.GUILD_CHALLENGE_RANK,GuildChallengeRank::new),//param1:伤害 param2:无 param3:无 ; private int type;