增加怪物是否被击杀

back_recharge
wangyuan 2019-05-16 20:35:04 +08:00
parent cdaf854d55
commit 03468ddcfc
1 changed files with 23 additions and 11 deletions

View File

@ -528,6 +528,10 @@ public class CombatLogic {
return;
}
AdventureBoss adventureBoss = RedisUtil.getInstence().getMapEntry(RedisKey.ADVENTRUEN_BOSS_INFO, "", bossId, AdventureBoss.class);
if(adventureBoss == null){
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_BOSS_CHALLENGE_RESPONSE_VALUE,"boss had killed");
return;
}
int bossGroupId = adventureBoss.getBossGroupId();
Map<Integer,List<Integer>> hps = new HashMap<>(1);
hps.put(0,adventureBoss.getRemainHps());
@ -549,19 +553,27 @@ public class CombatLogic {
builder.setFightData(build);
}
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(adventureBoss.getArenaId());
int[] checkResult = CheckFight.getInstance().checkFight(seed, sAdventureConfig.getInvasionBossTime(), getFightData, getOptionData);
adventureManager.setDayChallengeTimes(dayChallengeTimes);
int totalHurt = updateBossAndGetHurtForFight(checkResult, adventureBoss);
int fightResult = checkResult[0];
//发送击杀boss奖励和发现者奖励
if(fightResult == 1){
sendRewardOfBossKilled(adventureBoss.getFindUserId(),uid,bossGroupId,adventureBoss.getArenaId(),adventureBoss.getArenaLevel());
RedisUtil.getInstence().removeMapEntrys(RedisKey.ADVENTRUEN_BOSS_INFO,"",bossId);
}else{
RedisUtil.getInstence().putMapEntry(RedisKey.ADVENTRUEN_BOSS_INFO,"",Integer.toString(uid),adventureBoss);
int totalHurt=0;
int fightResult=0;
int i=0;
for(;i<fightTimes;i++){
int[] checkResult = CheckFight.getInstance().checkFight(seed, sAdventureConfig.getInvasionBossTime(), getFightData, getOptionData);
totalHurt+= updateBossAndGetHurtForFight(checkResult, adventureBoss);
fightResult = checkResult[0];
//发送击杀boss奖励和发现者奖励
if(fightResult == 1){
sendRewardOfBossKilled(adventureBoss.getFindUserId(),uid,bossGroupId,adventureBoss.getArenaId(),adventureBoss.getArenaLevel());
RedisUtil.getInstence().removeMapEntrys(RedisKey.ADVENTRUEN_BOSS_INFO,"",bossId);
break;
}
}
adventureManager.setDayChallengeTimes(dayChallengeTimes+i);
RedisUtil.getInstence().putMapEntry(RedisKey.ADVENTRUEN_BOSS_INFO,"",Integer.toString(uid),adventureBoss);
RedisUtil.getInstence().incrementZsetScore(RedisKey.ADVENTRUEN_BOSS_RANK,"",Integer.toString(uid),totalHurt);
FightInfoProto.AdventurenBossChallengeResponse build = builder.setHurtNums(totalHurt).build();
FightInfoProto.AdventurenBossChallengeResponse build = builder.setHurtNums(totalHurt)
.setFightResult(totalHurt)
.setConsumeFightTimes(i)
.build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_BOSS_CHALLENGE_RESPONSE_VALUE,build,true);
}