diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java index 02df88aad..64f6fd2f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SGlobalSystemConfig.java @@ -6,9 +6,7 @@ import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; import com.ljsd.jieling.util.TimeUtils; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; +import java.util.*; @Table(name ="GlobalSystemConfig") public class SGlobalSystemConfig implements BaseConfig { @@ -40,9 +38,13 @@ public class SGlobalSystemConfig implements BaseConfig { private int type; + private int[][] openGifts; + private static Map sGlobalSystemConfigMap; + public static Map>> sGlobalSystemConfigMapByTypeAndConditionMap; + @Override public void init() throws Exception { @@ -50,6 +52,7 @@ public class SGlobalSystemConfig implements BaseConfig { return; } Map config = STableManager.getConfig(SGlobalSystemConfig.class); + Map>> sGlobalSystemConfigMapByTypeAndConditionMapTmp = new HashMap<>(); Iterator> iterator = config.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry next = iterator.next(); @@ -69,9 +72,21 @@ public class SGlobalSystemConfig implements BaseConfig { sGlobalSystemConfig.setSystemOpenLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemOpen(), TimeUtils.Stand_CeHua_Data_format)); sGlobalSystemConfig.setSystemEndLong(TimeUtils.parseTimeToMiles(sGlobalSystemConfig.getSystemEnd(), TimeUtils.Stand_CeHua_Data_format)); + + int[] openRules = sGlobalSystemConfig.getOpenRules(); + int openType = openRules[0]; + int openCondition = openRules[1]; + if(!sGlobalSystemConfigMapByTypeAndConditionMapTmp.containsKey(openType)){ + sGlobalSystemConfigMapByTypeAndConditionMapTmp.put(openType,new HashMap<>()); + } + if(!sGlobalSystemConfigMapByTypeAndConditionMapTmp.get(openType).containsKey(openCondition)){ + sGlobalSystemConfigMapByTypeAndConditionMapTmp.get(openType).put(openCondition,new ArrayList<>()); + } + sGlobalSystemConfigMapByTypeAndConditionMapTmp.get(openType).get(openCondition).add(sGlobalSystemConfig); } sGlobalSystemConfigMap = config; + sGlobalSystemConfigMapByTypeAndConditionMap = sGlobalSystemConfigMapByTypeAndConditionMapTmp; } public static SGlobalSystemConfig getsGlobalSystemConfigByFunctionId(FunctionIdEnum workShop) { @@ -151,4 +166,8 @@ public class SGlobalSystemConfig implements BaseConfig { public int getType() { return type; } + + public int[][] getOpenGifts() { + return openGifts; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SLevelDifficultyConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SLevelDifficultyConfig.java deleted file mode 100644 index d27a65d44..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SLevelDifficultyConfig.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.ljsd.jieling.config; - -import com.ljsd.jieling.logic.STableManager; -import com.ljsd.jieling.logic.Table; -import com.ljsd.jieling.logic.dao.LevelDifficulty; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - - -@Table(name ="LevelDifficultyConfig") -public class SLevelDifficultyConfig implements BaseConfig { - private static Map sLevelDifficultyConfigMap; - private static Map levelDifficultyMap; - private int id; - - private int precondition; - - private int levelLimit; - - private int monsterGroup; - - private int[][] cost; - - private int[][] preLevelCost; - - private int money; - - private int exp; - - private int[] randomReward; - - private int rankTime; - - private int maxCountPerDay; - - private int recommendFightAbility; - - private int[] firstReward; - - - @Override - public void init() throws Exception { - sLevelDifficultyConfigMap = STableManager.getConfig(SLevelDifficultyConfig.class); - Map levelDifficultyMap = new ConcurrentHashMap<>(); - for (Map.Entry entry : sLevelDifficultyConfigMap.entrySet()) { - String fightId = String.valueOf(entry.getKey()); - int length = fightId.length(); - int areaId = Integer.parseInt(fightId)/1000; - int type = Integer.parseInt(fightId.substring(length - 1, length)); - LevelDifficulty levelDifficulty = new LevelDifficulty(); - levelDifficulty.setAreaId(areaId); - levelDifficulty.setFightId(Integer.parseInt(fightId)); - levelDifficulty.setType(type); - levelDifficultyMap.put(entry.getKey(),levelDifficulty); - levelDifficultyMap.put(entry.getKey(),levelDifficulty); - } - SLevelDifficultyConfig.levelDifficultyMap = levelDifficultyMap; - } - - public int getId() { - return id; - } - - public int getPrecondition() { - return precondition; - } - - public int getLevelLimit() { - return levelLimit; - } - - public int getMonsterGroup() { - return monsterGroup; - } - - public int[][] getCost() { - return cost; - } - - public int[][] getPreLevelCost() { - return preLevelCost; - } - - public int getMoney() { - return money; - } - - public int getExp() { - return exp; - } - - public int[] getRandomReward() { - return randomReward; - } - - public int getRankTime() { - return rankTime; - } - - public int getMaxCountPerDay() { - return maxCountPerDay; - } - - public int getRecommendFightAbility() { - return recommendFightAbility; - } - - public int[] getFirstReward() { - return firstReward; - } - - public static Map getsLevelDifficultyConfigMap() { - return sLevelDifficultyConfigMap; - } - - public static Map getLevelDifficultyMap() { - return levelDifficultyMap; - } -} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SMainLevelConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SMainLevelConfig.java index d011969b6..ece6d4705 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SMainLevelConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SMainLevelConfig.java @@ -95,4 +95,8 @@ public class SMainLevelConfig implements BaseConfig { public int getNextLevel() { return nextLevel; } + + public int getDifficulty() { + return difficulty; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java index 76fe6e307..12ff562ef 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java @@ -9,7 +9,7 @@ import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.dao.LevelDifficulty; +import com.ljsd.jieling.logic.dao.MainLevelManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; @@ -299,11 +299,11 @@ public class HandlerLogicThread extends Thread{ } int level = user.getPlayerInfoManager().getLevel(); int workShopLevel = user.getWorkShopController().getWorkShopLevel(); - Map levelDifficultyInfosMap = user.getLevelDifficultyManager().getLevelDifficultyInfosMap(); + MainLevelManager mainLevelManager = user.getMainLevelManager(); int type = sGlobalSystemConfig.getOpenRules()[0]; int condition = sGlobalSystemConfig.getOpenRules()[1]; if (type ==1){ - if (!levelDifficultyInfosMap.containsKey(condition) || levelDifficultyInfosMap.containsKey(condition) && levelDifficultyInfosMap.get(condition).getState() != Global.FIGHT_CLEARANCE) { + if (mainLevelManager.getFightId()>condition) { return true; } }else if(type == 2){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java index 168fc0a94..058e58a80 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java @@ -4,6 +4,7 @@ public interface VipPrivilegeType { int ADVENTURE_BASE_REWARD = 1;//探险基础奖励收益 int ADVENTURE_MINERAL_REWARD = 2;//探险矿石奖励收益 int ADVENTURE_RUNNE_REWARD = 3;//探险符文奖励收益 + int ADVENTURE_EXP_REWARD = 27;//探险符文奖励收益 int FAST_MAP_LIMIT = 4;//快速探险的次数上限 int BUY_STAIM_LIMIT = 5;//购买体力次数上限 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 05ef9a72a..c763796f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -86,6 +86,8 @@ public interface BIReason { int MAIN_LEVEL_STATE_REWARD = 53; // 关卡挂机奖励 + int SYSTERM_OPEN_REWARD = 54; //系统开放奖励 + //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 61724fb4a..26d3dc198 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -131,15 +131,18 @@ public class GMRequestHandler extends BaseHandler{ ItemUtil.userLevelUp(cUser,exp); break; case GlobalGm.ADOPT_ALL_DIFFICULTY: - sPlayerLevelConfigMap = SPlayerLevelConfig.getsPlayerLevelConfigMap(); - LevelDifficultyManager levelDifficultyManager = cUser.getLevelDifficultyManager(); - openFightids(levelDifficultyManager,sPlayerLevelConfigMap.size()); - adoptAllFight(cUser,levelDifficultyManager); - break; + while (true){ + int fightId = cUser.getMainLevelManager().getFightId(); + + SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId); + if(sMainLevelConfig.getNextLevel() != -1){ + MapLogic.getInstance().openNextMainLevel(cUser,fightId); + }else{ + break; + } + } case GlobalGm.ADOPT_FIGHT_BY_LEVE: - levelDifficultyManager = cUser.getLevelDifficultyManager(); - openFightids(levelDifficultyManager,prarm1); - adoptAllFight(cUser,levelDifficultyManager); + break; case GlobalGm.ONE_KEY_ITEM_OR_HERO:{ //道具 @@ -262,32 +265,12 @@ public class GMRequestHandler extends BaseHandler{ } } - private void adoptAllFight(User user,LevelDifficultyManager levelDifficultyManager) throws Exception { - Map levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap(); - for (Map.Entry entry :levelDifficultyInfosMap.entrySet()){ - entry.getValue().setState(Global.FIGHT_CLEARANCE); - user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, entry.getValue().getFightId(),0,1); - } - } private String parseTimeToString(long time){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return simpleDateFormat.format(time); } - //开启所有关卡 - private void openFightids(LevelDifficultyManager levelDifficultyManager,int level) { - Map levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap(); - for (Map.Entry entry :levelDifficultyMap.entrySet()){ - LevelDifficulty levelDifficulty = entry.getValue(); - SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(entry.getKey()); - if (sLevelDifficultyConfig.getLevelLimit() > level){ - continue; - } - levelDifficultyManager.newLevelDifficulty(levelDifficulty.getFightId(),levelDifficulty.getType(),levelDifficulty.getAreaId()); - } - } - private CommonProto.Drop.Builder giveHero(User cUser, int cardId, int cardNum) throws Exception { CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); Map cardMap = new ConcurrentHashMap<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index c7398ef2f..b52f7ac72 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -19,8 +19,10 @@ import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.FightMainEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.StoryEvent; +import com.ljsd.jieling.logic.activity.event.UserLevelEvent; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.CheckFight; @@ -142,12 +144,9 @@ public class MapLogic { MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要等级:" + openRule[0][1]); return; } - LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(openRule[0][0]); - if (levelDifficulty == null || levelDifficulty.getState() != 4) { - if (user.getPlayerInfoManager().getLevel() < openRule[0][1]) { - MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要通关:" + openRule[0][0]); - return; - } + if(user.getMainLevelManager().getFightId()>openRule[0][0]){ + MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "需要通关:" + openRule[0][0]); + return; } } @@ -1985,97 +1984,6 @@ public class MapLogic { } - - /** - * 获取所有关卡信息 - * - * @param iSession - * @param msgId - */ - public void getAllLevelDifficultyInfos(ISession iSession, int msgId) throws Exception { - int uid = iSession.getUid(); - User user = UserManager.getUser(uid); - LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); - Map levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap(); - if (levelDifficultyInfosMap.size() == 0) { - levelDifficultyInfosMap = initLevelDifficultyInfo(user, levelDifficultyManager); - } - List getOpenAreaIds = levelDifficultyManager.getOpenAreaIds(); - List levelDifficultyInfos = new CopyOnWriteArrayList<>(); - for (Integer areaId : getOpenAreaIds) { - CommonProto.LevelDifficultyInfos.Builder levelDifficultyInfosBuilder = CommonProto.LevelDifficultyInfos.newBuilder(); - levelDifficultyInfosBuilder.setAreaId(areaId); - List builderList = new CopyOnWriteArrayList<>(); - for (Map.Entry entry : levelDifficultyInfosMap.entrySet()) { - LevelDifficulty levelDifficulty = entry.getValue(); - if (levelDifficulty.getAreaId() != areaId) { - continue; - } - CommonProto.LevelDifficulty.Builder lLevelDifficultyBuilder = CommonProto.LevelDifficulty.newBuilder(); - lLevelDifficultyBuilder.setFightId(levelDifficulty.getFightId()); - lLevelDifficultyBuilder.setState(levelDifficulty.getState()); - lLevelDifficultyBuilder.setNum(levelDifficulty.getChallengeTimes()); - lLevelDifficultyBuilder.setType(levelDifficulty.getType()); - builderList.add(lLevelDifficultyBuilder.build()); - } - levelDifficultyInfosBuilder.addAllLevelDifficulty(builderList); - levelDifficultyInfos.add(levelDifficultyInfosBuilder.build()); - } - MapInfoProto.getAllLevelDifficultyInfosResponse.Builder builder = MapInfoProto.getAllLevelDifficultyInfosResponse.newBuilder(); - builder.addAllLevelDifficultyInfos(levelDifficultyInfos); - MapManager mapManager = user.getMapManager(); - Map crossInfoMap = mapManager.getCrossInfoMap(); - for (Map.Entry entry : crossInfoMap.entrySet()) { - CommonProto.MapInfo mapInfo = CommonProto.MapInfo - .newBuilder() - .setMapId(entry.getKey()) - .setLeastTime(entry.getValue().getLeastTime()) - .addAllStars(entry.getValue().getStars()) - .build(); - builder.addMapInfos(mapInfo); - } - int starReward = mapManager.getStarReward(); - SChallengeStarBox sChallengeStarBox = SChallengeStarBox.sChallengeStarBoxMap.get(starReward); - if(sChallengeStarBox == null ){ - builder.setStarNum(0); - }else{ - builder.setStarNum(sChallengeStarBox.getStarNum()); - } - MapInfoProto.TowerCopyInfo towerCopyInfo = MapInfoProto.TowerCopyInfo.newBuilder() - .setTower(mapManager.getTower()) - .setFightCount(mapManager.getFightCount()) - .setHighestTower(mapManager.getHighestTower()) - .setEssenceValue(mapManager.getEssenceValue()) - .setMapIntoReset(mapManager.getMapIntoFlag()) - .setTowerUseTime((int)(mapManager.getCurrTowerTime()/1000)) - .build(); - builder.setTowerCopyInfo(towerCopyInfo); - builder.addAllPlayedGenMapId(mapManager.getPlayGenMaps()); - - for(Map.Entry entry:mapManager.getDifficultyOptions().entrySet()){ - MapInfoProto.DifficultMapOption.Builder difficultMapOption = MapInfoProto.DifficultMapOption.newBuilder(); - difficultMapOption.setId(entry.getKey()); - difficultMapOption.setMapdifficulty(entry.getValue()); - builder.addDifficultMapOptions(difficultMapOption); - } -// LOGGER.info("关卡信息{}",towerCopyInfo.toString()); - MessageUtil.sendMessage(iSession, 1, msgId, builder.build(), true); - } - - private Map initLevelDifficultyInfo(User user, LevelDifficultyManager levelDifficultyManager) { - Map levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap(); - for (Map.Entry entry : levelDifficultyMap.entrySet()) { - LevelDifficulty levelDifficulty = entry.getValue(); - int fightId = levelDifficulty.getFightId(); - SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); - if (sLevelDifficultyConfig.getPrecondition() != 0 || sLevelDifficultyConfig.getLevelLimit() > user.getPlayerInfoManager().getLevel()) { - continue; - } - levelDifficultyManager.newLevelDifficulty(fightId, levelDifficulty.getType(), levelDifficulty.getAreaId()); - } - return levelDifficultyManager.getLevelDifficultyInfosMap(); - } - //挑战精英怪 public void startSuddlenlyFight(ISession session, int teamId, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); @@ -2143,24 +2051,53 @@ public class MapLogic { - - public int[][] getCost(SLevelDifficultyConfig sLevelDifficultyConfig, int sweepTimes) { - StringBuilder cost = new StringBuilder(); - int[][] costArr = sLevelDifficultyConfig.getCost(); - int[][] preLevelCostArr = sLevelDifficultyConfig.getPreLevelCost(); - for (int i = 0; i < costArr.length; i++) { - int[] ints = costArr[i]; - int[] ints1 = preLevelCostArr[i]; - int itemNum = ints[1] * sweepTimes + ints1[1] * sweepTimes; - if (cost.length() == 0) { - cost = new StringBuilder(ints[0] + "#" + itemNum); - } else { - cost.append("|").append(ints[0]).append("#").append(itemNum); - } + /** + * 获取所有关卡信息 + * + * @param iSession + * @param msgId + */ + public void getAllLevelDifficultyInfos(ISession iSession, int msgId) throws Exception { + int uid = iSession.getUid(); + User user = UserManager.getUser(uid); + MapInfoProto.getAllLevelDifficultyInfosResponse.Builder builder = MapInfoProto.getAllLevelDifficultyInfosResponse.newBuilder(); + MapManager mapManager = user.getMapManager(); + Map crossInfoMap = mapManager.getCrossInfoMap(); + for (Map.Entry entry : crossInfoMap.entrySet()) { + CommonProto.MapInfo mapInfo = CommonProto.MapInfo + .newBuilder() + .setMapId(entry.getKey()) + .setLeastTime(entry.getValue().getLeastTime()) + .addAllStars(entry.getValue().getStars()) + .build(); + builder.addMapInfos(mapInfo); } - return StringUtil.parseFiledInt2(cost.toString()); - } + int starReward = mapManager.getStarReward(); + SChallengeStarBox sChallengeStarBox = SChallengeStarBox.sChallengeStarBoxMap.get(starReward); + if(sChallengeStarBox == null ){ + builder.setStarNum(0); + }else{ + builder.setStarNum(sChallengeStarBox.getStarNum()); + } + MapInfoProto.TowerCopyInfo towerCopyInfo = MapInfoProto.TowerCopyInfo.newBuilder() + .setTower(mapManager.getTower()) + .setFightCount(mapManager.getFightCount()) + .setHighestTower(mapManager.getHighestTower()) + .setEssenceValue(mapManager.getEssenceValue()) + .setMapIntoReset(mapManager.getMapIntoFlag()) + .setTowerUseTime((int)(mapManager.getCurrTowerTime()/1000)) + .build(); + builder.setTowerCopyInfo(towerCopyInfo); + builder.addAllPlayedGenMapId(mapManager.getPlayGenMaps()); + for(Map.Entry entry:mapManager.getDifficultyOptions().entrySet()){ + MapInfoProto.DifficultMapOption.Builder difficultMapOption = MapInfoProto.DifficultMapOption.newBuilder(); + difficultMapOption.setId(entry.getKey()); + difficultMapOption.setMapdifficulty(entry.getValue()); + builder.addDifficultMapOptions(difficultMapOption); + } + MessageUtil.sendMessage(iSession, 1, msgId, builder.build(), true); + } @@ -2250,7 +2187,7 @@ public class MapLogic { MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); } - private void openNextMainLevel(User user,int fightId){ + public void openNextMainLevel(User user,int fightId) throws Exception { int level = user.getPlayerInfoManager().getLevel(); int state = 1; SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId); @@ -2258,7 +2195,24 @@ public class MapLogic { if(sMainLevelConfig.getLevelLimit()>level){ state =-1; } - user.getMainLevelManager().updateFight(sMainLevelConfig.getNextLevel(),state); + }else{ + state =2; + } + user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, fightId,0,1); + Poster.getPoster().dispatchEvent(new FightMainEvent(user.getId(),fightId)); + user.getMainLevelManager().updateFight(sMainLevelConfig.getNextLevel(),state); + if(state == -1){ + //删除为0的 + Map fightStateInfo = user.getMainLevelManager().getFightStateInfo(); + Set removeCache = new HashSet<>(); + for(Map.Entry item : fightStateInfo.entrySet()){ + if(item.getValue()==0 && item.getKey()!=fightId){ + removeCache.add(item.getKey()); + } + } + for(Integer removeId : removeCache){ + user.getMainLevelManager().removeFightStateInfo(removeId); + } } } @@ -2402,31 +2356,6 @@ public class MapLogic { - /** - * 开启关卡 - * - * @param levelDifficultyManager - * @param fightId - */ - private void openNextFightIds(LevelDifficultyManager levelDifficultyManager, PlayerManager playerInfoManager, int fightId) { - Map levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap(); - Map levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap(); - for (Map.Entry entry : levelDifficultyMap.entrySet()) { - LevelDifficulty levelDifficulty = entry.getValue(); - int id = levelDifficulty.getFightId(); - SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(id); - if (levelDifficultyInfosMap.containsKey(id)) { - continue; - } - if (sLevelDifficultyConfig.getPrecondition() != fightId) { - continue; - } - levelDifficultyManager.newLevelDifficulty(id, levelDifficulty.getType(), levelDifficulty.getAreaId()); - } - } - - - public void gmCrossFight(int uid, int arrayMapId) throws Exception { User user = UserManager.getUser(uid); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java index c509fa8a3..f405c0be0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepLogic.java @@ -1,26 +1,15 @@ package com.ljsd.jieling.handler.map; -import com.ljsd.jieling.config.SLevelDifficultyConfig; -import com.ljsd.jieling.globals.BIReason; -import com.ljsd.jieling.globals.Global; + import com.ljsd.jieling.handler.map.behavior.BaseBehavior; -import com.ljsd.jieling.logic.dao.*; -import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.protocols.CommonProto; -import com.ljsd.jieling.protocols.FightInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; -import com.ljsd.jieling.util.CBean2Proto; -import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; -import com.ljsd.jieling.util.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ConfigurableApplicationContext; -import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.HashMap; +import java.util.Map; public class SweepLogic { @@ -59,55 +48,6 @@ public class SweepLogic { * @param fightId * @param sweepTimes */ - public void sweepFight(ISession session, int fightId, int sweepTimes,int targetItem,int targetNum,MessageTypeProto.MessageType messageType) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); - LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); - if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){ - LOGGER.info("startLevelDifficultyFight==> uid={},fightId, levelDifficulty is null ",uid,fightId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "该地图未通关"); - return; - } - SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); - if (sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() +sweepTimes > sLevelDifficultyConfig.getMaxCountPerDay()){ - LOGGER.info("startLevelDifficultyFight==>uid={},fightId={} challengeTimes={},MaxTime={}",uid,fightId,levelDifficulty.getChallengeTimes(),sLevelDifficultyConfig.getMaxCountPerDay()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "次数不足"); - return; - } - - int[][] cost = MapLogic.getInstance().getCost(sLevelDifficultyConfig, sweepTimes); - boolean flag = ItemUtil.fightItemCost(user,cost); - if (!flag){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "道具不足"); - return; - } - boolean change = false; - List dropList = new CopyOnWriteArrayList<>(); - for (int i = 0 ; i < sweepTimes ;i++){ - if (targetItem!= 0){ - Item item = user.getItemManager().getItem(targetItem); - if(item!=null && item.getItemNum()>=targetNum){ - sweepTimes=i; - change = true; - break; - } - } - CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0, BIReason.LEVELDIFFICULTY_SWEEP_REWARD); - dropList.add(drop.build()); - } - if(change){ - cost = MapLogic.getInstance().getCost(sLevelDifficultyConfig, sweepTimes); - } - //扣除道具 - ItemUtil.itemCost(user, cost,BIReason.SWEEP_FIGHT_CONSUME,fightId); - - LOGGER.info("sweepFight=>uid={},sweepTimes={},exp={}",uid,sweepTimes,sLevelDifficultyConfig.getExp()); - FightInfoProto.SweepRightResponse.Builder builder = FightInfoProto.SweepRightResponse.newBuilder(); - builder.addAllDrop(dropList); - builder.setItemInfo(CBean2Proto.getItemInfo(user.getItemManager().getItemMap().get(Global.STAMINA))); - levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +sweepTimes); - user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, fightId, 0,sweepTimes); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); + public void sweepFight(ISession session, int fightId, int sweepTimes, int targetItem, int targetNum, MessageTypeProto.MessageType messageType) throws Exception { } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index b909fd850..946e46acc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -12,6 +12,8 @@ import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.logic.activity.FightMainEventHandler; +import com.ljsd.jieling.logic.activity.UserLevelEventHandler; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.blood.BloodLogic; import com.ljsd.jieling.logic.dao.*; @@ -231,6 +233,8 @@ public class GlobalDataManaager { StoreLogic.checkGlobalStore(true); new RPCServerTask(configurableApplicationContext).start(); new RPCGmServerTask(configurableApplicationContext).start(); + new UserLevelEventHandler(); + new FightMainEventHandler(); } catch (Exception e) { LOGGER.error("e",e); } @@ -379,6 +383,7 @@ public class GlobalDataManaager { for(int i = 0 ; i values[0][0]; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java new file mode 100644 index 000000000..8118ca8a3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FightMainEventHandler.java @@ -0,0 +1,47 @@ +package com.ljsd.jieling.logic.activity; + + +import com.ljsd.jieling.config.SGlobalActivity; +import com.ljsd.jieling.config.SGlobalSystemConfig; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.activity.event.FightMainEvent; +import com.ljsd.jieling.logic.activity.event.GoldEvent; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; + +import com.ljsd.jieling.util.ItemUtil; + + +import java.util.List; + + +public class FightMainEventHandler implements IEventHandler{ + + public FightMainEventHandler() { + Poster.getPoster().listenEvent(this, FightMainEvent.class); + } + + + @Override + public void onEvent(IEvent event) throws Exception { + if (!(event instanceof FightMainEvent)) + return; + FightMainEvent fightMainEvent = (FightMainEvent) event; + int fightId = fightMainEvent.getFightId(); + List sGlobalSystemConfigs = SGlobalSystemConfig.sGlobalSystemConfigMapByTypeAndConditionMap.get(1).get(fightId); + if(sGlobalSystemConfigs == null){ + return; + } + for(SGlobalSystemConfig sGlobalSystemConfig : sGlobalSystemConfigs){ + int[][] openGifts = sGlobalSystemConfig.getOpenGifts(); + if(openGifts!=null && openGifts.length>0){ + int uid = fightMainEvent.getUid(); + User user = UserManager.getUser(uid); + ItemUtil.drop(user,openGifts, BIReason.SYSTERM_OPEN_REWARD); + } + } + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java index 9d712da7e..bf83a4f03 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java @@ -3,12 +3,9 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.config.SActivityRewardConfig; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.ActivityProgressInfo; -import com.ljsd.jieling.logic.dao.LevelDifficulty; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.MessageUtil; - class GrowthFundActivity extends AbstractActivity { public GrowthFundActivity(int id) { @@ -27,10 +24,7 @@ class GrowthFundActivity extends AbstractActivity { return false; } }else if(type == 15){ - LevelDifficulty levelDifficulty = user.getLevelDifficultyManager().getLevelDifficultyInfosMap().get(value); - if(levelDifficulty == null || levelDifficulty.getState()!= Global.FIGHT_CLEARANCE){ - return false; - } + return user.getMainLevelManager().getFightId()>value; } return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java new file mode 100644 index 000000000..856002500 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java @@ -0,0 +1,39 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.config.SGlobalSystemConfig; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.activity.event.FightMainEvent; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.UserLevelEvent; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.util.ItemUtil; + +import java.util.List; + +public class UserLevelEventHandler implements IEventHandler{ + + public UserLevelEventHandler() { + Poster.getPoster().listenEvent(this, UserLevelEvent.class); + } + @Override + public void onEvent(IEvent event) throws Exception { + if (!(event instanceof UserLevelEvent)) + return; + UserLevelEvent userLevelEvent = (UserLevelEvent) event; + int level = userLevelEvent.getLevel(); + List sGlobalSystemConfigs = SGlobalSystemConfig.sGlobalSystemConfigMapByTypeAndConditionMap.get(2).get(level); + if(sGlobalSystemConfigs == null){ + return; + } + for(SGlobalSystemConfig sGlobalSystemConfig : sGlobalSystemConfigs){ + int[][] openGifts = sGlobalSystemConfig.getOpenGifts(); + if(openGifts!=null && openGifts.length>0){ + int uid = userLevelEvent.getUid(); + User user = UserManager.getUser(uid); + ItemUtil.drop(user,openGifts, BIReason.SYSTERM_OPEN_REWARD); + } + } + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FightMainEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FightMainEvent.java new file mode 100644 index 000000000..e461a5067 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/FightMainEvent.java @@ -0,0 +1,20 @@ +package com.ljsd.jieling.logic.activity.event; + +public class FightMainEvent implements IEvent { + + private int uid; + private int fightId; + + public FightMainEvent(int uid, int fightId) { + this.uid = uid; + this.fightId = fightId; + } + + public int getUid() { + return uid; + } + + public int getFightId() { + return fightId; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/UserLevelEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/UserLevelEvent.java new file mode 100644 index 000000000..820d70793 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/UserLevelEvent.java @@ -0,0 +1,19 @@ +package com.ljsd.jieling.logic.activity.event; + +public class UserLevelEvent implements IEvent { + private int uid; + private int level; + + public UserLevelEvent(int uid, int level) { + this.uid = uid; + this.level = level; + } + + public int getUid() { + return uid; + } + + public int getLevel() { + return level; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficulty.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficulty.java deleted file mode 100644 index eea241a95..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficulty.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.ljsd.jieling.logic.dao; - -import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.globals.Global; -import com.ljsd.jieling.logic.dao.root.User; - -public class LevelDifficulty extends MongoBase { - - private int areaId; - - private int fightId; - - private int state; //2 已开启 3:已打过未通过,=4:已通过. - - private int challengeTimes; - - private int type; //1:简单 2:中等 3:困难 - - public LevelDifficulty(){ - //绑定关系 -// this.setRootCollection(User._COLLECTION_NAME); - } - - public LevelDifficulty(int fightId,int type,int areaId){ - this.setRootCollection(User._COLLECTION_NAME); - this.areaId = areaId; - this.fightId = fightId; - this.state = Global.FIGHT_OPEND; - this.challengeTimes = 0; - this.type = type; - } - - public void setFightId(int fightId) { - updateString("fightId", fightId); - this.fightId = fightId; - } - - public void setState(int state) { - updateString("state", state); - this.state = state; - } - - public void setChallengeTimes(int challengeTimes) { - updateString("challengeTimes", challengeTimes); - this.challengeTimes = challengeTimes; - } - - public void setType(int type) { - updateString("type", type); - this.type = type; - } - - public void setAreaId(int areaId) { - updateString("areaId", areaId); - this.areaId = areaId; - } - - public int getFightId() { - return fightId; - } - - public int getState() { - return state; - } - - public int getChallengeTimes() { - return challengeTimes; - } - - public int getType() { - return type; - } - - public int getAreaId() { - return areaId; - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficultyManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficultyManager.java deleted file mode 100644 index 896bd27e6..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/LevelDifficultyManager.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.ljsd.jieling.logic.dao; - - -import com.ljsd.common.mogodb.MongoBase; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -public class LevelDifficultyManager extends MongoBase { - - private Map levelDifficultyInfosMap = new ConcurrentHashMap<>(); - private List openAreaIds = new CopyOnWriteArrayList<>(); - - public void addLevelDifficulty(LevelDifficulty LevelDifficulty) { - LevelDifficulty.init(this.getRootId(), getMongoKey() + ".levelDifficultyInfosMap." + LevelDifficulty.getFightId()); - updateString("levelDifficultyInfosMap." + LevelDifficulty.getFightId(), LevelDifficulty); - levelDifficultyInfosMap.put(LevelDifficulty.getFightId(), LevelDifficulty); - } - - public Map getLevelDifficultyInfosMap() { - return levelDifficultyInfosMap; - } - - - public LevelDifficulty newLevelDifficulty(int fightId,int type,int areaId) { - LevelDifficulty levelDifficulty = new LevelDifficulty(fightId,type,areaId); - addLevelDifficulty(levelDifficulty); - addOpendAreaid(areaId); - return levelDifficulty; - } - - public void setLevelDifficultyInfosMap(Map levelDifficultyInfosMap) { - this.levelDifficultyInfosMap = levelDifficultyInfosMap; - } - - public List getOpenAreaIds() { - return openAreaIds; - } - - public void addOpendAreaid(int openAreaId) { - if (!this.openAreaIds.contains(openAreaId)){ - this.openAreaIds.add(openAreaId); - updateString("openAreaIds" , openAreaIds); - } - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java index c8e04daac..2a2551957 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java @@ -30,11 +30,21 @@ public class MainLevelManager extends MongoBase { int timeDuration = (int)(System.currentTimeMillis()/1000) - lastTime; int times = timeDuration / adventureRefresh; int mod = timeDuration % adventureRefresh; + int adventureOffline = gameSetting.getAdventureOffline()*60*60/adventureRefresh; if(mod!=0){ times += 1; startTime-=mod; updateString("startTime",startTime); } + if(times<1){ + times=1; + startTime-=adventureRefresh; + updateString("startTime",startTime); + } + int adventurenTimes = ((int) (System.currentTimeMillis() / 1000) - lastTime) / SGameSetting.getGameSetting().getAdventureRefresh(); + if(adventureOffline<=adventurenTimes){ + times=0; + } fightStateInfo.put(fightId,times); updateString("fightStateInfo." + fightId,times); @@ -62,6 +72,11 @@ public class MainLevelManager extends MongoBase { updateString("fightStateInfo",fightStateInfo); } + public void removeFightStateInfo(int fightId){ + fightStateInfo.remove(fightId); + removeString(getMongoKey()+"fightStateInfo."+fightId); + } + public void addBossGroup(String bossId){ if(!bossIds.containsKey(fightId)){ bossIds.put(fightId,new HashSet<>()); @@ -70,15 +85,6 @@ public class MainLevelManager extends MongoBase { updateString("bossIds." + fightId,bossIds); } - public void removeBossGroup(String bossId){ - bossIds.remove(bossId); - updateString("bossIds",bossIds); - } - public void removeMutBossGroup(Set bossIdsTmp){ - bossIds.clear(); - updateString("bossIds",bossIds); - } - public int getFightId() { return fightId; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java index 0fd3f7c27..29f15cc92 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java @@ -30,8 +30,6 @@ public class User { private WorkShopController workShopController; - private LevelDifficultyManager levelDifficultyManager; // 关卡信息 - private ActivityManager activityManager; private ArenaManager arenaManager; @@ -66,7 +64,6 @@ public class User { this.equipManager = new EquipManager(); this.pokemonManager = new PokemonManager(); this.workShopController = new WorkShopController(); - this.levelDifficultyManager = new LevelDifficultyManager(); this.activityManager = new ActivityManager(); this.arenaManager = new ArenaManager(); this.secretBoxManager = new SecretBoxManager(); @@ -89,7 +86,6 @@ public class User { this.equipManager.init(id, MongoKey.equipManager); this.pokemonManager.init(id, MongoKey.pokemonManager); this.workShopController.init(id, MongoKey.workShopController); - this.levelDifficultyManager.init(id, MongoKey.levelDifficultyManager); this.activityManager.init(id, MongoKey.activityManager); this.arenaManager.init(id, MongoKey.arenaManager); this.secretBoxManager.init(id, MongoKey.secretBoxManager); @@ -174,14 +170,6 @@ public class User { return workShopController; } - public LevelDifficultyManager getLevelDifficultyManager() { - return levelDifficultyManager; - } - - public void setLevelDifficultyManager(LevelDifficultyManager levelDifficultyManager) { - this.levelDifficultyManager = levelDifficultyManager; - } - public ActivityManager getActivityManager() { return activityManager; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 290a5387d..230c1b70f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -453,8 +453,8 @@ public class MissionLoigc { count = cumulationData.getsEquipQualityCount()[missionSubType[0]-1]; break; case LEVEL_STORY_PASS: - if(SLevelDifficultyConfig.getLevelDifficultyMap().containsKey(missionSubType[0])){ - int type = SLevelDifficultyConfig.getLevelDifficultyMap().get(missionSubType[0]).getType(); + if(SMainLevelConfig.config.containsKey(missionSubType[0])){ + int type = SMainLevelConfig.config.get(missionSubType[0]).getDifficulty(); if(cumulationData.levlePassMap.containsKey(type)){ count =missionSubType[0] <=cumulationData.levlePassMap.get(type) ?1:0; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java index 1b4ed1c37..60b6da8d1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/FightDataManager.java @@ -1,9 +1,8 @@ package com.ljsd.jieling.logic.mission.data; import com.ljsd.jieling.config.SChallengeConfig; -import com.ljsd.jieling.config.SLevelDifficultyConfig; +import com.ljsd.jieling.config.SMainLevelConfig; import com.ljsd.jieling.logic.dao.CumulationData; -import com.ljsd.jieling.logic.dao.LevelDifficulty; import com.ljsd.jieling.logic.mission.MissionType; public class FightDataManager implements BaseDataManager{ @@ -18,8 +17,8 @@ public class FightDataManager implements BaseDataManager{ data.levelStoryTimes+=fightTimes; result = new CumulationData.Result(missionType); }else if(missionType == MissionType.LEVEL_STORY_PASS){ - LevelDifficulty levelDifficulty = SLevelDifficultyConfig.getLevelDifficultyMap().get(fightId); - int type = levelDifficulty.getType(); + SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId); + int type = sMainLevelConfig.getDifficulty(); Integer maxFightId = data.levlePassMap.get(type); if(maxFightId!=null){ if(fightId>maxFightId){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 1f013be2f..753f3be36 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -13,8 +13,10 @@ import com.ljsd.jieling.handler.map.TemporaryItems; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.ArenaChallengeEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.UseItemEvent; +import com.ljsd.jieling.logic.activity.event.UserLevelEvent; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; @@ -532,6 +534,7 @@ public class ItemUtil { } while (curExp >= levelUpExp && curExp <= maxExp) { playerInfoManager.setLevel(playerInfoManager.getLevel() + 1); + Poster.getPoster().dispatchEvent(new UserLevelEvent(user.getId(),playerInfoManager.getLevel())); if(playerInfoManager.getLevel()==2&&playerInfoManager.getNickName().equals(String.valueOf(playerInfoManager.getRootId()))){ //TODO 走表 String title ="改名卡奖励"; @@ -1291,6 +1294,10 @@ public class ItemUtil { SVipLevelConfig sVipLevelConfig = SVipLevelConfig.getsVipLevelConfigMap().get(vipLevel); Map privilegeMap = sVipLevelConfig.getPrivilegeMap(); if(reason == BIReason.ADVENTURE_BASE_REWARD){ + if(itemType == GlobalItemType.EXP){ + sourceNum = parseTheValueByPrivilegeMap(privilegeMap,sourceNum,VipPrivilegeType.ADVENTURE_EXP_REWARD); + return sourceNum; + } sourceNum = parseTheValueByPrivilegeMap(privilegeMap,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD); } if(reason == BIReason.ADVENTURE_BASE_REWARD || reason == BIReason.ADVENTURE_RANDOM_REWARDD ){