物品数量限制

back_recharge
lvxinran 2019-12-19 06:16:01 +08:00
parent dfea99d11c
commit bca69953e7
3 changed files with 13 additions and 12 deletions

View File

@ -17,6 +17,7 @@ public interface Global {
int EXP = 17;//经验
int TREASURE_SCORE = 68;//孙龙宝藏积分
int MISSING_ROOM_ITEM = 79;
int SEND_CARD_COUNT = 20; // 每页发送卡牌个数
int SEND_ITEM_COUNT = 200; // 每页发送道具个数
int SEND_EQUIP_COUNT = 20; // 每页发送装备个数

View File

@ -63,20 +63,16 @@ public class MissingRoomMissionType extends AbstractMissionType{
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, reward(missionId));
missionTypeEnumListMap.add(stateChangeInfo);
} else {
List<int[]> rewardAll = new ArrayList<>();
for (Integer id : getFinishMissionIds()) {
if(missingTime.get(id)==-1){
continue;
}
if (missingTime.get(id)==0||missingTime.get(id) <= TimeUtils.now() / 1000) {
for(int[] re:reward(id)){
rewardAll.add(re);
}
missingTime.put(id,-1);
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(id, MissionState.REWARD, reward(id));
missionTypeEnumListMap.add(stateChangeInfo);
}
}
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, rewardAll.toArray(new int[rewardAll.size()][]));
missionTypeEnumListMap.add(stateChangeInfo);
}
}

View File

@ -509,6 +509,7 @@ public class ItemUtil {
List<CommonProto.Item> sendToFront = new CopyOnWriteArrayList<>();
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) {
SItem sItem = SItem.getsItemMap().get (entry.getKey());
int itemNumlimit = sItem.getItemNumlimit();
if (sItem == null){
continue;
}
@ -516,19 +517,22 @@ public class ItemUtil {
if(itemNum <= 0){
continue;
}
if (itemNum >= sItem.getItemNumlimit()){
itemNum = sItem.getItemNumlimit();
if (itemNum >= itemNumlimit){
itemNum = itemNumlimit;
}
Item item = itemManager.getItem(entry.getKey());
if (item == null) {
item = itemManager.newItem(entry.getKey(), itemNum);
} else {
if(item.getItemNum()>= sItem.getItemNumlimit()){
if(item.getItemNum()>= itemNumlimit){
continue;
}
if (item.getItemNum() + entry.getValue() >= sItem.getItemNumlimit()){
itemNum = sItem.getItemNumlimit() -item.getItemNum();
item.setItemNum(sItem.getItemNumlimit());
if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){
itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax()[1];
}
if (item.getItemNum() + entry.getValue() >= itemNumlimit){
itemNum = itemNumlimit -item.getItemNum();
item.setItemNum(itemNumlimit);
}else{
item.setItemNum(item.getItemNum() + entry.getValue());
}