back_recharge
gaojie 2019-01-28 18:04:49 +08:00
parent 82102d009b
commit 74f93a4b59
2 changed files with 15 additions and 27 deletions

View File

@ -5,12 +5,10 @@ import com.ljsd.jieling.logic.Table;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Table(name = "RewardItemConfig") @Table(name = "RewardItemConfig")
public class SRewardItem implements BaseConfig { public class SRewardItem implements BaseConfig {
public static Map<Integer, SRewardItem> sDropMap; public static Map<Integer, SRewardItem> sDropMap;
public static Map<Integer, SRewardItem> sDropMapByItemId;
private int id; private int id;
private int itemId; private int itemId;
private int chance; //获取概率 private int chance; //获取概率
@ -21,12 +19,6 @@ public class SRewardItem implements BaseConfig {
@Override @Override
public void init() throws Exception { public void init() throws Exception {
sDropMap = STableManager.getConfig(SRewardItem.class); sDropMap = STableManager.getConfig(SRewardItem.class);
Map<Integer, SRewardItem> sDropByItemMap= new ConcurrentHashMap<>();
for (Map.Entry<Integer,SRewardItem> entry :sDropMap.entrySet()){
SRewardItem sRewardItem = entry.getValue();
sDropByItemMap.put(sRewardItem.getItemId(),sRewardItem);
}
sDropMapByItemId = sDropByItemMap;
ItemUtil.initDropReward(); ItemUtil.initDropReward();
} }
@ -39,10 +31,6 @@ public class SRewardItem implements BaseConfig {
return sDropMap; return sDropMap;
} }
public static Map<Integer, SRewardItem> getsDropMapByItemId() {
return sDropMapByItemId;
}
public int getItemId() { public int getItemId() {
return itemId; return itemId;
} }

View File

@ -94,21 +94,21 @@ public class ItemUtil {
rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,Map<Integer, Integer> rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,Map<Integer, Integer>
cardMap, Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap,float dropRatio) { cardMap, Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap,float dropRatio) {
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){ for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
int itemId = 0; int id = 0;
for (int j = 0 ; j < sRewardGroup.getLoop();i++){ for (int j = 0 ; j < sRewardGroup.getLoop();i++){
int index = MathUtils.randomForStrArray(weightArr); int index = MathUtils.randomForStrArray(weightArr);
itemId = Integer.parseInt(rewardArr[index]); id = Integer.parseInt(rewardArr[index]);
if (itemId ==Integer.parseInt(rewardArr[j])){ if (id ==Integer.parseInt(rewardArr[j])){
break; break;
} }
} }
if (0 == itemId){ if (0 == id){
int index = MathUtils.randomForStrArray(weightArr); int index = MathUtils.randomForStrArray(weightArr);
itemId = Integer.parseInt(rewardArr[index]); id = Integer.parseInt(rewardArr[index]);
} }
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId); SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
getMap(itemId,itemNum ,itemMap, cardMap,equipMap,randomMap,dropRatio); getMap(sRewardItem.getItemId(),itemNum ,itemMap, cardMap,equipMap,randomMap,dropRatio);
} }
} }
@ -116,18 +116,18 @@ public class ItemUtil {
Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) { Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) {
for (int i = 0 ; i < randomItemNum;i++){ for (int i = 0 ; i < randomItemNum;i++){
int index = MathUtils.randomForStrArray(weightArr); int index = MathUtils.randomForStrArray(weightArr);
int itemId = Integer.parseInt(rewardArr[index]); int id = Integer.parseInt(rewardArr[index]);
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId); SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
getMap(itemId,itemNum, itemMap, cardMap,equipMap,randomMap,dropRatio); getMap(sRewardItem.getItemId(),itemNum, itemMap, cardMap,equipMap,randomMap,dropRatio);
} }
} }
private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) { private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap ,float dropRatio) {
for (int itemId :itemInfo){ for (int id :itemInfo){
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId); SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
getMap(itemId,itemNum,itemMap, cardMap,equipMap,randomMap,dropRatio); getMap(sRewardItem.getItemId(),itemNum,itemMap, cardMap,equipMap,randomMap,dropRatio);
} }
} }
@ -419,9 +419,9 @@ public class ItemUtil {
continue; continue;
} }
if (rewardStr.length() == 0){ if (rewardStr.length() == 0){
rewardStr = new StringBuilder(String.valueOf(sRewardItem.getItemId())); rewardStr = new StringBuilder(String.valueOf(sRewardItem.getId()));
}else{ }else{
rewardStr.append("#").append(sRewardItem.getItemId()); rewardStr.append("#").append(sRewardItem.getId());
} }
if (weight.length() == 0){ if (weight.length() == 0){
weight = new StringBuilder(String.valueOf(sRewardItem.getChance())); weight = new StringBuilder(String.valueOf(sRewardItem.getChance()));