diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 226c93625..110369de8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -114,6 +114,8 @@ public class RedisKey { public static final String FAMILY_ID = "FAMILY_ID"; public static final String FAMILY_FIGHT = "FAMILY_FIGHT" ; + public static final String FAMILY_FIGHT_RANK = "FAMILY_FIGHT_RANK"; + public static final String OPERATE_FAMILY = "OPERATE_FAMILY"; public static final String OPERATE_FAMILY_APPLY = "OPERATE_FAMILY_APPLY"; public static final String OPERATE_FAMILY_APPLY_JOIN = "OPERATE_FAMILY_APPLY_JOIN"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java index 076e52332..cbee9021e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyDefendInfoHandler.java @@ -17,7 +17,7 @@ public class FamilyDefendInfoHandler extends BaseHandler { @Override public void process(ISession iSession, PacketNetData netData) throws Exception { - byte[] bytes = netData.parseClientProtoNetData(); - GuildLogic.viewDefendInfo(iSession,MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_RESPONSE); + + GuildLogic.viewDefendInfo(iSession,MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_RESPONSE); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightInfoHandler.java new file mode 100644 index 000000000..90ba47b6a --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightInfoHandler.java @@ -0,0 +1,21 @@ +package com.ljsd.jieling.handler.family; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.family.GuildLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class FamilyFightInfoHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.FAMILY_FIGHT_INFO_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + GuildLogic.viewFightInfo(iSession, MessageTypeProto.MessageType.FAMILY_FIGHT_INFO_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/missionProcessor/FinishOptionsDifficultMapProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/missionProcessor/FinishOptionsDifficultMapProcessor.java index 132292c25..c8f072528 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/missionProcessor/FinishOptionsDifficultMapProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/missionProcessor/FinishOptionsDifficultMapProcessor.java @@ -12,13 +12,15 @@ public class FinishOptionsDifficultMapProcessor implements BaseMissionProcesor{ public int checkAndUpdateMissionProcessor(User user, SAccomplishmentConfig sAccomplishmentConfig, int eventId, int time, MapMissionType mapMissionType,int missionValue) { MapManager mapManager = user.getMapManager(); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()); - if(sChallengeConfig.getDifficultType()!=sAccomplishmentConfig.getValues()[sAccomplishmentConfig.getValues().length-1][0]){ + int[][] configValues = sAccomplishmentConfig.getValues(); + + if(configValues[configValues.length-1][0]!=0&&sChallengeConfig.getDifficultType()!= configValues[configValues.length-1][0]){ return GlobalsDef.MAP_MISSION_RETURN; } if(missionValue==-1){ return GlobalsDef.MAP_MISSION_RETURN; } - int[][] value = sAccomplishmentConfig.getValues(); + int[][] value = configValues; missionValue = 0-missionValue; for(int i = 0 ; i sGlobalActivityMap = SGlobalActivity.getsGlobalActivityMap(); + Set openNewActivityIds = new HashSet<>(); for (Integer openActivityId : openActivityIds) { SGlobalActivity sGlobalActivity = sGlobalActivityMap.get(openActivityId); @@ -136,10 +137,11 @@ public class ActivityLogic { continue; } abstractActivity.initActivity(user); + //非角色活动开启通知 + openNewActivityIds.add(openActivityId); } Map activityMissionMap = activityManager.getActivityMissionMap(); long userCreateTime = user.getPlayerInfoManager().getCreateTime(); - Set openNewActivityIds = new HashSet<>(); for (SGlobalActivity sGlobalActivity : sGlobalActivityMap.values()) { int activityId = sGlobalActivity.getId(); if (openActivityIds.contains(activityId)) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index c4a73c351..68cbe0170 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -87,8 +87,8 @@ class ExpectRankActivity extends AbstractActivity { SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId); //sendmail SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - String content = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_title"); - String title = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(), rank++}); + String title = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(), rank++}); String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward()); MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceRankActivity.java index c3f130d62..dd98ae3df 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ForceRankActivity.java @@ -94,8 +94,8 @@ class ForceRankActivity extends AbstractActivity { continue; } //sendmail - String content = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_title"); - String title = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_txt", new Object[]{rank}); + String title = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("powerrank_activity_txt", new Object[]{rank}); String mailReward = ItemUtil.getMailReward(sActivityRewardConfig.getReward()); MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); //暂时不删 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 77ae0cc5a..000acaecf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -863,7 +863,54 @@ public class GuildLogic { } } } + private static Family.FamilyFightInfo familyFightDetailInfo(int guildId) throws Exception { + GuildInfo guildInfo = GuilidManager.guildInfoMap.get(guildId); + Map defendInfo = guildInfo.getDefendInfo(); + Family.FamilyFightInfo.Builder fightInfo = Family.FamilyFightInfo.newBuilder(); + fightInfo.setGid(guildId); + for(int i = 0 ; i <3 ;i ++){ + Family.FamilyBuildBuffInfo.Builder buffInfo = Family.FamilyBuildBuffInfo.newBuilder(); + buffInfo.setBuildId(i+1); + buffInfo.setBuffId(i+1); + fightInfo.addBuildBuff(buffInfo); + } + for(Map.Entry entry:defendInfo.entrySet()){ + Family.FamilyFightPlayerInfo.Builder playerInfo = Family.FamilyFightPlayerInfo.newBuilder(); + playerInfo.setBuildId(entry.getValue()); + playerInfo.setBuildId(5); + PlayerManager playerManager = UserManager.getUser(entry.getKey()).getPlayerInfoManager(); + Family.FamilyUserInfo.Builder userInfo =Family.FamilyUserInfo.newBuilder() + .setRoleUid(entry.getKey()) + .setUserName(playerManager.getNickName()) + .setUserLevel(playerManager.getLevel()) + .setPosition(2) + .setSoulForce(HeroLogic.getInstance().calTeamTotalForce(UserManager.getUser(entry.getKey()),501,false)) + .setHead(playerManager.getHead()) + .setFrame(playerManager.getHeadFrame()); + playerInfo.setUserInfo(userInfo); + fightInfo.addUser(playerInfo); + } + return fightInfo.build(); + } + /** + * 公会战查看双方对战信息 + * @param session + * @param messageType + * @throws Exception + */ + public static void viewFightInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception { + User user = UserManager.getUser(session.getUid()); + int guildId = user.getPlayerInfoManager().getGuildId(); + int enemyId = 13; + if(guildId==13){ + enemyId = 14; + } + Family.FamilyFightInfoResponse.Builder builder = Family.FamilyFightInfoResponse.newBuilder(); + builder.addInfo(familyFightDetailInfo(guildId)); + builder.addInfo(familyFightDetailInfo(enemyId)); + MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build(),true); + } /** * 公会战计入缓存 * @throws Exception @@ -873,7 +920,12 @@ public class GuildLogic { if(guildIds.size()<1){ return; } + RedisUtil redisUtil = RedisUtil.getInstence(); for(Integer gid:guildIds){ + String key = RedisKey.getKey(RedisKey.FAMILY_FIGHT_RANK, gid.toString(), true); + if(!redisUtil.getZset(key,0, redisUtil.getZsetSize(RedisKey.FAMILY_FIGHT_RANK)).contains(gid)){ + redisUtil.zsetAddOne(RedisKey.FAMILY_FIGHT_RANK,gid.toString(),100); + } GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid); Map defendInfo = guildInfo.getDefendInfo(); if(defendInfo==null||defendInfo.size()<1){ @@ -894,10 +946,17 @@ public class GuildLogic { heroAllAttribute.put(heroInfo.getHeroId(),new FamilyHeroInfo(hero.getTemplateId(),hero.getLevel(),heroAttributeMap)); } fightInfo.setHeroAttribute(heroAllAttribute); - RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(guildInfo.getId()),String.valueOf(entry.getKey()),fightInfo); + redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(guildInfo.getId()),String.valueOf(entry.getKey()),fightInfo); } } } + + + /** + * 战斗之后数据更新 + * @param userAttack + * @param userDefend + */ public void familyFightResult(User userAttack,User userDefend){ int defendGuildId =userDefend.getPlayerInfoManager().getGuildId(); FamilyFightInfo defendInfo = RedisUtil.getInstence().getMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(defendGuildId), String.valueOf(userDefend.getId()), FamilyFightInfo.class); @@ -939,8 +998,12 @@ public class GuildLogic { Map attribute = value.getAttribute(); attribute.put(HeroAttributeEnum.CurHP.getPropertyId(),fightResult[index]); value.setAttribute(attribute); - RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(defendGuildId),String.valueOf(userDefend.getId()),attribute); index++; } + defendInfo.setHeroAttribute(heroAttribute); + if(fightResult[0]==0){ + defendInfo.setStarCount(defendInfo.getStarCount()-1); + } + RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(defendGuildId),String.valueOf(userDefend.getId()),defendInfo); } }