邮件bug
parent
07dbb37262
commit
d736b60c24
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue