diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetLuckWheelRandHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetLuckWheelRandHandler.java index 9c4f35596..bfdda2c9d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetLuckWheelRandHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/GetLuckWheelRandHandler.java @@ -111,6 +111,10 @@ public class GetLuckWheelRandHandler extends BaseHandler 0){ + user.getPlayerInfoManager().putGmDialNum(activityId,0); + } SItem sItem = SItem.getsItemMap().get(drops[i][0]); if(sItem.getQuantity()>=5){ String nickName = user.getPlayerInfoManager().getNickName(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 4ea071c26..fa952b6bb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -5387,7 +5387,7 @@ public class HeroLogic { } /** - * 装备排行榜处理 + * 英雄星级处理 * @param user */ private void heroStarHandle(User user){ @@ -5400,19 +5400,25 @@ public class HeroLogic { } /** - * 计算主线编队装备评分 + * 计算英雄星级评分 * @param user * @return */ private int heroStarCompute(User user){ int num = 0; - Map starMap = SChongRankInformation.getStarMap(); + Map> naturalMap = SChongRankInformation.getNaturalMap(); + Map scHeroMap = SCHero.getsCHero(); for (Hero hero : user.getHeroManager().getHeroMap().values()) { - SChongRankInformation information = starMap.get(hero.getStar()); - if (information == null){ - continue; + try { + SCHero scHero = scHeroMap.get(hero.getTemplateId()); + SChongRankInformation information = naturalMap.get(scHero.getNatural()).get(hero.getStar()); + if (information == null){ + continue; + } + num += information.getScore(); + }catch (NullPointerException e){ + LOGGER.error("计算英雄星级评分报错,uid:{},英雄id:{},英雄模板id:{}",user.getId(),hero.getId(),hero.getTemplateId()); } - num += information.getScore(); } return num; } diff --git a/tablemanager/src/main/java/config/SChongRankInformation.java b/tablemanager/src/main/java/config/SChongRankInformation.java index 58d221ffd..07bdf071a 100644 --- a/tablemanager/src/main/java/config/SChongRankInformation.java +++ b/tablemanager/src/main/java/config/SChongRankInformation.java @@ -13,27 +13,35 @@ public class SChongRankInformation implements BaseConfig { private int heroStar; + private int natural; + private int score; - private static Map starMap = new HashMap<>(); + private static Map> naturalMap = new HashMap<>(); @Override public void init() throws Exception { Map config = STableManager.getConfig(SChongRankInformation.class); for (SChongRankInformation value : config.values()) { + Map starMap = naturalMap.getOrDefault(value.getNatural(), new HashMap<>()); starMap.put(value.getHeroStar(),value); + naturalMap.put(value.getNatural(),starMap); } } - public static Map getStarMap() { - return starMap; + public static Map> getNaturalMap() { + return naturalMap; } public int getId() { return id; } - public int getHeroStar() { + public int getNatural() { + return natural; + } + + public int getHeroStar() { return heroStar; }