From 46257c701e5980963cd010fce099302a3aaab526 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 20 Nov 2020 13:20:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E5=89=AF=E6=9C=ACboss?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/family/GuildChallengeLogic.java | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) 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 fbf6650da..eb2112f4e 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 @@ -221,7 +221,9 @@ public class GuildChallengeLogic { } }else if(checkResult[0]==0){ //怪物保持在第四位 - guildInfo.setBossHpRemain(checkResult[3]==0?10000:checkResult[3]); + if(guildInfo.getCurrBossId()!=configMap.size()){ + guildInfo.setBossHpRemain(checkResult[3]==0?10000:checkResult[3]); + } }else{ error = "战斗异常!"; } @@ -231,25 +233,27 @@ public class GuildChallengeLogic { damage = damageInt; }else{ //扫荡 - int remain = guildInfo.getBossHpRemain() - guildMyInfo.getGuildChallengeDamage(); - if(remain>=0){ - guildInfo.setBossHpRemain(remain); - }else{ - Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); - if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { - guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel() + 1); - RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); - } else { - guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); - } - if(guildInfo.getCurrBossId()!=configMap.size()){ - guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1); - guildInfo.setBossHpRemain(0); + if(guildInfo.getBossHpRemain()!=-1){ + int remain = guildInfo.getBossHpRemain() - guildMyInfo.getGuildChallengeDamage(); + if(remain>=0){ + guildInfo.setBossHpRemain(remain); }else{ - guildInfo.setBossHpRemain(-1); + Map levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class); + if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) { + guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp()); + guildInfo.updateLevel(guildInfo.getLevel() + 1); + RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName())); + } else { + guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp()); + } + if(guildInfo.getCurrBossId()!=configMap.size()){ + guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1); + guildInfo.setBossHpRemain(0); + }else{ + guildInfo.setBossHpRemain(-1); + } + kill=1; } - kill=1; } damage = guildMyInfo.getGuildChallengeDamage(); } @@ -258,12 +262,14 @@ public class GuildChallengeLogic { if(!error.isEmpty()){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - 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(guildInfo.getBossHpRemain()!=-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(kill==1){ //如果不是最后一个boss更特权 - if(guildInfo.getCurrBossId()!=configMap.size()){ + if(guildInfo.getCurrBossId()-1!=configMap.size()){ GuildLogic.sendFamilyBaseUpdateIndication(guildInfo); Map> members = guildInfo.getMembers(); for(Set items : members.values()){