Пример #1
0
 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();
 }
Пример #2
0
  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;
  }
Пример #3
0
 @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);
   }
 }