Package com.l2jfrozen.gameserver.templates

Examples of com.l2jfrozen.gameserver.templates.L2Weapon


    if(crit){
      damage = attacker.calcStat(Stats.CRITICAL_DAMAGE, damage, target, skill);
    }
   
    // defence modifier depending of the attacker weapon
    L2Weapon weapon = attacker.getActiveWeaponItem();
    Stats stat = null;
    if (weapon != null)
    {
      switch (weapon.getItemType())
      {
        case BOW:
          stat = Stats.BOW_WPN_VULN;
          break;
        case BLUNT:
View Full Code Here


        {
          // No penality for cupid's bow
          if (item.isCupidBow())
            continue;
         
          L2Weapon weap_item = (L2Weapon) item.getItem();
         
          switch (weap_item.getItemType())
          {
         
            case BIGBLUNT:
            case BIGSWORD:
            {
View Full Code Here

   * @param classId the class id
   * @return the l2 weapon
   */
  public L2Weapon findFistsWeaponItem(int classId)
  {
    L2Weapon weaponItem = null;
    if(classId >= 0x00 && classId <= 0x09)
    {
      //human fighter fists
      L2Item temp = ItemTable.getInstance().getTemplate(246);
      weaponItem = (L2Weapon) temp;
View Full Code Here

   
    // If you pickup arrows.
    if (item.getItem().getItemType() == L2EtcItemType.ARROW)
    {
           // If a bow is equipped, try to equip them if no arrows is currently equipped.
           L2Weapon currentWeapon = getActiveWeaponItem();
           if (currentWeapon != null && currentWeapon.getItemType() == L2WeaponType.BOW && getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND) == null)
              checkAndEquipArrows();
      }
  }
View Full Code Here

   * @see com.l2jfrozen.gameserver.model.L2Object#onActionShift(com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance)
   */
  @Override
  public void onActionShift(L2PcInstance player)
  {
    L2Weapon currentWeapon = player.getActiveWeaponItem();
   
    if (player.isGM())
    {
      if (this != player.getTarget())
      {
        player.setTarget(this);
        player.sendPacket(new MyTargetSelected(getObjectId(), 0));
        if (player != this)
        {
          player.sendPacket(new ValidateLocation(this));
         
          // To be sure update also the pvp flag / war tag status
          if (!player.inObserverMode())
            this.broadcastUserInfo();
        }
      }
      else
      {
        AdminEditChar.gatherCharacterInfo(player, this, "charinfo.htm");
      }
    }
    else
    // Like L2OFF set the target of the L2PcInstance player
    {
      if (((TvT.is_started() || TvT.is_teleport()) && !Config.TVT_ALLOW_INTERFERENCE) || ((CTF.is_started() || CTF.is_teleport()) && !Config.CTF_ALLOW_INTERFERENCE) || ((DM.is_started() || DM.is_teleport()) && !Config.DM_ALLOW_INTERFERENCE))
      {
        if ((_inEventTvT && !player._inEventTvT) || (!_inEventTvT && player._inEventTvT))
        {
          player.sendPacket(ActionFailed.STATIC_PACKET);
          return;
        }
        else if ((_inEventCTF && !player._inEventCTF) || (!_inEventCTF && player._inEventCTF))
        {
          player.sendPacket(ActionFailed.STATIC_PACKET);
          return;
        }
        else if ((_inEventDM && !player._inEventDM) || (!_inEventDM && player._inEventDM))
        {
          player.sendPacket(ActionFailed.STATIC_PACKET);
          return;
        }
      }
      // Check if the L2PcInstance is confused
      if (player.isOutOfControl())
      {
        // Send a Server->Client packet ActionFailed to the player
        player.sendPacket(ActionFailed.STATIC_PACKET);
        return;
      }
     
      // Check if the player already target this L2PcInstance
      if (player.getTarget() != this)
      {
        // Set the target of the player
        player.setTarget(this);
       
        // Send a Server->Client packet MyTargetSelected to the player
        // The color to display in the select window is White
        player.sendPacket(new MyTargetSelected(getObjectId(), 0));
        if (player != this)
        {
          player.sendPacket(new ValidateLocation(this));
        }
      }
      else
      {
        if (player != this)
        {
          player.sendPacket(new ValidateLocation(this));
        }
        // Check if this L2PcInstance has a Private Store
        if (getPrivateStoreType() != 0)
        {
          // Notify the L2PcInstance AI with AI_INTENTION_INTERACT
          player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
         
          // Calculate the distance between the L2PcInstance
          if (canInteract(player))
          {
            // Notify the L2PcInstance AI with AI_INTENTION_INTERACT
            player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
          }
        }
        else
        {
          // Check if this L2PcInstance is autoAttackable
          // if (isAutoAttackable(player) || (player._inEventTvT && TvT._started) || (player._inEventCTF && CTF._started) || (player._inEventDM && DM._started) || (player._inEventVIP && VIP._started))
          if (isAutoAttackable(player))
          {
           
            if (Config.ALLOW_CHAR_KILL_PROTECT)
            {
              Siege siege = SiegeManager.getInstance().getSiege(player);
             
              if (siege != null && siege.getIsInProgress())
              {
                if (player.getLevel() > 20 && ((L2Character) player.getTarget()).getLevel() < 20)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() > 40 && ((L2Character) player.getTarget()).getLevel() < 40)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() > 52 && ((L2Character) player.getTarget()).getLevel() < 52)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() > 61 && ((L2Character) player.getTarget()).getLevel() < 61)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() > 76 && ((L2Character) player.getTarget()).getLevel() < 76)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() < 20 && ((L2Character) player.getTarget()).getLevel() > 20)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() < 40 && ((L2Character) player.getTarget()).getLevel() > 40)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() < 52 && ((L2Character) player.getTarget()).getLevel() > 52)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() < 61 && ((L2Character) player.getTarget()).getLevel() > 61)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
                if (player.getLevel() < 76 && ((L2Character) player.getTarget()).getLevel() > 76)
                {
                  player.sendMessage("Your target is not in your grade!");
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
              }
              siege = null;
            }
            if (player.getLevel() < Config.ALT_PLAYER_PROTECTION_LEVEL || getLevel() < Config.ALT_PLAYER_PROTECTION_LEVEL)
            {
              player.sendMessage("You Can't Hit a Player That Is Lower Level From You. Target's Level: " + String.valueOf(Config.ALT_PLAYER_PROTECTION_LEVEL));
              player.sendPacket(ActionFailed.STATIC_PACKET);
            }
            // Player with lvl < 21 can't attack a cursed weapon holder
            // And a cursed weapon holder can't attack players with lvl < 21
            if (isCursedWeaponEquiped() && player.getLevel() < 21 || player.isCursedWeaponEquiped() && getLevel() < 21)
            {
              player.sendPacket(ActionFailed.STATIC_PACKET);
            }
            else
            {
              if (Config.GEODATA > 0)
              {
                if (GeoData.getInstance().canSeeTarget(player, this))
                {
                  // Calculate the distance between the L2PcInstance
                  // Only archer can hit from long
                  if (currentWeapon != null && currentWeapon.getItemType() == L2WeaponType.BOW)
                  {
                    player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
                    player.onActionRequest();
                  }
                  else if (canInteract(player))
                  {
                    player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
                    player.onActionRequest();
                  }
                  else
                  {
                    player.sendPacket(ActionFailed.STATIC_PACKET);
                  }
                }
              }
              else
              {
                // Calculate the distance between the L2PcInstance
                // Only archer can hit from long
                if (currentWeapon != null && currentWeapon.getItemType() == L2WeaponType.BOW)
                {
                  player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
                  player.onActionRequest();
                }
                else if (canInteract(player))
                {
                  player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
                  player.onActionRequest();
                }
                else
                {
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
              }
            }
          }
          else
          {
            if (Config.GEODATA > 0)
            {
              if (GeoData.getInstance().canSeeTarget(player, this))
              {
                // Calculate the distance between the L2PcInstance
                // Only archer can hit from long
                if (currentWeapon != null && currentWeapon.getItemType() == L2WeaponType.BOW)
                {
                  player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
                }
                else if (canInteract(player))
                {
                  player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
                }
                else
                {
                  player.sendPacket(ActionFailed.STATIC_PACKET);
                }
               
              }
            }
            else
            {
              // Calculate the distance between the L2PcInstance
              // Only archer can hit from long
              if (currentWeapon != null && currentWeapon.getItemType() == L2WeaponType.BOW)
              {
                player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
              }
              else if (canInteract(player))
              {
View Full Code Here

   * @return true, if is using dual weapon
   */
  @Override
  public boolean isUsingDualWeapon()
  {
    L2Weapon weaponItem = getActiveWeaponItem();
    if(weaponItem == null)
      return false;

    if(weaponItem.getItemType() == L2WeaponType.DUAL)
      return true;
    else if(weaponItem.getItemType() == L2WeaponType.DUALFIST)
      return true;
    else if(weaponItem.getItemId() == 248) // orc fighter fists
      return true;
    else if(weaponItem.getItemId() == 252) // orc mage fists
      return true;
    else
      return false;
  }
View Full Code Here

    if(!(playable instanceof L2PcInstance))
      return;

    L2PcInstance activeChar = (L2PcInstance) playable;
    L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
    L2Weapon weaponItem = activeChar.getActiveWeaponItem();
    int itemId = item.getItemId();

    // Check if Spiritshot can be used
    if(weaponInst == null || weaponItem.getSpiritShotCount() == 0)
    {
      if(!activeChar.getAutoSoulShot().containsKey(itemId))
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_USE_SPIRITSHOTS));
      }
      return;
    }

    if(activeChar.isParalyzed())
    {
      activeChar.sendMessage("You Cannot Use This While You Are Paralyzed");
      activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    // Check if Spiritshot is already active
    if(weaponInst.getChargedSpiritshot() != L2ItemInstance.CHARGED_NONE)
      return;

    // Check for correct grade
    int weaponGrade = weaponItem.getCrystalType();
    if(weaponGrade == L2Item.CRYSTAL_NONE && itemId != 5790 && itemId != 2509 || weaponGrade == L2Item.CRYSTAL_D && itemId != 2510 || weaponGrade == L2Item.CRYSTAL_C && itemId != 2511 || weaponGrade == L2Item.CRYSTAL_B && itemId != 2512 || weaponGrade == L2Item.CRYSTAL_A && itemId != 2513 || weaponGrade == L2Item.CRYSTAL_S && itemId != 2514)
    {
      if(!activeChar.getAutoSoulShot().containsKey(itemId))
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.SPIRITSHOTS_GRADE_MISMATCH));
      }
      return;
    }

    // Consume Spiritshot if player has enough of them
    // TODO: test ss
    if(!Config.DONT_DESTROY_SS)
    {
      if(!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false))
      {
        if(activeChar.getAutoSoulShot().containsKey(itemId))
        {
          activeChar.removeAutoSoulShot(itemId);
          activeChar.sendPacket(new ExAutoSoulShot(itemId, 0));
View Full Code Here

TOP

Related Classes of com.l2jfrozen.gameserver.templates.L2Weapon

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.