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 java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Table(name = "RewardItemConfig")
public class SRewardItem implements BaseConfig {
public static Map<Integer, SRewardItem> sDropMap;
public static Map<Integer, SRewardItem> sDropMapByItemId;
private int id;
private int itemId;
private int chance; //获取概率
@ -21,12 +19,6 @@ public class SRewardItem implements BaseConfig {
@Override
public void init() throws Exception {
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();
}
@ -39,10 +31,6 @@ public class SRewardItem implements BaseConfig {
return sDropMap;
}
public static Map<Integer, SRewardItem> getsDropMapByItemId() {
return sDropMapByItemId;
}
public int getItemId() {
return itemId;
}

View File

@ -94,21 +94,21 @@ public class ItemUtil {
rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,Map<Integer, Integer>
cardMap, Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap,float dropRatio) {
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
int itemId = 0;
int id = 0;
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
int index = MathUtils.randomForStrArray(weightArr);
itemId = Integer.parseInt(rewardArr[index]);
if (itemId ==Integer.parseInt(rewardArr[j])){
id = Integer.parseInt(rewardArr[index]);
if (id ==Integer.parseInt(rewardArr[j])){
break;
}
}
if (0 == itemId){
if (0 == id){
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());
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) {
for (int i = 0 ; i < randomItemNum;i++){
int index = MathUtils.randomForStrArray(weightArr);
int itemId = Integer.parseInt(rewardArr[index]);
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId);
int id = Integer.parseInt(rewardArr[index]);
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
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) {
for (int itemId :itemInfo){
SRewardItem sRewardItem = SRewardItem.getsDropMapByItemId().get(itemId);
for (int id :itemInfo){
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(id);
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;
}
if (rewardStr.length() == 0){
rewardStr = new StringBuilder(String.valueOf(sRewardItem.getItemId()));
rewardStr = new StringBuilder(String.valueOf(sRewardItem.getId()));
}else{
rewardStr.append("#").append(sRewardItem.getItemId());
rewardStr.append("#").append(sRewardItem.getId());
}
if (weight.length() == 0){
weight = new StringBuilder(String.valueOf(sRewardItem.getChance()));