猎妖之路招募节点bug

back_recharge
zhangshanxue 2020-06-13 16:58:08 +08:00
parent 344501791f
commit 5264ddcb83
2 changed files with 32 additions and 23 deletions

View File

@ -71,25 +71,29 @@ public class HeroNodeGetInfoRequestHandler extends BaseHandler<Expedition.HeroNo
Map<String, Hero> heroMapTemp = user.getExpeditionManager().getHeroMapTemp(nodeId); Map<String, Hero> heroMapTemp = user.getExpeditionManager().getHeroMapTemp(nodeId);
if(heroMapTemp.size()==0){ if(heroMapTemp.size()==0){
SExpeditionRecruitConfig sExpeditionRecruitConfig = STableManager.getConfig(SExpeditionRecruitConfig.class).get(sExpeditionNodeConfig.getPoolId()); int poolId = sExpeditionNodeConfig.getPoolId();
if(sExpeditionRecruitConfig!=null) { TreeSet<Integer> randomTid = ExpeditionLogic.getRandomTid(poolId, recruitTime);
int i = sExpeditionRecruitConfig.getHeroId();
//获取最大战力hero
String maxforceHero = user.getPlayerInfoManager().getMaxforceHero();
if (StringUtil.isEmpty(maxforceHero)) {
HeroLogic.getInstance().calTeamTotalForce(user, 1, false);
maxforceHero = user.getPlayerInfoManager().getMaxforceHero();
}
Hero hero = user.getHeroManager().getHeroMap().get(maxforceHero);
if (hero == null) {
throw new ErrorCodeException("试炼节点英雄掉落失败");
}
for (int j = 0; j < recruitTime; j++) { //获取最大战力hero
String maxforceHero = user.getPlayerInfoManager().getMaxforceHero();
if (StringUtil.isEmpty(maxforceHero)) {
HeroLogic.getInstance().calTeamTotalForce(user, 1, false);
maxforceHero = user.getPlayerInfoManager().getMaxforceHero();
}
Hero hero = user.getHeroManager().getHeroMap().get(maxforceHero);
if (hero == null) {
throw new ErrorCodeException("招募节点英雄掉落失败");
}
for (Integer integer:randomTid) {
SExpeditionRecruitConfig sExpeditionRecruitConfig = STableManager.getConfig(SExpeditionRecruitConfig.class).get(integer);
if(sExpeditionRecruitConfig!=null) {
int i = sExpeditionRecruitConfig.getHeroId();
ExpeditionLogic.createHero(i, uid, hero, nodeId); ExpeditionLogic.createHero(i, uid, hero, nodeId);
} }
} }
} }
heroMapTemp = user.getExpeditionManager().getHeroMapTemp(nodeId); heroMapTemp = user.getExpeditionManager().getHeroMapTemp(nodeId);
heroMapTemp.forEach((s, hero) -> { heroMapTemp.forEach((s, hero) -> {

View File

@ -6,6 +6,7 @@ import com.ljsd.jieling.config.clazzStaticCfg.MapStaticConfig;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.dataReport.reportBeans_37.Repot37EventUtil; import com.ljsd.jieling.dataReport.reportBeans_37.Repot37EventUtil;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType; import com.ljsd.jieling.globals.GlobalItemType;
@ -476,26 +477,30 @@ public class ItemUtil {
private static void getMap(int itemId ,int itemNum, Map<Integer, Integer> itemMap, private static void getMap(int itemId ,int itemNum, Map<Integer, Integer> itemMap,
Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap ,Map<Integer,Integer> randomMap,float dropRatio) { Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap ,Map<Integer,Integer> randomMap,float dropRatio) {
Map<Integer, Integer> mapRe = getMapRe(itemId, itemMap, cardMap, equipMap, randomMap);
putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , mapRe);
}
public static Map<Integer, Integer> getMapRe(int itemId, Map<Integer, Integer> itemMap,
Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap ,Map<Integer,Integer> randomMap) {
SItem sItem = SItem.getsItemMap().get(itemId); SItem sItem = SItem.getsItemMap().get(itemId);
int itemType =getItemType(sItem); int itemType =getItemType(sItem);
switch (itemType) { switch (itemType) {
case GlobalItemType.SOUL_MARK: case GlobalItemType.SOUL_MARK:
case GlobalItemType.ITEM: case GlobalItemType.ITEM:
putcountMap(itemId,MathUtils.numRount((itemNum * dropRatio)) , itemMap); return itemMap;
break;
case GlobalItemType.CARD: case GlobalItemType.CARD:
putcountMap(itemId, itemNum, cardMap); return cardMap;
break;
case GlobalItemType.EQUIP: case GlobalItemType.EQUIP:
case GlobalItemType.ESPECIAL_EQUIP: case GlobalItemType.ESPECIAL_EQUIP:
case GlobalItemType.JEWEL: case GlobalItemType.JEWEL:
putcountMap(itemId, itemNum, equipMap); return equipMap;
break;
case GlobalItemType.RANDOM_ITME: case GlobalItemType.RANDOM_ITME:
putcountMap(itemId, itemNum, randomMap); return randomMap;
break;
default: default:
break; LOGGER.error("新增类型请通知后端");
return new HashMap<>();
} }
} }