公会副本挑战bug修复
parent
fde4068166
commit
72630bb467
|
@ -455,4 +455,24 @@ public interface BIReason {
|
||||||
int TRAINING_UNLOCK_SKILL_COST = 1341;//特训解锁技能消耗
|
int TRAINING_UNLOCK_SKILL_COST = 1341;//特训解锁技能消耗
|
||||||
int GIFT_UP_STAR_COST = 1342;//礼物装备升星
|
int GIFT_UP_STAR_COST = 1342;//礼物装备升星
|
||||||
int GIFT_UP_STAR_GET = 1343;//礼物装备获得
|
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);
|
GuilidManager.saveOrUpdateGuildInfo(guildInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 挑战失败
|
||||||
if(!error.isEmpty()){
|
if(!error.isEmpty()){
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
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());
|
PlayerLogic.getInstance().checkAndUpdate(user, privilege[0],1);
|
||||||
long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue();
|
|
||||||
rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage);
|
// 排行榜更新
|
||||||
}
|
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){
|
if(kill==1){
|
||||||
//如果不是最后一个boss更特权
|
//如果不是最后一个boss更特权
|
||||||
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
||||||
|
@ -295,7 +300,7 @@ public class GuildChallengeLogic {
|
||||||
if(guildMyInfo.getRefreshedBoss().contains(bossId)) {
|
if(guildMyInfo.getRefreshedBoss().contains(bossId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
refreshGuildChallengeStore(user1, config.getPrivilege());
|
refreshGuildChallengeStore(user1, privilege);
|
||||||
guildMyInfo.addRefreshedBoss(bossId);
|
guildMyInfo.addRefreshedBoss(bossId);
|
||||||
guildMyInfo.setLastMonsterId(bossId+1);
|
guildMyInfo.setLastMonsterId(bossId+1);
|
||||||
guildMyInfo.setGuildChallengeDamage(0);
|
guildMyInfo.setGuildChallengeDamage(0);
|
||||||
|
@ -303,23 +308,21 @@ public class GuildChallengeLogic {
|
||||||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
drop = ItemUtil.drop(user, new int[]{config.getReward(),config.getKillReward()}, 1, 0, BIReason.GUILD_BOSS_KILLED_REWARD);
|
||||||
drop = ItemUtil.drop(user, new int[]{config.getReward(),config.getKillReward()}, 1, 0, 1);
|
|
||||||
|
|
||||||
}else{
|
}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;
|
int remainHp;
|
||||||
if(guildInfo.getBossHpRemain()==0){
|
if(guildInfo.getBossHpRemain()==0){
|
||||||
remainHp = 10000;
|
remainHp = 10000;
|
||||||
}else if(guildInfo.getBossHpRemain()==-1){
|
}
|
||||||
|
else if(guildInfo.getBossHpRemain()==-1){
|
||||||
remainHp = -1;
|
remainHp = -1;
|
||||||
}else{
|
}
|
||||||
|
else{
|
||||||
remainHp = (int)(guildInfo.getBossHpRemain()*10000D/config.getMonsterHp());
|
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();
|
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||||
for(Set<Integer> items : members.values()){
|
for(Set<Integer> items : members.values()){
|
||||||
for(Integer sendUid : items){
|
for(Integer sendUid : items){
|
||||||
|
@ -328,46 +331,44 @@ public class GuildChallengeLogic {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ISession isession = OnlineUserManager.getSessionByUid(sendUid);
|
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()
|
Family.GuildChallengeIndication.Builder otherIndication = Family.GuildChallengeIndication.newBuilder()
|
||||||
.setBlood(remainHp)
|
.setBlood(remainHp)
|
||||||
.setCurBoss(guildInfo.getCurrBossId());
|
.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);//需要前端刷新次数
|
otherIndication.setIsRefresh(1);//需要前端刷新次数
|
||||||
}
|
}
|
||||||
if(isession!=null){
|
MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true);
|
||||||
LOGGER.info("向{}发送indication",sendUid);
|
|
||||||
MessageUtil.sendIndicationMessage(isession,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,otherIndication.build(),true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
indication.setIsKill(kill);
|
|
||||||
//伤害排行
|
//伤害排行
|
||||||
Family.GuildChallengeResponse.Builder response = Family.GuildChallengeResponse.newBuilder();
|
Family.GuildChallengeResponse.Builder response = Family.GuildChallengeResponse.newBuilder();
|
||||||
|
if(fightData != null){
|
||||||
response.setDrop(drop);
|
|
||||||
|
|
||||||
if(fightData!=null){
|
|
||||||
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
|
|
||||||
|
|
||||||
response.setFightData(fightData);
|
|
||||||
|
|
||||||
// 记录战报
|
// 记录战报
|
||||||
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.setKill(kill);
|
||||||
|
|
||||||
response.setDamage(damage);
|
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);
|
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);//需要前端刷新次数
|
indication.setIsRefresh(1);//需要前端刷新次数
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +467,7 @@ public class GuildChallengeLogic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Set<ZSetOperations.TypedTuple<String>> rankInfos = rank.getRankByKey(guildId + ":" + bossId, 0, configMap.size());
|
Set<ZSetOperations.TypedTuple<String>> rankInfos = rank.getRankByKey(guildId + ":" + bossId, 0, configMap.size());
|
||||||
if(rankInfos.size()<1){
|
if(rankInfos.isEmpty()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try{
|
try{
|
||||||
|
|
Loading…
Reference in New Issue