@Override
  public void startSkill(Character attacker, float targetX, float targetY, float targetZ) {
    super.startSkill(attacker, targetX, targetY, targetZ);

    impactX = attacker.getX();
    impactY = attacker.getY();
    impactZ = attacker.getZ();

    if (target.isPlayer())
      attacker.broadcastPacket(StartFastShot.getInstance(attacker, target, this, castId));
    else
      attacker.broadcastPacket(
          StartFastShot.getInstance(
              attacker, this, castId, target.getX(), target.getY(), target.getZ()));
  }
  @Override
  public void startSkill(Character attacker, float targetX, float targetY, float targetZ) {
    super.startSkill(attacker, targetX, targetY, targetZ);

    impactX = attacker.getX();
    impactY = attacker.getY();
    impactZ = attacker.getZ();

    attacker.broadcastPacket(
        StartFastShot.getInstance(
            attacker,
            this,
            castId,
            target.getX(),
            target.getY(),
            target.getZ() + (target.getGeomHeight() * 0.5F)));
  }