From 447445a29fe94df3c7243fb53f4989a24e8012c3 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 29 Aug 2019 12:02:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/core/HandlerLogicThread.java | 4 ++ .../com/ljsd/jieling/db/redis/RedisKey.java | 2 + .../ljsd/jieling/handler/map/MapLogic.java | 6 +- .../jieling/logic/family/GuildFightLogic.java | 64 +++++++++---------- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java index b828c05e8..279461a04 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java @@ -80,6 +80,10 @@ public class HandlerLogicThread extends Thread{ whiteMsg.add(MessageTypeProto.MessageType.SERVER_FIVE_REQEUST_VALUE); whiteMsg.add(MessageTypeProto.MessageType.SERVER_ZERO_REQUEST_VALUE); whiteMsg.add(MessageTypeProto.MessageType.FAMILY_FIGHT_ROUND_INFO_REQUEST_VALUE); + whiteMsg.add(MessageTypeProto.MessageType.FAMILY_GET_INFO_REQUEST_VALUE); + whiteMsg.add(MessageTypeProto.MessageType.FAMILY_GET_MEMBER_REQUEST_VALUE); + whiteMsg.add(MessageTypeProto.MessageType.FAMILY_GET_APPLY_REQUEST_VALUE); + 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 4179140a8..b58fd3d43 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 @@ -131,6 +131,8 @@ public class RedisKey { public static final String FAMILY_FIGHT_ATTACK_COUNT = "FAMILY_FIGHT_ATTACK_COUNT"; //公会总星数 public static final String FAMILY_FIGHT_TOTAL_STAR = "FAMILY_FIGHT_TOTAL_STAR"; + //公会战获得经验 + public static final String FAMILY_FIGHT_TOTAL_EXP = "FAMILY_FIGHT_TOTAL_EXP"; //给用户发送邮件 public static final String READY_TO_USER_MAIL = "READY_TO_USER_MAIL"; //把用户踢下线 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 4d8a5a41f..40033a3c2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2549,9 +2549,9 @@ public class MapLogic { int[][] bossType = config.getRandomBossType(); type = MathUtils.randomFromWeight(bossType); -// if(mapManager.getTower()%5!=0){ -// type = 3; -// } + if(mapManager.getTower()%5!=0){ + type = 3; + } LOGGER.info("trigger!!!!!!!!!!!!!!!!!-------->{},{}",CellUtil.pos2XY(mapManager.getCurXY())[0],CellUtil.pos2XY(mapManager.getCurXY())[1]); int[][][] pointId = config.getRandomMapPointId(); int mapId = config.getMapId(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index b4a5c355a..3982634a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -412,27 +412,28 @@ public class GuildFightLogic { List teamAttack = userAttack.getTeamPosManager().getTeamPosForHero().get(502); if(attackBloodMap!=null&&attackBloodMap.size()>0){ for(TeamPosHeroInfo teamHero: teamAttack){ + Hero hero = userAttack.getHeroManager().getHero(teamHero.getHeroId()); + if (hero == null) { + continue; + } + StringBuilder skillSb = new StringBuilder(); + StringBuilder propertySb = new StringBuilder(); + String heroSkill = HeroLogic.getInstance().getHeroSkills(userDefend, hero, skillSb).toString(); + Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userAttack, hero, false, 502); for(Map.Entry blood:attackBloodMap.entrySet()){ if(teamHero.getHeroId().equals(blood.getKey())){ - Hero hero = userAttack.getHeroManager().getHero(teamHero.getHeroId()); - if (hero == null) { - continue; - } - StringBuilder skillSb = new StringBuilder(); - StringBuilder propertySb = new StringBuilder(); - String heroSkill = HeroLogic.getInstance().getHeroSkills(userDefend, hero, skillSb).toString(); - Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userAttack, hero, false, 502); heroAttributeMap.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())-Integer.parseInt(blood.getValue())*heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())/100); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero, heroAttributeMap).toString(); - CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo - .newBuilder() - .setUnitId(Integer.toString(hero.getTemplateId())) - .setUnitSkillIds(heroSkill.substring(0, heroSkill.length() - 1)) - .setProperty(property.substring(0, property.length() - 1)) - .build(); - heroAttackFightInfos.add(heroFightInfo); + break; } } + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero, heroAttributeMap).toString(); + CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo + .newBuilder() + .setUnitId(Integer.toString(hero.getTemplateId())) + .setUnitSkillIds(heroSkill.substring(0, heroSkill.length() - 1)) + .setProperty(property.substring(0, property.length() - 1)) + .build(); + heroAttackFightInfos.add(heroFightInfo); } CommonProto.FightTeamInfo.Builder fightAttackTeamInfoBuilder = CommonProto.FightTeamInfo.newBuilder().addAllFightUnitList(heroAttackFightInfos) .setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(userAttack, 1)); @@ -628,6 +629,10 @@ public class GuildFightLogic { String attackCountKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_ATTACK_COUNT, "", false); //额外星数信息 String extraStar = RedisKey.getKey(RedisKey.FAMILY_FIGHT_EXTRA_STAR,"",false); + //获得经验信息 + String expKey = RedisKey.getKey(RedisKey.FAMILY_FIGHT_TOTAL_EXP,"",false); + //所有星数信息 + String totalStar = RedisKey.getKey(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",false); Set matchingRank = redisUtil.getZset(matchingKey, 0, redisUtil.getZsetSize(matchingKey)); for(String index:matchingRank){ Map fightDefend = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, index, Integer.class, FamilyFightInfo.class); @@ -658,17 +663,10 @@ public class GuildFightLogic { } } } - - - //清除额外星数信息 -// redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_EXTRA_STAR,""); //清除布防信息 -// GuilidManager.guildInfoMap.get(index).removeAllDefendInfo(); + GuilidManager.guildInfoMap.get(index).removeAllDefendInfo(); } - redisUtil.del(matchingKey,attackCountKey,extraStar); - -// 删除匹配信息 -// redisUtil.removeZSetRangeByRank(matchingKey,0,redisUtil.getZsetSize(matchingKey)); + redisUtil.del(matchingKey,attackCountKey,extraStar,expKey,totalStar); } /** * 公会战结算(Redis中数据同到mongo) @@ -720,6 +718,7 @@ public class GuildFightLogic { //战绩结算 int getExp = 0; Double rank = redisUtil.getZSetScore(RedisKey.FAMILY_FIGHT_RANK, "", str); +// rank+=7000; for(Map.Entry entry:sGuildScoreConfigMap.entrySet()){ if(rankentry.getValue().getScoreMax()){ continue; @@ -757,9 +756,11 @@ public class GuildFightLogic { } break; } + LOGGER.info("获得经验{}",getExp); + redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_EXP,"",str,getExp); if(guildInfo.getExp()+getExp>=levelConfigMap.get(guildInfo.getLevel()).getExp()){ guildInfo.updateExp(guildInfo.getExp()+getExp-levelConfigMap.get(guildInfo.getLevel()).getExp()); - guildInfo.updateLevel(guildInfo.getLevel()+getExp); + guildInfo.updateLevel(guildInfo.getLevel()+1); }else{ guildInfo.updateExp(guildInfo.getExp()+getExp); } @@ -814,16 +815,9 @@ public class GuildFightLogic { MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); return; } - int winStar = getTotalStar(guildId); - int defeatStar = getTotalStar(enemyFamily); - if(winStar