工会副本修改
parent
171bbd248d
commit
52cbb01232
|
@ -87,9 +87,9 @@ public class GuildChallengeLogic {
|
||||||
int size = STableManager.getConfig(SGuildCheckpointConfig.class).size();
|
int size = STableManager.getConfig(SGuildCheckpointConfig.class).size();
|
||||||
if(guildInfo.getBossHpRemain()==-1){
|
if(guildInfo.getBossHpRemain()==-1){
|
||||||
if(size>currBossId){
|
if(size>currBossId){
|
||||||
currBossId++;
|
|
||||||
guildInfo.setCurrBossId(currBossId+1);
|
guildInfo.setCurrBossId(currBossId+1);
|
||||||
guildInfo.setBossHpRemain(0);
|
guildInfo.setBossHpRemain(0);
|
||||||
|
currBossId++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,22 +203,24 @@ public class GuildChallengeLogic {
|
||||||
int damageInt = checkResult[1];
|
int damageInt = checkResult[1];
|
||||||
|
|
||||||
if(checkResult[0]==1) {
|
if(checkResult[0]==1) {
|
||||||
kill = 1;
|
if(guildInfo.getBossHpRemain()!=-1){
|
||||||
//重置boss血量
|
kill = 1;
|
||||||
if(guildInfo.getCurrBossId()!=configMap.size()){
|
//重置boss血量
|
||||||
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
|
if(guildInfo.getCurrBossId()!=configMap.size()){
|
||||||
guildInfo.setBossHpRemain(0);
|
guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1);
|
||||||
}else{
|
guildInfo.setBossHpRemain(0);
|
||||||
guildInfo.setBossHpRemain(-1);
|
}else{
|
||||||
}
|
guildInfo.setBossHpRemain(-1);
|
||||||
//加公会经验
|
}
|
||||||
Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
|
//加公会经验
|
||||||
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
|
Map<Integer, SGuildLevelConfig> levelConfigMap = STableManager.getConfig(SGuildLevelConfig.class);
|
||||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
|
if (guildInfo.getExp() + config.getLegionExp() >= levelConfigMap.get(guildInfo.getLevel()).getExp()) {
|
||||||
guildInfo.updateLevel(guildInfo.getLevel() + 1);
|
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp() - levelConfigMap.get(guildInfo.getLevel()).getExp());
|
||||||
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
|
guildInfo.updateLevel(guildInfo.getLevel() + 1);
|
||||||
} else {
|
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_INFO, "", String.valueOf(guildInfo.getId()), new GuildCache(GameApplication.serverId, guildInfo.getIcon(), guildInfo.getLevel(), guildInfo.getName()));
|
||||||
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
|
} else {
|
||||||
|
guildInfo.updateExp(guildInfo.getExp() + config.getLegionExp());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}else if(checkResult[0]==0){
|
}else if(checkResult[0]==0){
|
||||||
//怪物保持在第四位
|
//怪物保持在第四位
|
||||||
|
@ -267,44 +269,43 @@ public class GuildChallengeLogic {
|
||||||
if(!error.isEmpty()){
|
if(!error.isEmpty()){
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
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());
|
AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType());
|
||||||
long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue();
|
long score = Double.valueOf(rank.getScoreById(user.getId(), guildId+":"+bossId)).longValue();
|
||||||
rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage);
|
rank.addRank(uid,guildId+":"+bossId,score==-1?damage:score+damage);
|
||||||
}
|
}
|
||||||
if(kill==1){
|
if(kill==1){
|
||||||
//如果不是最后一个boss更特权
|
//如果不是最后一个boss更特权
|
||||||
if(guildInfo.getCurrBossId()-1!=configMap.size()){
|
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
||||||
GuildLogic.sendFamilyBaseUpdateIndication(guildInfo);
|
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){
|
if(!OnlineUserManager.sessionMap.containsKey(sendUid)){
|
||||||
if(!OnlineUserManager.sessionMap.containsKey(sendUid)){
|
continue;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
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 runnable = () -> sendRankReward(guildId,bossId);
|
||||||
runnable.run();
|
runnable.run();
|
||||||
|
|
Loading…
Reference in New Issue