fix
parent
82102d009b
commit
74f93a4b59
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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()));
|
||||
|
|
Loading…
Reference in New Issue