邮件bug
parent
07dbb37262
commit
d736b60c24
|
@ -248,18 +248,19 @@ public class MailLogic {
|
||||||
// 转换二维数组
|
// 转换二维数组
|
||||||
int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString());
|
int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString());
|
||||||
// 检测卡牌和装备背包
|
// 检测卡牌和装备背包
|
||||||
boolean isLimit = ItemUtil.checkCardAndEquipLimit(user,itemArr);
|
int limit = ItemUtil.checkCardAndEquipLimit(user,itemArr);
|
||||||
if (isLimit){
|
if (limit == 0){
|
||||||
throw new ErrorCodeException(ErrorCode.ITEM_POCKET_IS_FULL);
|
// 领取道具
|
||||||
}
|
result = ItemUtil.dropByMail(user, itemArr, dropBuilder, BIReason.TAKE_MAIL_REWARD);
|
||||||
// 领取道具
|
|
||||||
result = ItemUtil.dropByMail(user, itemArr, dropBuilder, BIReason.TAKE_MAIL_REWARD);
|
|
||||||
|
|
||||||
if (result == 1){
|
if (result == 1){
|
||||||
// 改变邮件状态
|
// 改变邮件状态
|
||||||
mail.setState(Global.MAIL_DRAW_ST_GOT);
|
mail.setState(Global.MAIL_DRAW_ST_GOT);
|
||||||
mail.setNoUseDeleteTime(TimeUtils.now()+TimeUtils.DAY*Global.MAIL_NOUSE_DELETE_TIME);
|
mail.setNoUseDeleteTime(TimeUtils.now()+TimeUtils.DAY*Global.MAIL_NOUSE_DELETE_TIME);
|
||||||
mailManager.addMail(mail);
|
mailManager.addMail(mail);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
result =2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1682,30 +1682,39 @@ public class ItemUtil {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测卡牌和道具上限
|
||||||
|
* 2021-1-25:装备属于道具一种,所以不再另作处理,做默认
|
||||||
|
* @param user
|
||||||
|
* @param itemArr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static int checkCardAndEquipLimit( User user ,int[][] itemArr) {
|
||||||
|
int result = 0;
|
||||||
|
|
||||||
public static boolean checkCardAndEquipLimit( User user ,int[][] itemArr) {
|
|
||||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||||
Map<Integer, Integer> itemTypeMap = getItemTypeMap(itemArr);
|
Map<Integer, Integer> itemTypeMap = getItemTypeMap(itemArr);
|
||||||
for (Map.Entry<Integer, Integer> entry : itemTypeMap.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : itemTypeMap.entrySet()) {
|
||||||
switch (entry.getKey()){
|
if (entry.getKey() == GlobalItemType.CARD){
|
||||||
case GlobalItemType.CARD:
|
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
||||||
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
// 英雄数量超最大上限
|
||||||
if (hasHeroNum+entry.getValue() >= gameSetting.getHeroNumlimit()){
|
if (hasHeroNum+entry.getValue() > gameSetting.getHeroNumlimit()){
|
||||||
return true;
|
result++;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case GlobalItemType.EQUIP:
|
|
||||||
EquipManager equipManager = user.getEquipManager();
|
|
||||||
int hasEquipNum = equipManager.getEquipMap().size();
|
|
||||||
if (hasEquipNum +entry.getValue()>= gameSetting.getEquipNumlimit()){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
// 道具校验
|
||||||
|
for(int[] ints:itemArr){
|
||||||
|
Item item = user.getItemManager().getItem(ints[0]);
|
||||||
|
SItem sItem = SItem.getsItemMap().get(ints[0]);
|
||||||
|
//数量超过了
|
||||||
|
if (item.getItemNum()+ints[1] > sItem.getItemNumlimit()){
|
||||||
|
result++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue