diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 260182363..c88662c02 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -830,12 +830,21 @@ public class ExpeditionLogic { throw new ErrorCodeException(ErrorCode.CFG_NULL); } //random star - int min = sExpeditionSetting.getMatchForceRange()[0]; - int max= sExpeditionSetting.getMatchForceRange()[1]; + int min = sExpeditionSetting.getLevelForce()[0]; + int max= sExpeditionSetting.getLevelForce()[1]; int finalstar = (int) (star * ((min / 10000f) + ((float) (Math.random() *(max - min))/10000f))); if(finalstar<=20){ finalstar=50; } + SCHero hero1 = SCHero.getsCHero().get(tempid); + if (null != hero1) { + SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(hero1.getStar()); + if(null !=scHeroRankUpConfig&&finalstar>scHeroRankUpConfig.getOpenLevel()){ + finalstar=scHeroRankUpConfig.getOpenLevel(); + } + + } + //random tempid Hero newHero = new Hero(uid,tempid,finalstar,hero); 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 f09f973ff..0a1d14867 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -6,6 +6,7 @@ import com.ljsd.jieling.config.clazzStaticCfg.MapStaticConfig; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.dataReport.reportBeans_37.Repot37EventUtil; +import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; @@ -160,7 +161,7 @@ public class ItemUtil { - private static void combineRewardDropGroup(User user, int[] dropGroupIds, float dropRatio, Map itemMap, Map cardMap, Map equipMap, Map randomMap) { + private static void combineRewardDropGroup(User user, int[] dropGroupIds, float dropRatio, Map itemMap, Map cardMap, Map equipMap, Map randomMap) throws ErrorCodeException{ for (int dropGroupId : dropGroupIds) { if(MapLogic.getInstance().getDifficultyReward().containsKey(dropGroupId)){ dropGroupId =MapLogic.getInstance().getDifficultyReward().get(dropGroupId); @@ -259,7 +260,7 @@ public class ItemUtil { - public static void combineReward(User user,boolean isLoop,int[] dropGroupIds,float dropRatio, Map itemMap, Map cardMap, Map equipMap, Map randomMap,int reason){ + public static void combineReward(User user,boolean isLoop,int[] dropGroupIds,float dropRatio, Map itemMap, Map cardMap, Map equipMap, Map randomMap,int reason)throws ErrorCodeException{ combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap); if(!isLoop){ extraAddItem(user,itemMap,reason); @@ -289,7 +290,7 @@ public class ItemUtil { } } - public static void combineReward(int[][] itemArr, Map itemMap, Map cardMap, Map equipMap, Map randomMap){ + public static void combineReward(int[][] itemArr, Map itemMap, Map cardMap, Map equipMap, Map randomMap)throws ErrorCodeException{ selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap); } @@ -338,19 +339,19 @@ public class ItemUtil { } private static void selectItemArr(int[][] itemArr, Map cardMap, Map - itemMap,Map equipMap,Map randomMap) { + itemMap,Map equipMap,Map randomMap) throws ErrorCodeException{ for (int[] items : itemArr){ getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1); } } private static void selectItemArr(MapitemArr, Map cardMap, Map - itemMap,Map equipMap,Map randomMap) { + itemMap,Map equipMap,Map randomMap) throws ErrorCodeException{ for (Map.Entry items : itemArr.entrySet()){ getMap(items.getKey(), items.getValue(), itemMap, cardMap,equipMap,randomMap,1); } } - private static void selectDrop(User user, SRewardGroup sRewardGroup,Map itemMap, Map cardMap,Map equipMap,Map randomMap , float dropRatio) { + private static void selectDrop(User user, SRewardGroup sRewardGroup,Map itemMap, Map cardMap,Map equipMap,Map randomMap , float dropRatio)throws ErrorCodeException { String dropInfo = dropRewardMap.get(sRewardGroup.getId()); String rewardStr = dropInfo.split("\\|")[0]; String weight = dropInfo.split("\\|")[1]; @@ -395,7 +396,7 @@ public class ItemUtil { private static void getSuccessivelyRandmoMap(User user,SRewardGroup sRewardGroup, String[] rewardArr, String[] weightArr, Map itemMap, Map - cardMap, Map equipMap, Map randomMap, float dropRatio) { + cardMap, Map equipMap, Map randomMap, float dropRatio) throws ErrorCodeException{ for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){ int id = 0; for (int j = 0 ; j < sRewardGroup.getLoop();i++){ @@ -419,7 +420,7 @@ public class ItemUtil { } private static void getRandomMap(User user,int randomItemNum ,String[] rewardArr,String[] weightArr, Map itemMap, Map cardMap, - Map equipMap,Map randomMap ,float dropRatio) { + Map equipMap,Map randomMap ,float dropRatio)throws ErrorCodeException { for (int i = 0 ; i < randomItemNum;i++){ int index = MathUtils.randomForStrArray(weightArr); if (index == -1) { @@ -464,7 +465,7 @@ public class ItemUtil { return itemNum; } - private static void getMap(User user,int[] itemInfo, Map itemMap,Map cardMap,Map equipMap,Map randomMap ,float dropRatio) { + private static void getMap(User user,int[] itemInfo, Map itemMap,Map cardMap,Map equipMap,Map randomMap ,float dropRatio) throws ErrorCodeException{ for (int id :itemInfo){ SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id); int itemNum = getItemNum(user,sRewardItem); @@ -476,15 +477,18 @@ public class ItemUtil { } private static void getMap(int itemId ,int itemNum, Map itemMap, - Map cardMap,Map equipMap ,Map randomMap,float dropRatio) { + Map cardMap,Map equipMap ,Map randomMap,float dropRatio) throws ErrorCodeException{ Map mapRe = getMapRe(itemId, itemMap, cardMap, equipMap, randomMap); putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , mapRe); } public static Map getMapRe(int itemId, Map itemMap, - Map cardMap,Map equipMap ,Map randomMap) { + Map cardMap,Map equipMap ,Map randomMap) throws ErrorCodeException{ SItem sItem = SItem.getsItemMap().get(itemId); + if(sItem==null){ + throw new ErrorCodeException("SItem配置不存在 id:"+itemId); + } int itemType =getItemType(sItem); switch (itemType) { case GlobalItemType.SOUL_MARK: