邮件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,10 +248,8 @@ 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);
@ -261,6 +259,9 @@ public class MailLogic {
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;
}
} }
PlayerInfoProto.TakeMailResponse takeMailResponse = PlayerInfoProto.TakeMailResponse.newBuilder() PlayerInfoProto.TakeMailResponse takeMailResponse = PlayerInfoProto.TakeMailResponse.newBuilder()

View File

@ -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()){ // 英雄数量超最大上限
return true; if (hasHeroNum+entry.getValue() > gameSetting.getHeroNumlimit()){
} 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;
} }
/** /**