diff --git a/gamecommon/src/main/java/util/StringUtil.java b/gamecommon/src/main/java/util/StringUtil.java index f5a4f798f..0e2cbab00 100644 --- a/gamecommon/src/main/java/util/StringUtil.java +++ b/gamecommon/src/main/java/util/StringUtil.java @@ -68,6 +68,18 @@ public class StringUtil { return values; } + public static long[][][] parseFiledLong3(String value) { + if ("null".equals(value) || value == null) { + return new long[0][0][0]; + } + String[] param = value.split(","); + long[][][] values = new long[param.length][][]; + for (int i = 0; i < param.length; i++) { + values[i] = parseFiledLong2(param[i]); + } + return values; + } + public static int[][][] parseFiledInt3(String value) { if ("null".equals(value) || value == null) { return new int[0][0][0]; 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 2f090e756..a7e750ad9 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 @@ -4762,8 +4762,10 @@ public class HeroLogic { * @param baseItemMap 折算道具 */ public void dismantleHeroLevel(Hero hero, Map baseItemMap) { + int level = hero.getOriginalLevel(); + SHeroLevlConfig config = SHeroLevlConfig.getsHeroLevlConfigMap().get(level); // 等级折算 - long[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getOriginalLevel()).getSumConsume(); + long[][] sumConsume = config.getSumConsume(); for (long[] item : sumConsume) { baseItemMap.put((int)item[0], baseItemMap.getOrDefault(item[0], 0L) + item[1]); } diff --git a/tablemanager/src/main/java/manager/STableManager.java b/tablemanager/src/main/java/manager/STableManager.java index 7cad52817..8ee3539c4 100644 --- a/tablemanager/src/main/java/manager/STableManager.java +++ b/tablemanager/src/main/java/manager/STableManager.java @@ -329,6 +329,9 @@ public class STableManager { case "int": intField(obj, prarms, i, field, dimension); break; + case "long": + longField(obj, prarms, i, field, dimension); + break; case "float": floatField(obj, prarms, i, field, dimension); break; @@ -389,6 +392,22 @@ public class STableManager { } } + private static void longField(T obj, String[] prarms, int i, Field field, int dimension) throws IllegalAccessException { + switch (dimension) { + case 1: + field.set(obj, StringUtil.parseFiledLong(prarms[i])); + break; + case 2: + field.set(obj, StringUtil.parseFiledLong2(prarms[i])); + break; + case 3: + field.set(obj, StringUtil.parseFiledLong3(prarms[i])); + break; + default: + break; + } + } + /** * 判断是几维数组 */