From a6d7f97a43b78a886a5df42606d8d4bb4f973cf0 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Feb 2023 17:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/help/HelpHero.java | 5 ++- .../ljsd/jieling/logic/hero/HeroLogic.java | 44 ++++++++++--------- .../com/ljsd/jieling/util/CBean2Proto.java | 9 +++- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java index 0805825e2..74c960876 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/help/HelpHero.java @@ -4,6 +4,7 @@ import com.ljsd.jieling.logic.dao.Faxiang; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.Jewel; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,9 +55,9 @@ public class HelpHero { /** * 家园装备强化信息 */ - private Map homeEquipMap = new HashMap<>(5); + private final Map homeEquipMap = new HashMap<>(5); - private List faxiangs; + private List faxiangs = new ArrayList<>(); public int getUid() { return uid; 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 20287f099..511b97b29 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 @@ -2066,13 +2066,15 @@ public class HeroLogic { //法相 Map faxiangMap = heroVo.getFaxiangMap(); - for (Faxiang faxiang : faxiangMap.values()) { - SFaxiangConfig faxiangConfig = SFaxiangConfig.faxiangMap.get(faxiang.getItemId()); - if (faxiangConfig == null){ - continue; - } - for (int i = 0; i < faxiang.getStar(); i++) { - skillList.add(faxiangConfig.getPassiveSkill()[i][0]); + if (faxiangMap != null && !faxiangMap.isEmpty()){ + for (Faxiang faxiang : faxiangMap.values()) { + SFaxiangConfig faxiangConfig = SFaxiangConfig.faxiangMap.get(faxiang.getItemId()); + if (faxiangConfig == null){ + continue; + } + for (int i = 0; i < faxiang.getStar(); i++) { + skillList.add(faxiangConfig.getPassiveSkill()[i][0]); + } } } @@ -3104,20 +3106,22 @@ public class HeroLogic { // 法相加成 Set faxiangList = hero.getFaxiangList(); - for (String id : faxiangList) { - Faxiang faxiang = equipManager.getFaxiang(id); - SFaxiangConfig config = SFaxiangConfig.faxiangMap.get(faxiang.getItemId()); - SFaxiangLevelConfig levelConfig = SFaxiangLevelConfig.poolMap.get(config.getLevelUpPool()).get(faxiang.getStrongLv()); - SFaxiangStarConfig starConfig = SFaxiangStarConfig.poolMap.get(config.getStar()).get(faxiang.getStar()); - int[][] levelPara = levelConfig.getLevelPara(); - int[][] property = new int[levelPara.length][2]; - for (int i = 0; i < levelPara.length; i++) { - int[] alone = levelPara[i]; - property[i][0] = alone[0]; - int value = (int)(alone[1] * (starConfig.getStarPara()/10000d+1)); - property[i][1] = value; + if (faxiangList != null && !faxiangList.isEmpty()){ + for (String id : faxiangList) { + Faxiang faxiang = equipManager.getFaxiang(id); + SFaxiangConfig config = SFaxiangConfig.faxiangMap.get(faxiang.getItemId()); + SFaxiangLevelConfig levelConfig = SFaxiangLevelConfig.poolMap.get(config.getLevelUpPool()).get(faxiang.getStrongLv()); + SFaxiangStarConfig starConfig = SFaxiangStarConfig.poolMap.get(config.getStar()).get(faxiang.getStar()); + int[][] levelPara = levelConfig.getLevelPara(); + int[][] property = new int[levelPara.length][2]; + for (int i = 0; i < levelPara.length; i++) { + int[] alone = levelPara[i]; + property[i][0] = alone[0]; + int value = (int)(alone[1] * (starConfig.getStarPara()/10000d+1)); + property[i][1] = value; + } + combinedAttribute(property, heroAllAttribute); } - combinedAttribute(property, heroAllAttribute); } //魂印 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index bbe8b549e..961dc77ad 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -252,7 +252,10 @@ public class CBean2Proto { helpHero.getJewels().forEach(item->jewels.add(getEquipProto(item))); // 法相 List faxiang = new ArrayList<>(); - helpHero.getFaxiangs().forEach(item->faxiang.add(getFaxiangEquipProto(item))); + List faxiangs = helpHero.getFaxiangs(); + if (faxiangs != null && !faxiangs.isEmpty()){ + faxiangs.forEach(item->faxiang.add(getFaxiangEquipProto(item))); + } // 装备详细信息 List equips = new ArrayList<>(); Map equip = helpHero.getHero().getEquipByHongmengPositionMap(otherUser.getHeroManager()); @@ -1428,12 +1431,14 @@ public class CBean2Proto { /** * 本服,获取法相 - * @return */ public static Map faxiangOfLocal(User user, Hero hero){ HashMap result = new HashMap<>(); try { Map faxiangMap = user.getEquipManager().getFaxiangMap(); + if (faxiangMap == null || faxiangMap.isEmpty()){ + return result; + } for (String faxiangId : hero.getFaxiangList()) { Faxiang faxiang = faxiangMap.get(faxiangId); if (faxiang == null){