コード例 #1
0
  @Override
  public void run() {
    try {
      switch (_cycle) {
        case 0:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], LEAVE_GIRAN5);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 240000);
          break;
        case 1:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], LEAVE_GIRAN1);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 40000);
          break;
        case 2:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], LEAVE_GIRAN0);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 20000);
          break;
        case 3:
          BoatManager.getInstance()
              .broadcastPackets(GIRAN_DOCK, TALKING_DOCK[0], LEAVING_GIRAN, ARRIVAL_TALKING15);
          _boat.broadcastPacket(GIRAN_SOUND);
          _boat.payForRide(3946, 1, 46763, 187041, -3451);
          _boat.executePath(GIRAN_TO_TALKING);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 250000);
          break;
        case 4:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, ARRIVAL_TALKING10);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
        case 5:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, ARRIVAL_TALKING5);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 240000);
          break;
        case 6:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, ARRIVAL_TALKING1);
          break;
        case 7:
          if (BoatManager.getInstance().dockBusy(BoatManager.TALKING_ISLAND)) {
            if (_shoutCount == 0)
              BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, BUSY_TALKING);

            _shoutCount++;
            if (_shoutCount > 35) _shoutCount = 0;

            ThreadPoolManager.getInstance().scheduleGeneral(this, 5000);
            return;
          }
          _boat.executePath(TALKING_DOCK);
          break;
        case 8:
          BoatManager.getInstance().dockShip(BoatManager.TALKING_ISLAND, true);
          BoatManager.getInstance()
              .broadcastPackets(
                  TALKING_DOCK[0], GIRAN_DOCK, ARRIVED_AT_TALKING, ARRIVED_AT_TALKING_2);
          _boat.broadcastPacket(TALKING_SOUND);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
        case 9:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, LEAVE_TALKING5);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 240000);
          break;
        case 10:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, LEAVE_TALKING1);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 40000);
          break;
        case 11:
          BoatManager.getInstance().broadcastPacket(TALKING_DOCK[0], GIRAN_DOCK, LEAVE_TALKING0);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 20000);
          break;
        case 12:
          BoatManager.getInstance().dockShip(BoatManager.TALKING_ISLAND, false);
          BoatManager.getInstance().broadcastPackets(TALKING_DOCK[0], GIRAN_DOCK, LEAVING_TALKING);
          _boat.broadcastPacket(TALKING_SOUND);
          _boat.payForRide(3945, 1, -96777, 258970, -3623);
          _boat.executePath(TALKING_TO_GIRAN);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 200000);
          break;
        case 13:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], ARRIVAL_GIRAN20);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
        case 14:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], ARRIVAL_GIRAN15);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
        case 15:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], ARRIVAL_GIRAN10);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
        case 16:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], ARRIVAL_GIRAN5);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 240000);
          break;
        case 17:
          BoatManager.getInstance().broadcastPacket(GIRAN_DOCK, TALKING_DOCK[0], ARRIVAL_GIRAN1);
          break;
        case 18:
          BoatManager.getInstance()
              .broadcastPackets(GIRAN_DOCK, TALKING_DOCK[0], ARRIVED_AT_GIRAN, ARRIVED_AT_GIRAN_2);
          _boat.broadcastPacket(GIRAN_SOUND);
          ThreadPoolManager.getInstance().scheduleGeneral(this, 300000);
          break;
      }
      _shoutCount = 0;
      _cycle++;
      if (_cycle > 18) _cycle = 0;
    } catch (Exception e) {
      _log.log(Level.WARNING, e.getMessage());
    }
  }