公会副本挑战bug修复
parent
fde4068166
commit
72630bb467
|
@ -455,4 +455,24 @@ public interface BIReason {
|
|||
int TRAINING_UNLOCK_SKILL_COST = 1341;//特训解锁技能消耗
|
||||
int GIFT_UP_STAR_COST = 1342;//礼物装备升星
|
||||
int GIFT_UP_STAR_GET = 1343;//礼物装备获得
|
||||
int ARENA_UP_LV_REWARD = 1344;//竞技场段位升级奖励
|
||||
int SOLDIER_UP_LV = 1345;//兵力升级
|
||||
int SOLDIER_SPEED_UP_LV = 1346;//兵力加速升级
|
||||
int SOLDIER_LOTTERY_REWARD = 1347;//小兵招募获得
|
||||
int SOLDIER_LOTTERY_COST = 1348;//小兵招募消耗
|
||||
int SOLDIER_DISMISS_REWARD = 1349;//小兵遣散获得
|
||||
int SOLDIER_MIAN_LEVEL_REWARD = 1350;//小兵主线奖励
|
||||
int COMPARE_NUM_GAME_REWARD = 1351;//比数小游戏挂机奖励
|
||||
int MONEY_BUY_GOOD_COST = 1352;//现金点卷购买礼包消耗
|
||||
|
||||
int EVERYDAY_DISCOUNT_GET_REFRESH_COUNT = 1353;//天天折扣获得刷新次数
|
||||
int EVERYDAY_DISCOUNT_COST_REFRESH_COUNT = 1354;//天天折扣刷新消耗
|
||||
int EVERYDAY_DISCOUNT_GET_MISSION_COUNT = 1355;//天天折扣获得档位次数
|
||||
int EVERYDAY_DISCOUNT_COST_MISSION_COUNT = 1356;//天天折扣消耗档位次数
|
||||
int EVERYDAY_DISCOUNT_CLEAN_MISSION_COUNT = 1357;//天天折扣清零次数
|
||||
|
||||
int TRAINGING_SPEED_ITEM_COST = 1358;//特训加速道具消耗
|
||||
|
||||
int GUILD_BOSS_KILLED_REWARD = 1359;//公会boss击杀奖励
|
||||
int GUILD_BOSS_CHALLENGE_REWARD = 1360;//公会boss挑战奖励
|
||||
}
|
|
@ -262,16 +262,21 @@ public class GuildChallengeLogic {
|
|||
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||
}
|
||||
}
|
||||
// 挑战失败
|
||||
if(!error.isEmpty()){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
if(guildInfo.getBossHpRemain()!=-1||kill==1){
|
||||
if(damage!=0){
|
||||
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);
|
||||
}
|
||||
|
||||
// 消耗特权次数
|
||||
PlayerLogic.getInstance().checkAndUpdate(user, privilege[0],1);
|
||||
|
||||
// 排行榜更新
|
||||
if(damage!=0 && (guildInfo.getBossHpRemain()!=-1 || kill==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更特权
|
||||
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
||||
|
@ -295,7 +300,7 @@ public class GuildChallengeLogic {
|
|||
if(guildMyInfo.getRefreshedBoss().contains(bossId)) {
|
||||
return;
|
||||
}
|
||||
refreshGuildChallengeStore(user1, config.getPrivilege());
|
||||
refreshGuildChallengeStore(user1, privilege);
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
|
@ -303,23 +308,21 @@ public class GuildChallengeLogic {
|
|||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||
}
|
||||
}
|
||||
|
||||
drop = ItemUtil.drop(user, new int[]{config.getReward(),config.getKillReward()}, 1, 0, 1);
|
||||
|
||||
drop = ItemUtil.drop(user, new int[]{config.getReward(),config.getKillReward()}, 1, 0, BIReason.GUILD_BOSS_KILLED_REWARD);
|
||||
}else{
|
||||
drop = ItemUtil.drop(user, new int[]{config.getReward()}, 1, 0, 1);
|
||||
drop = ItemUtil.drop(user, new int[]{config.getReward()}, 1, 0, BIReason.GUILD_BOSS_CHALLENGE_REWARD);
|
||||
}
|
||||
|
||||
int remainHp;
|
||||
if(guildInfo.getBossHpRemain()==0){
|
||||
remainHp = 10000;
|
||||
}else if(guildInfo.getBossHpRemain()==-1){
|
||||
}
|
||||
else if(guildInfo.getBossHpRemain()==-1){
|
||||
remainHp = -1;
|
||||
}else{
|
||||
}
|
||||
else{
|
||||
remainHp = (int)(guildInfo.getBossHpRemain()*10000D/config.getMonsterHp());
|
||||
}
|
||||
Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder()
|
||||
.setBlood(remainHp)
|
||||
.setCurBoss(guildInfo.getCurrBossId());
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Set<Integer> items : members.values()){
|
||||
for(Integer sendUid : items){
|
||||
|
@ -328,46 +331,44 @@ public class GuildChallengeLogic {
|
|||
continue;
|
||||
}
|
||||
ISession isession = OnlineUserManager.getSessionByUid(sendUid);
|
||||
if(isession==null){
|
||||
continue;
|
||||
}
|
||||
User userByRpc = PlayerLogic.getInstance().getUserByRpc(sendUid);
|
||||
if (userByRpc == null){
|
||||
continue;
|
||||
}
|
||||
Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder()
|
||||
.setBlood(remainHp)
|
||||
.setCurBoss(guildInfo.getCurrBossId());
|
||||
if(kill==1&&!PlayerLogic.getInstance().getUserByRpc(sendUid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){
|
||||
if(kill == 1 && !userByRpc.getGuildMyInfo().getRefreshedBoss().contains(bossId) && guildInfo.getBossHpRemain()!=-1){
|
||||
otherIndication.setIsRefresh(1);//需要前端刷新次数
|
||||
}
|
||||
if(isession!=null){
|
||||
LOGGER.info("向{}发送indication",sendUid);
|
||||
MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true);
|
||||
}
|
||||
MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true);
|
||||
}
|
||||
}
|
||||
indication.setIsKill(kill);
|
||||
//伤害排行
|
||||
Family.GuildChallengeResponse.Builder response = Family.GuildChallengeResponse.newBuilder();
|
||||
|
||||
response.setDrop(drop);
|
||||
|
||||
if(fightData!=null){
|
||||
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
|
||||
|
||||
response.setFightData(fightData);
|
||||
|
||||
if(fightData != null){
|
||||
// 记录战报
|
||||
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||
// FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||
response.setFightData(fightData);
|
||||
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
|
||||
}
|
||||
|
||||
response.setDrop(drop);
|
||||
response.setKill(kill);
|
||||
|
||||
response.setDamage(damage);
|
||||
|
||||
PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1);
|
||||
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GUILD_BOSS_ROOM,1);
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
if(kill==1&&!UserManager.getUser(uid).getGuildMyInfo().getRefreshedBoss().contains(bossId)&&guildInfo.getBossHpRemain()!=-1){
|
||||
// 任务更新
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GUILD_BOSS_ROOM,1);
|
||||
// 推送
|
||||
Family.GuildChallengeIndication.Builder indication = Family.GuildChallengeIndication.newBuilder();
|
||||
indication.setBlood(remainHp);
|
||||
indication.setCurBoss(guildInfo.getCurrBossId());
|
||||
indication.setIsKill(kill);
|
||||
if(kill==1 && !UserManager.getUser(uid).getGuildMyInfo().getRefreshedBoss().contains(bossId) && guildInfo.getBossHpRemain()!=-1){
|
||||
indication.setIsRefresh(1);//需要前端刷新次数
|
||||
}
|
||||
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
||||
}
|
||||
|
||||
|
@ -466,7 +467,7 @@ public class GuildChallengeLogic {
|
|||
return;
|
||||
}
|
||||
Set<ZSetOperations.TypedTuple<String>> rankInfos = rank.getRankByKey(guildId + ":" + bossId, 0, configMap.size());
|
||||
if(rankInfos.size()<1){
|
||||
if(rankInfos.isEmpty()){
|
||||
return;
|
||||
}
|
||||
try{
|
||||
|
|
Loading…
Reference in New Issue