diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java index 70c1f2959..99cb628e6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java @@ -44,9 +44,14 @@ public class CarDelayFunction implements FunctionManager { @Override public void closeAction() throws Exception { - Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByTypeAndRankMap; + // 获取车迟斗法当前boss的索引id + int indexId = GuildFightLogic.carDelayProgressIndication.getBossIndexId(); + // 根据索引id取出当前的奖励配置 + Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByBossIdMap.get(indexId); + TreeMap personRewardConfigTreeMap = rewardByTypeAndRankMap.get(2); TreeMap guildRewardConfigTreeMap = rewardByTypeAndRankMap.get(1); + Set> personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_RANK, "", 0, -1); int rank=0; String personTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_personreward_title"); diff --git a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java index 213a7433c..8456952da 100644 --- a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java +++ b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java @@ -19,23 +19,36 @@ public class SWorldBossRewardConfig implements BaseConfig { private int type; - public static Map> rewardByTypeAndRankMap = new HashMap<>(); + private int bossId; + /** + * 类型,排名,奖励 + */ + public static Map> rewardByTypeAndRankMap = new HashMap<>(); + /** + * boss索引id,类型,排名,奖励 + */ + public static Map>> rewardByBossIdMap = new HashMap<>(); @Override public void init() throws Exception { Map config = STableManager.getConfig(SWorldBossRewardConfig.class); - Map> rewardByTypeAndRankMapTmp = new HashMap<>(); + Map> rewardByTypeAndRankMapTmp = new HashMap<>(); + Map>> rewardByBossIdMapTmp = new HashMap<>(); config.forEach((id,item)->{ rewardByTypeAndRankMapTmp.putIfAbsent(item.getType(),new TreeMap<>()); rewardByTypeAndRankMapTmp.get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); - }); - rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp; + rewardByBossIdMapTmp.putIfAbsent(item.getBossId(),new TreeMap<>()); + rewardByBossIdMapTmp.get(item.getBossId()).putIfAbsent(item.getType(),new TreeMap<>()); + rewardByBossIdMapTmp.get(item.getBossId()).get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); + }); + + rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp; + rewardByBossIdMap = rewardByBossIdMapTmp; } - - public int getId() { + public int getId() { return id; } @@ -50,4 +63,8 @@ public class SWorldBossRewardConfig implements BaseConfig { public int getType() { return type; } + + public int getBossId() { + return bossId; + } } \ No newline at end of file