From 4bed1f51f9348620c9877f0a0d456dc584931899 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Tue, 22 Jun 2021 18:21:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E6=98=9F=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/GetPlayerInfoHandler.java | 14 +++++++++++++- .../jieling/logic/activity/HeroStarActivity.java | 6 ++++-- .../logic/activity/event/FiveStarGetEvent.java | 1 + .../com/ljsd/jieling/logic/dao/HeroManager.java | 14 ++++++++++++++ .../com/ljsd/jieling/logic/hero/HeroLogic.java | 1 + 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index bf2d74fdf..9264dba6c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -137,7 +137,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ Map heroHandBook = heroManager.getHeroHandBook(); List heroHandBookList = new ArrayList<>(); heroHandBook.forEach((k,v)->heroHandBookList.add(CommonProto.EveryHeroHandBook.newBuilder().setHeroId(k).setMaxStar(v).build())); - + initHeroStar(user); Set equipHandBookSet = user.getEquipManager().getEquipHandBook().keySet(); int equipPool = user.getEquipManager().getSoulEquipPool(); List goodsBagInfo = new ArrayList<>(SRechargeCommodityNewConfig.configMap.size()); @@ -235,5 +235,17 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } + /** + * 初始化英雄星级map(针对老号) + * @param user + */ + private void initHeroStar(User user){ + if(user.getHeroManager().getHeroStarMap().size()>1){ + return; + } + for(Hero hero : user.getHeroManager().getHeroMap().values()){ + user.getHeroManager().addHeroStar(hero.getTemplateId(),hero.getStar()); + } + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java index 5f81489c0..6246ff0a2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroStarActivity.java @@ -52,7 +52,7 @@ public class HeroStarActivity extends AbstractActivity { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); List list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); - int maxstar = user.getHeroManager().getHeroHandBook().get(heroId); + int maxstar = user.getHeroManager().getHeroStarMap().get(heroId); for (SActivityRewardConfig sActivityRewardConfig : list) { if (maxstar >= sActivityRewardConfig.getValues()[0][1]) { ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null); @@ -60,6 +60,8 @@ public class HeroStarActivity extends AbstractActivity { continue; if(activityProgressInfo.getState()<1){ activityProgressInfo.setState(1); + }else{ + continue; } activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo); } @@ -86,7 +88,7 @@ public class HeroStarActivity extends AbstractActivity { Map activityProgressInfoMap = activityMission.getActivityMissionMap(); List list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); heroId = list.get(0).getValues()[0][0]; - Integer maxstar = user.getHeroManager().getHeroHandBook().get(heroId); + Integer maxstar = user.getHeroManager().getHeroStarMap().get(heroId); if(maxstar == null){ return; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FiveStarGetEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FiveStarGetEvent.java index 6ed6bf89f..62bd2c239 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FiveStarGetEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FiveStarGetEvent.java @@ -5,6 +5,7 @@ public class FiveStarGetEvent implements IEvent { private int heroid; public FiveStarGetEvent(int uid,int heroid){ + this.uid = uid; this.heroid = heroid; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 82b67695a..6341701f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -30,6 +30,7 @@ public class HeroManager extends MongoBase { private Map heroHandBook = new HashMap<>(); private Set heroHandBookEnabled = new HashSet<>(); + private Map heroStarMap = new HashMap<>(); private Map endlessHeroInfo = new HashMap<>(); @@ -96,6 +97,7 @@ public class HeroManager extends MongoBase { updateString("heroMap." + hero.getId(), hero); heroMap.put(hero.getId(), hero); addHeroHandBook(hero.getTemplateId(),hero.getStar()); + addHeroStar(hero.getTemplateId(),hero.getStar()); } public Hero getHero(String heroId) { @@ -136,6 +138,18 @@ public class HeroManager extends MongoBase { return heroHandBook; } + public void addHeroStar(int heroId,int star){ + if(heroStarMap.getOrDefault(heroId,0) >= star){ + return; + } + heroStarMap.put(heroId,Math.max(heroStarMap.getOrDefault(heroId,0),star)); + updateString("heroStarMap." + heroId, star); + } + + public Map getHeroStarMap(){ + return heroStarMap; + } + public int getFirstTenth() { return firstTenth; } 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 084e1fe0d..ded261855 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 @@ -1150,6 +1150,7 @@ public class HeroLogic{ ItemUtil.itemCost(user,removeItemMap,BIReason.COMPLEX_EQUIP_CONSUME,0); rankUpHeroExecute(targetHero); + user.getHeroManager().addHeroStar(targetHero.getTemplateId(),targetHero.getStar()); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); targetHero.setStarBreakId(scHeroRankUpConfig.getId());