@Override
 protected void handleDied() {
   super.handleDied();
   Npc freeTerma = (Npc) spawn(205495, 455.94f, 537.06f, 132.6f, (byte) 0);
   spawn(701009, 451.706f, 534.313f, 131.979f, (byte) 0);
   NpcShoutsService.getInstance().sendMsg(freeTerma, 1500444, freeTerma.getObjectId(), 0, 3000);
 }
 @Override
 protected void handleDied() {
   cancelPhaseTask();
   if (getNpcId() == 217309) {
     sendMsg(1500390);
     spawn(217310, 238.160f, 598.624f, 178.480f, (byte) 0);
     deleteHelpers();
     AI2Actions.deleteOwner(this);
   } else {
     sendMsg(1500391);
     final WorldMapInstance instance = getPosition().getWorldMapInstance();
     if (instance != null) {
       final Npc ariana = instance.getNpc(799668);
       if (ariana != null) {
         ariana.getEffectController().removeEffect(19921);
         ThreadPoolManager.getInstance()
             .schedule(
                 new Runnable() {
                   @Override
                   public void run() {
                     ariana.getSpawn().setWalkerId("30028000016");
                     WalkManager.startWalking((NpcAI2) ariana.getAi2());
                   }
                 },
                 1000);
         NpcShoutsService.getInstance().sendMsg(ariana, 1500415, ariana.getObjectId(), 0, 4000);
         NpcShoutsService.getInstance().sendMsg(ariana, 1500416, ariana.getObjectId(), 0, 13000);
         ThreadPoolManager.getInstance()
             .schedule(
                 new Runnable() {
                   @Override
                   public void run() {
                     if (instance != null) {
                       SkillEngine.getInstance()
                           .getSkill(ariana, 19358, 60, ariana)
                           .useNoAnimationSkill();
                       instance.getDoors().get(145).setOpen(true);
                       deleteNpcs(instance.getNpcs(701156));
                       ThreadPoolManager.getInstance()
                           .schedule(
                               new Runnable() {
                                 @Override
                                 public void run() {
                                   if (ariana != null && !NpcActions.isAlreadyDead(ariana)) {
                                     NpcActions.delete(ariana);
                                   }
                                 }
                               },
                               13000);
                     }
                   }
                 },
                 13000);
       }
     }
   }
   super.handleDied();
 }
예제 #3
0
  /**
   * Shows Question window and expands on positive response
   *
   * @param player
   * @param npc
   */
  public static void expandCube(final Player player, Npc npc) {
    final CubeExpandTemplate expandTemplate =
        DataManager.CUBEEXPANDER_DATA.getCubeExpandListTemplate(npc.getNpcId());

    if (expandTemplate == null) {
      log.error("Cube Expand Template could not be found for Npc ID: " + npc.getObjectId());
      return;
    }

    if (npcCanExpandLevel(expandTemplate, player.getCubeSize() + 1)
        && validateNewSize(player.getCubeSize() + 1)) {
      /** Check if our player can pay the cubic expand price */
      final int price = getPriceByLevel(expandTemplate, player.getCubeSize() + 1);

      RequestResponseHandler responseHandler =
          new RequestResponseHandler(npc) {
            @Override
            public void acceptRequest(StaticNpc requester, Player responder) {
              if (!ItemService.decreaseKinah(responder, price)) {
                PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.CUBEEXPAND_NOT_ENOUGH_KINAH);
                return;
              }
              expand(responder);
            }

            @Override
            public void denyRequest(StaticNpc requester, Player responder) {
              // nothing to do
            }
          };

      boolean result =
          player
              .getResponseRequester()
              .putRequest(SM_QUESTION_WINDOW.STR_WAREHOUSE_EXPAND_WARNING, responseHandler);
      if (result) {
        PacketSendUtility.sendPacket(
            player,
            new SM_QUESTION_WINDOW(
                SM_QUESTION_WINDOW.STR_WAREHOUSE_EXPAND_WARNING, 0, String.valueOf(price)));
      }
    } else PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300430));
  }
 private void startRun(Npc npc) {
   npc.setState(1);
   PacketSendUtility.broadcastPacket(
       npc, new SM_EMOTION(npc, EmotionType.START_EMOTE2, 0, npc.getObjectId()));
 }