背包上限修改

back_recharge
lvxinran 2019-10-23 17:38:46 +08:00
parent 5ed723c9da
commit e50658debc
1 changed files with 25 additions and 12 deletions

View File

@ -707,6 +707,7 @@ public class ItemUtil {
if (items.isEmpty() && equips.isEmpty() && especialEquips.isEmpty()&&soulEquips.isEmpty()) { if (items.isEmpty() && equips.isEmpty() && especialEquips.isEmpty()&&soulEquips.isEmpty()) {
return; return;
} }
Map<Integer,Integer> equipMap = new HashMap<>();
Map<Integer, Item> itemMap = user.getItemManager().getItemMap(); Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
StringBuilder rewardStr = new StringBuilder(); StringBuilder rewardStr = new StringBuilder();
boolean isFirst = true; boolean isFirst = true;
@ -766,13 +767,16 @@ public class ItemUtil {
} }
continue; continue;
} }
user.getEquipManager().addEquip(user,equip); equipMap.put(equip.getEquipId(),equipMap.containsKey(equip.getEquipId())?equipMap.get(equip.getEquipId())+1:1);
KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,BIReason.TEMPORARY_REWARD,GlobalsDef.addReason,sItem.getId(),1,-1); KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,BIReason.TEMPORARY_REWARD,GlobalsDef.addReason,sItem.getId(),1,-1);
} }
addEquip(user,equipMap,CommonProto.Drop.newBuilder(),BIReason.MAP_GENERAL_FIGHT_REWARD);
equipMap = new HashMap<>();
for(EspecialEquip especialEquip:especialEquips){ for(EspecialEquip especialEquip:especialEquips){
user.getEquipManager().addEspecialEquip(user,especialEquip); equipMap.put(especialEquip.getEquipId(),equipMap.containsKey(especialEquip.getEquipId())?equipMap.get(especialEquip.getEquipId())+1:1);
} }
addEquip(user,equipMap,CommonProto.Drop.newBuilder(),BIReason.MAP_GENERAL_FIGHT_REWARD);
equipMap = new HashMap<>();
for(SoulEquip soulEquip:soulEquips){ for(SoulEquip soulEquip:soulEquips){
SItem sItem = SItem.getsItemMap().get (soulEquip.getEquipId()); SItem sItem = SItem.getsItemMap().get (soulEquip.getEquipId());
if (sItem == null){ if (sItem == null){
@ -790,8 +794,9 @@ public class ItemUtil {
} }
continue; continue;
} }
user.getEquipManager().addSoulEquip(soulEquip); equipMap.put(soulEquip.getEquipId(),equipMap.containsKey(soulEquip.getEquipId())?equipMap.get(soulEquip.getEquipId())+1:1);
} }
addSoulEquip(user,equipMap,CommonProto.Drop.newBuilder(),BIReason.MAP_GENERAL_FIGHT_REWARD);
user.getMapManager().setTemporaryItems(null); user.getMapManager().setTemporaryItems(null);
if(!isVictory){ if(!isVictory){
String title = SErrorCodeEerverConfig.getI18NMessage("map_overtime_title"); String title = SErrorCodeEerverConfig.getI18NMessage("map_overtime_title");
@ -908,8 +913,14 @@ public class ItemUtil {
int hasEquipNum = user.getEquipManager().getEquipMap().size(); int hasEquipNum = user.getEquipManager().getEquipMap().size();
String title = SErrorCodeEerverConfig.getI18NMessage("equip_bag_limit_title"); String title = SErrorCodeEerverConfig.getI18NMessage("equip_bag_limit_title");
String content = SErrorCodeEerverConfig.getI18NMessage("equip_bag_limit_txt"); String content = SErrorCodeEerverConfig.getI18NMessage("equip_bag_limit_txt");
int equipNum = equipMap.entrySet().stream().filter(k ->{
if (hasEquipNum >= gameSetting.getEquipNumlimit()){ int itemType = SItem.getsItemMap().get(k.getKey()).getItemType();
if(itemType==GlobalItemType.EQUIP){
return true;
}
return false;
}).collect(Collectors.toSet()).size();
if (hasEquipNum +equipNum>= gameSetting.getEquipNumlimit()){
String reward = getLimitReward(equipMap,filter); String reward = getLimitReward(equipMap,filter);
int nowTime =(int) (TimeUtils.now()/1000); int nowTime =(int) (TimeUtils.now()/1000);
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME);
@ -920,14 +931,15 @@ public class ItemUtil {
List<CommonProto.Equip> equipList = new CopyOnWriteArrayList<>(); List<CommonProto.Equip> equipList = new CopyOnWriteArrayList<>();
List<CommonProto.Equip> especialEquip = new CopyOnWriteArrayList<>(); List<CommonProto.Equip> especialEquip = new CopyOnWriteArrayList<>();
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit); int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
if(equipMap.entrySet().stream().filter(k ->{ int especialNum = equipMap.entrySet().stream().filter(k ->{
int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); int itemType = SItem.getsItemMap().get(k.getKey()).getItemType();
if(itemType==GlobalItemType.ESPECIAL_EQUIP){ if(itemType==GlobalItemType.ESPECIAL_EQUIP){
return true; return true;
} }
return false; return false;
}).collect(Collectors.toSet()).size()>0){ }).collect(Collectors.toSet()).size();
if (user.getEquipManager().getEspecialEquipMap().size() >=limit){ if(especialNum>0){
if (user.getEquipManager().getEspecialEquipMap().size() +especialNum>=limit){
String bagTitle = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_title"); String bagTitle = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_title");
String bagContent = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_txt"); String bagContent = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_txt");
String bagReward = getLimitReward(equipMap,filter); String bagReward = getLimitReward(equipMap,filter);
@ -985,15 +997,16 @@ public class ItemUtil {
// return; // return;
// } // }
if(equipMap.entrySet().stream().filter(k ->{ int tempNum = equipMap.entrySet().stream().filter(k ->{
int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); int itemType = SItem.getsItemMap().get(k.getKey()).getItemType();
if(itemType==GlobalItemType.SOUL_MARK){ if(itemType==GlobalItemType.SOUL_MARK){
return true; return true;
} }
return false; return false;
}).collect(Collectors.toSet()).size()>0){ }).collect(Collectors.toSet()).size();
if(tempNum>0){
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
if (user.getEquipManager().getSoulEquipMap().size() >=limit){ if (user.getEquipManager().getSoulEquipMap().size()+tempNum >=limit){
String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title");
String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt");
String reward = getLimitReward(equipMap,filter); String reward = getLimitReward(equipMap,filter);