private List<FallItem> getBoxFallItemList(String boxId, RoleInstance role) { if (null == role) { return null; } Cache<String, BoxEntry> boxes = GameContext.getMapApp().getBoxesCache(); BoxEntry entry = boxes.getQuiet(boxId); if (null == entry) { return null; } if (!entry.isOwner(role)) { // 非自己宝箱 return null; } return entry.listFallItem(); }
private boolean boxed( RoleInstance role, List<GoodsOperateBean> goodsList, int x, int y, OutputConsumeType ocType) { if (Util.isEmpty(goodsList)) { return false; } // 未拾取完毕的物品直接掉落背包 // 将未放入背包的物品(背包已满)放入box BoxEntry box = new BoxEntry(role, goodsList, this.getBoxId(), x, y, ocType.getType()); box.cache(); box.notifyOwner(); C0003_TipNotifyMessage tipNotifyMsg = new C0003_TipNotifyMessage(); tipNotifyMsg.setMsgContext(Status.GOODS_BACKPACK_FULL_TIPS.getTips()); role.getBehavior().sendMessage(tipNotifyMsg); return true; }
@Override public void pickupEntry(String entryId, RoleInstance role, int itemId) { MapInstance mapInstance = role.getMapInstance(); if (null == mapInstance) { return; } PointType pointType = this.getPointType(entryId); if (pointType.isCollectPoint()) { // 采集点 CollectablePoint<RoleInstance> cp = mapInstance.getCollectPointMap().get(entryId); if (null == cp) { C0603_FallPickupRespMessage respMsg = new C0603_FallPickupRespMessage(); respMsg.setStatus(RespTypeStatus.SUCCESS); respMsg.setInfo(GameContext.getI18n().getText(TextId.FALL_HAS_PICK)); respMsg.setInstanceId(entryId); role.getBehavior().sendMessage(respMsg); return; } cp.pickup(role, itemId); return; } if (pointType.isBox()) { // 宝箱 Cache<String, BoxEntry> boxes = GameContext.getMapApp().getBoxesCache(); BoxEntry boxEntry = boxes.getQuiet(entryId); if (null == boxEntry || !boxEntry.isOwner(role)) { C0603_FallPickupRespMessage respMsg = new C0603_FallPickupRespMessage(); respMsg.setInstanceId(entryId); respMsg.setStatus(RespTypeStatus.FAILURE); respMsg.setInfo(GameContext.getI18n().getText(TextId.FALL_INVALID_TARGET)); role.getBehavior().sendMessage(respMsg); return; } boxEntry.pickup(role, itemId); } }