fix itemutil

back_recharge
wangyuan 2019-10-28 15:23:00 +08:00
parent fa9e192375
commit 2fea6f9a36
1 changed files with 23 additions and 2 deletions

View File

@ -257,8 +257,27 @@ public class ItemUtil {
public static void combineReward(User user,int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
public static void combineReward(User user,int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap,int reason){
combineRewardDropGroup(user, dropGroupIds, dropRatio, itemMap, cardMap, equipMap, randomMap);
ItemManager itemManager = user.getItemManager();
for(Map.Entry<Integer,Integer> item : itemMap.entrySet()){
Integer itemId = item.getKey();
Integer value = item.getValue();
SItem sItem = SItem.getsItemMap().get(itemId);
int itemNums = privilegeAdd(user, 1, sItem.getItemType(), value);
Item hadItem = itemManager.getItem(itemId);
int hadNums = 0;
if(hadItem !=null){
hadNums = hadItem.getItemNum();
}
if(hadNums<sItem.getItemNumlimit()){
if(hadNums + itemNums >sItem.getItemNumlimit()){
itemMap.put(itemId,sItem.getItemNumlimit() - hadNums);
}else{
itemMap.put(itemId,itemNums);
}
}
}
}
public static void combineReward(int[][] itemArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
@ -485,7 +504,6 @@ public class ItemUtil {
if(itemNum <= 0){
continue;
}
itemNum=privilegeAdd(user,reason,sItem.getItemType(),itemNum);
if (itemNum >= sItem.getItemNumlimit()){
itemNum = sItem.getItemNumlimit();
}
@ -493,6 +511,9 @@ public class ItemUtil {
if (item == null) {
item = itemManager.newItem(entry.getKey(), itemNum);
} else {
if(item.getItemNum()>= sItem.getItemNumlimit()){
continue;
}
if (item.getItemNum() + entry.getValue() >= sItem.getItemNumlimit()){
itemNum = sItem.getItemNumlimit() -item.getItemNum();
item.setItemNum(sItem.getItemNumlimit());