Package com.l2jfrozen.gameserver.network.serverpackets

Examples of com.l2jfrozen.gameserver.network.serverpackets.Attack


    {
      ssGrade = weaponItem.getCrystalType();
    }

    // Create a Server->Client packet Attack
    Attack attack = new Attack(this, wasSSCharged, ssGrade);

    boolean hitted;

    // Set the Attacking Body part to CHEST
    setAttackingBodypart();

    // Heading calculation on every attack
    this.setHeading(Util.calculateHeadingFrom(this.getX(), this.getY(), target.getX(), target.getY()));
   
    // Get the Attack Reuse Delay of the L2Weapon
    int reuse = calculateReuseTime(target, weaponItem);

    // Select the type of attack to start
    if(weaponItem == null)
    {
      hitted = doAttackHitSimple(attack, target, timeToHit);
    }
    else if(weaponItem.getItemType() == L2WeaponType.BOW)
    {
      hitted = doAttackHitByBow(attack, target, timeAtk, reuse);
    }
    else if(weaponItem.getItemType() == L2WeaponType.POLE)
    {
      hitted = doAttackHitByPole(attack, timeToHit);
    }
    else if(isUsingDualWeapon())
    {
      hitted = doAttackHitByDual(attack, target, timeToHit);
    }
    else
    {
      hitted = doAttackHitSimple(attack, target, timeToHit);
    }
   
    // Flag the attacker if it's a L2PcInstance outside a PvP area
    L2PcInstance player = null;

    if(this instanceof L2PcInstance)
    {
      player = (L2PcInstance) this;
    }
    else if(this instanceof L2Summon)
    {
      player = ((L2Summon) this).getOwner();
    }

    if(player != null)
    {
      player.updatePvPStatus(target);
    }

    // Check if hit isn't missed
    if(!hitted)
    {
      //MAJAX fix
      sendPacket(new SystemMessage(SystemMessageId.MISSED_TARGET));
      // Abort the attack of the L2Character and send Server->Client ActionFailed packet
      abortAttack();
    }
    else
    {
      /* ADDED BY nexus - 2006-08-17
       *
       * As soon as we know that our hit landed, we must discharge any active soulshots.
       * This must be done so to avoid unwanted soulshot consumption.
       */

      // If we didn't miss the hit, discharge the shoulshots, if any
      if(this instanceof L2Summon && !(this instanceof L2PetInstance))
      {
        ((L2Summon) this).setChargedSoulShot(L2ItemInstance.CHARGED_NONE);
      }
      else if(weaponInst != null)
      {
        weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_NONE);
      }

      if(player != null)
      {
        if(player.isCursedWeaponEquiped())
        {
          // If hitted by a cursed weapon, Cp is reduced to 0
          if(!target.isInvul())
          {
            target.setCurrentCp(0);
          }
        }
        else if(player.isHero())
        {
          if(target instanceof L2PcInstance && ((L2PcInstance) target).isCursedWeaponEquiped())
          {
            // If a cursed weapon is hitted by a Hero, Cp is reduced to 0
            target.setCurrentCp(0);
          }
        }
      }

      weaponInst = null;
      weaponItem = null;
    }

    // If the Server->Client packet Attack contains at least 1 hit, send the Server->Client packet Attack
    // to the L2Character AND to all L2PcInstance in the _KnownPlayers of the L2Character
    if(attack.hasHits())
    {
      broadcastPacket(attack);
      fireEvent(EventType.ATTACK.name, new Object[]
      {
        getTarget()
View Full Code Here

TOP

Related Classes of com.l2jfrozen.gameserver.network.serverpackets.Attack

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.