公会副本修改

lvxinran 2020-09-10 15:10:04 +08:00
parent d4ee477baa
commit 656e089d0f
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 lastMonsterId;
//已经使用过刷新的boss
private Set<Integer> refreshedBoss = new HashSet<>();
public void clearOfLevelGuild(){
@ -317,4 +318,14 @@ public class GuildMyInfo extends MongoBase {
this.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();
GuildMyInfo guildMyInfo = user.getGuildMyInfo();
int isRefresh = 0 ;
//先清除特权
if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){
for(int clearPrivilege:config.getPrivilege()){
user.getPlayerInfoManager().clearVipCount(clearPrivilege);
if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId())&&guildMyInfo.getGuildChallengeDamage()!=0){
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;
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()))
.setBuffTime(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffOverTime():0)
.setBuffCount(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffIndex():0)
.setSweepDamage(guildMyInfo.getGuildChallengeDamage())
.addAllRefreshedBoss(guildMyInfo.getRefreshedBoss())
.setIsRefresh(isRefresh)
.build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
@ -229,6 +237,13 @@ public class GuildChallengeLogic {
continue;
}
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();
for(int clearPrivilege:refreshPrivilege){
user1.getPlayerInfoManager().clearVipCount(clearPrivilege);
@ -236,9 +251,9 @@ public class GuildChallengeLogic {
user1.getPlayerInfoManager().removeVipPriviliageId(3013);
user1.getStoreManager().removeStoreItemInfo(7,10031);
StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7));
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
guildMyInfo.setLastMonsterId(bossId+1);
guildMyInfo.setGuildChallengeDamage(0);
guildMyInfo.addRefreshedBoss(bossId);
});
ProtocolsManager.getInstance().updateAyncWorker(worker);
}
@ -256,8 +271,6 @@ public class GuildChallengeLogic {
GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid);
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());
@ -279,6 +292,8 @@ public class GuildChallengeLogic {
PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
}
/**