物品数量限制

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 EXP = 17;//经验
int TREASURE_SCORE = 68;//孙龙宝藏积分 int TREASURE_SCORE = 68;//孙龙宝藏积分
int MISSING_ROOM_ITEM = 79;
int SEND_CARD_COUNT = 20; // 每页发送卡牌个数 int SEND_CARD_COUNT = 20; // 每页发送卡牌个数
int SEND_ITEM_COUNT = 200; // 每页发送道具个数 int SEND_ITEM_COUNT = 200; // 每页发送道具个数
int SEND_EQUIP_COUNT = 20; // 每页发送装备个数 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)); MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, reward(missionId));
missionTypeEnumListMap.add(stateChangeInfo); missionTypeEnumListMap.add(stateChangeInfo);
} else { } else {
List<int[]> rewardAll = new ArrayList<>();
for (Integer id : getFinishMissionIds()) { for (Integer id : getFinishMissionIds()) {
if(missingTime.get(id)==-1){ if(missingTime.get(id)==-1){
continue; continue;
} }
if (missingTime.get(id)==0||missingTime.get(id) <= TimeUtils.now() / 1000) { if (missingTime.get(id)==0||missingTime.get(id) <= TimeUtils.now() / 1000) {
for(int[] re:reward(id)){
rewardAll.add(re);
}
missingTime.put(id,-1); 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<>(); List<CommonProto.Item> sendToFront = new CopyOnWriteArrayList<>();
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) { for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) {
SItem sItem = SItem.getsItemMap().get (entry.getKey()); SItem sItem = SItem.getsItemMap().get (entry.getKey());
int itemNumlimit = sItem.getItemNumlimit();
if (sItem == null){ if (sItem == null){
continue; continue;
} }
@ -516,19 +517,22 @@ public class ItemUtil {
if(itemNum <= 0){ if(itemNum <= 0){
continue; continue;
} }
if (itemNum >= sItem.getItemNumlimit()){ if (itemNum >= itemNumlimit){
itemNum = sItem.getItemNumlimit(); itemNum = itemNumlimit;
} }
Item item = itemManager.getItem(entry.getKey()); Item item = itemManager.getItem(entry.getKey());
if (item == null) { if (item == null) {
item = itemManager.newItem(entry.getKey(), itemNum); item = itemManager.newItem(entry.getKey(), itemNum);
} else { } else {
if(item.getItemNum()>= sItem.getItemNumlimit()){ if(item.getItemNum()>= itemNumlimit){
continue; continue;
} }
if (item.getItemNum() + entry.getValue() >= sItem.getItemNumlimit()){ if(sItem.getId()==Global.MISSING_ROOM_ITEM&&reason==BIReason.ADVENTURE_BASE_REWARD){
itemNum = sItem.getItemNumlimit() -item.getItemNum(); itemNumlimit = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(user.getPlayerInfoManager().getLevel()).getMazeTreasureMax()[1];
item.setItemNum(sItem.getItemNumlimit()); }
if (item.getItemNum() + entry.getValue() >= itemNumlimit){
itemNum = itemNumlimit -item.getItemNum();
item.setItemNum(itemNumlimit);
}else{ }else{
item.setItemNum(item.getItemNum() + entry.getValue()); item.setItemNum(item.getItemNum() + entry.getValue());
} }