Merge branch 'master_test_hw' of http://60.1.1.230/backend/jieling_server into master_test_hw

back_recharge
zhangshanxue 2020-08-26 15:43:58 +08:00
commit 8257fbe430
2 changed files with 35 additions and 9 deletions

View File

@ -42,7 +42,8 @@ public class GuildMyInfo extends MongoBase {
//公会副本 //公会副本
private int guildChallengeDamage; private int guildChallengeDamage;
private int lastMonsterId; private int lastMonsterId;
//已经使用过刷新的boss
private Set<Integer> refreshedBoss = new HashSet<>();
public void clearOfLevelGuild(){ public void clearOfLevelGuild(){
@ -317,4 +318,14 @@ public class GuildMyInfo extends MongoBase {
this.lastMonsterId = lastMonsterId; this.lastMonsterId = lastMonsterId;
updateString("lastMonsterId",lastMonsterId); updateString("lastMonsterId",lastMonsterId);
} }
public Set<Integer> getRefreshedBoss() {
return refreshedBoss;
}
public void addRefreshedBoss(int bossId) {
refreshedBoss.add(bossId);
updateString("refreshedBoss",refreshedBoss);
}
} }

View File

@ -81,14 +81,19 @@ public class GuildChallengeLogic {
double bossHpRemain = guildInfo.getBossHpRemain(); double bossHpRemain = guildInfo.getBossHpRemain();
GuildMyInfo guildMyInfo = user.getGuildMyInfo(); GuildMyInfo guildMyInfo = user.getGuildMyInfo();
int isRefresh = 0 ;
//先清除特权 //先清除特权
if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){ if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){
for(int clearPrivilege:config.getPrivilege()){ if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId())&&guildMyInfo.getGuildChallengeDamage()!=0){
user.getPlayerInfoManager().clearVipCount(clearPrivilege); for(int clearPrivilege:config.getPrivilege()){
user.getPlayerInfoManager().clearVipCount(clearPrivilege);
}
user.getPlayerInfoManager().removeVipPriviliageId(3013);
user.getStoreManager().removeStoreItemInfo(7,10031);
StoreLogic.sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7));
guildMyInfo.addRefreshedBoss(guildMyInfo.getLastMonsterId());
isRefresh = 1;
} }
user.getPlayerInfoManager().removeVipPriviliageId(3013);
user.getStoreManager().removeStoreItemInfo(7,10031);
StoreLogic.sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7));
} }
int canSweep = 0; int canSweep = 0;
if(guildMyInfo.getLastMonsterId()!=0&&currBossId==guildMyInfo.getLastMonsterId()&&guildMyInfo.getGuildChallengeDamage()>0){ if(guildMyInfo.getLastMonsterId()!=0&&currBossId==guildMyInfo.getLastMonsterId()&&guildMyInfo.getGuildChallengeDamage()>0){
@ -100,6 +105,9 @@ public class GuildChallengeLogic {
.setBlood(bossHpRemain==0?10000:(int)(bossHpRemain*10000/config.getMonsterHp())) .setBlood(bossHpRemain==0?10000:(int)(bossHpRemain*10000/config.getMonsterHp()))
.setBuffTime(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffOverTime():0) .setBuffTime(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffOverTime():0)
.setBuffCount(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffIndex():0) .setBuffCount(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffIndex():0)
.setSweepDamage(guildMyInfo.getGuildChallengeDamage())
.addAllRefreshedBoss(guildMyInfo.getRefreshedBoss())
.setIsRefresh(isRefresh)
.build(); .build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
@ -229,6 +237,13 @@ public class GuildChallengeLogic {
continue; continue;
} }
AyyncWorker worker = new AyyncWorker(UserManager.getUser(sendUid),false,(user1)->{ AyyncWorker worker = new AyyncWorker(UserManager.getUser(sendUid),false,(user1)->{
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
if(guildMyInfo.getGuildChallengeDamage()==0){
return;
}
if(guildMyInfo.getRefreshedBoss().contains(bossId)){
return;
}
int[] refreshPrivilege = config.getPrivilege(); int[] refreshPrivilege = config.getPrivilege();
for(int clearPrivilege:refreshPrivilege){ for(int clearPrivilege:refreshPrivilege){
user1.getPlayerInfoManager().clearVipCount(clearPrivilege); user1.getPlayerInfoManager().clearVipCount(clearPrivilege);
@ -236,9 +251,9 @@ public class GuildChallengeLogic {
user1.getPlayerInfoManager().removeVipPriviliageId(3013); user1.getPlayerInfoManager().removeVipPriviliageId(3013);
user1.getStoreManager().removeStoreItemInfo(7,10031); user1.getStoreManager().removeStoreItemInfo(7,10031);
StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7)); StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7));
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
guildMyInfo.setLastMonsterId(bossId+1); guildMyInfo.setLastMonsterId(bossId+1);
guildMyInfo.setGuildChallengeDamage(0); guildMyInfo.setGuildChallengeDamage(0);
guildMyInfo.addRefreshedBoss(bossId);
}); });
ProtocolsManager.getInstance().updateAyncWorker(worker); ProtocolsManager.getInstance().updateAyncWorker(worker);
} }
@ -256,8 +271,6 @@ public class GuildChallengeLogic {
GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid); GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid);
indication.setIsKill(kill); indication.setIsKill(kill);
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
//伤害排行 //伤害排行
AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType()); AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType());
@ -279,6 +292,8 @@ public class GuildChallengeLogic {
PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1); PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
} }
/** /**