邮件bug

back_recharge
duhui 2021-01-25 18:09:40 +08:00
parent 07dbb37262
commit d736b60c24
2 changed files with 39 additions and 29 deletions

View File

@ -248,18 +248,19 @@ public class MailLogic {
// 转换二维数组
int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString());
// 检测卡牌和装备背包
boolean isLimit = ItemUtil.checkCardAndEquipLimit(user,itemArr);
if (isLimit){
throw new ErrorCodeException(ErrorCode.ITEM_POCKET_IS_FULL);
}
// 领取道具
result = ItemUtil.dropByMail(user, itemArr, dropBuilder, BIReason.TAKE_MAIL_REWARD);
int limit = ItemUtil.checkCardAndEquipLimit(user,itemArr);
if (limit == 0){
// 领取道具
result = ItemUtil.dropByMail(user, itemArr, dropBuilder, BIReason.TAKE_MAIL_REWARD);
if (result == 1){
// 改变邮件状态
mail.setState(Global.MAIL_DRAW_ST_GOT);
mail.setNoUseDeleteTime(TimeUtils.now()+TimeUtils.DAY*Global.MAIL_NOUSE_DELETE_TIME);
mailManager.addMail(mail);
if (result == 1){
// 改变邮件状态
mail.setState(Global.MAIL_DRAW_ST_GOT);
mail.setNoUseDeleteTime(TimeUtils.now()+TimeUtils.DAY*Global.MAIL_NOUSE_DELETE_TIME);
mailManager.addMail(mail);
}
}else {
result =2;
}
}

View File

@ -1682,30 +1682,39 @@ public class ItemUtil {
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();
Map<Integer, Integer> itemTypeMap = getItemTypeMap(itemArr);
for (Map.Entry<Integer, Integer> entry : itemTypeMap.entrySet()) {
switch (entry.getKey()){
case GlobalItemType.CARD:
int hasHeroNum = user.getHeroManager().getHeroMap().size();
if (hasHeroNum+entry.getValue() >= gameSetting.getHeroNumlimit()){
return true;
}
break;
case GlobalItemType.EQUIP:
EquipManager equipManager = user.getEquipManager();
int hasEquipNum = equipManager.getEquipMap().size();
if (hasEquipNum +entry.getValue()>= gameSetting.getEquipNumlimit()){
return true;
}
break;
default:
break;
if (entry.getKey() == GlobalItemType.CARD){
int hasHeroNum = user.getHeroManager().getHeroMap().size();
// 英雄数量超最大上限
if (hasHeroNum+entry.getValue() > gameSetting.getHeroNumlimit()){
result++;
}
}
}
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;
}
/**