Package net.sf.l2j.gameserver.serverpackets

Examples of net.sf.l2j.gameserver.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();
   
    // 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)
    {
      // 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);
          }
        }
      }
    }
   
    // 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);
    }
   
    // Notify AI with EVT_READY_TO_ACT
View Full Code Here

TOP

Related Classes of net.sf.l2j.gameserver.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.