工会副本修改
parent
171bbd248d
commit
52cbb01232
|
@ -87,9 +87,9 @@ public class GuildChallengeLogic {
|
|||
int size = STableManager.getConfig(SGuildCheckpointConfig.class).size();
|
||||
if(guildInfo.getBossHpRemain()==-1){
|
||||
if(size>currBossId){
|
||||
currBossId++;
|
||||
guildInfo.setCurrBossId(currBossId+1);
|
||||
guildInfo.setBossHpRemain(0);
|
||||
currBossId++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -203,22 +203,24 @@ public class GuildChallengeLogic {
|
|||
int damageInt = checkResult[1];
|
||||
|
||||
if(checkResult[0]==1) {
|
||||
kill = 1;
|
||||
//重置boss血量
|
||||
if(guildInfo.getCurrBossId()!=configMap.size()){
|
||||
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
|
||||
guildInfo.setBossHpRemain(0);
|
||||
}else{
|
||||
guildInfo.setBossHpRemain(-1);
|
||||
}
|
||||
//加公会经验
|
||||
Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
|
||||
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
|
||||
guildInfo.updateLevel(guildInfo.getLevel() + 1);
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
|
||||
} else {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
|
||||
if(guildInfo.getBossHpRemain()!=-1){
|
||||
kill = 1;
|
||||
//重置boss血量
|
||||
if(guildInfo.getCurrBossId()!=configMap.size()){
|
||||
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
|
||||
guildInfo.setBossHpRemain(0);
|
||||
}else{
|
||||
guildInfo.setBossHpRemain(-1);
|
||||
}
|
||||
//加公会经验
|
||||
Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
|
||||
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
|
||||
guildInfo.updateLevel(guildInfo.getLevel() + 1);
|
||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
|
||||
} else {
|
||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
|
||||
}
|
||||
}
|
||||
}else if(checkResult[0]==0){
|
||||
//怪物保持在第四位
|
||||
|
@ -267,44 +269,43 @@ public class GuildChallengeLogic {
|
|||
if(!error.isEmpty()){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
if(guildInfo.getBossHpRemain()!=-1){
|
||||
if(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更特权
|
||||
if(guildInfo.getCurrBossId()-1!=configMap.size()){
|
||||
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Set<Integer> items : members.values()){
|
||||
for(Integer sendUid : items){
|
||||
if(!OnlineUserManager.sessionMap.containsKey(sendUid)){
|
||||
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);
|
||||
}
|
||||
user1.getPlayerInfoManager().removeVipPriviliageId(3013);
|
||||
user1.getStoreManager().removeStoreItemInfo(7,10031);
|
||||
StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7));
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
||||
Map<Integer, Set<Integer>> members = guildInfo.getMembers();
|
||||
for(Set<Integer> items : members.values()){
|
||||
for(Integer sendUid : items){
|
||||
if(!OnlineUserManager.sessionMap.containsKey(sendUid)){
|
||||
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);
|
||||
}
|
||||
user1.getPlayerInfoManager().removeVipPriviliageId(3013);
|
||||
user1.getStoreManager().removeStoreItemInfo(7,10031);
|
||||
StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7));
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||
}
|
||||
}
|
||||
|
||||
//异步发奖
|
||||
Runnable runnable = () -> sendRankReward(guildId,bossId);
|
||||
runnable.run();
|
||||
|
|
Loading…
Reference in New Issue