Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: java/com/l2jserver/gameserver/datatables/NpcTable.java
- ===================================================================
- --- java/com/l2jserver/gameserver/datatables/NpcTable.java (revision 5522)
- +++ java/com/l2jserver/gameserver/datatables/NpcTable.java (working copy)
- @@ -146,6 +146,7 @@
- npcDat.set("baseMAtkSpd", NpcData.getInt("matkspd"));
- npcDat.set("rhand", NpcData.getInt("rhand"));
- npcDat.set("lhand", NpcData.getInt("lhand"));
- + npcDat.set("baseAttackType", NpcData.getString("baseAttackType"));
- npcDat.set("enchant", NpcData.getInt("enchant"));
- npcDat.set("baseWalkSpd", NpcData.getInt("walkspd"));
- npcDat.set("baseRunSpd", NpcData.getInt("runspd"));
- Index: java/com/l2jserver/gameserver/ai/L2CharacterAI.java
- ===================================================================
- --- java/com/l2jserver/gameserver/ai/L2CharacterAI.java (revision 5522)
- +++ java/com/l2jserver/gameserver/ai/L2CharacterAI.java (working copy)
- @@ -41,10 +41,8 @@
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
- import com.l2jserver.gameserver.model.effects.L2Effect;
- -import com.l2jserver.gameserver.model.items.L2Weapon;
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance.ItemLocation;
- -import com.l2jserver.gameserver.model.items.type.L2WeaponType;
- import com.l2jserver.gameserver.model.skills.L2Skill;
- import com.l2jserver.gameserver.model.skills.L2SkillType;
- import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
- @@ -1333,8 +1331,7 @@
- }
- else
- {
- - L2Weapon weapon = target.getActiveWeaponItem();
- - if (weapon != null && (weapon.getItemType() == L2WeaponType.BOW || weapon.getItemType() == L2WeaponType.CROSSBOW))
- + if (target.isUsingRangedWeapon())
- isArcher = true;
- else
- isFighter = true;
- Index: java/com/l2jserver/gameserver/model/conditions/ConditionUsingItemType.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/conditions/ConditionUsingItemType.java (revision 5528)
- +++ java/com/l2jserver/gameserver/model/conditions/ConditionUsingItemType.java (working copy)
- @@ -41,16 +41,14 @@
- @Override
- public boolean testImpl(Env env)
- - {
- - if (env.getCharacter() == null || !env.getCharacter().isPlayer())
- - {
- + {
- + if (env.getCharacter() == null)
- return false;
- - }
- - final Inventory inv = env.getPlayer().getInventory();
- // If ConditionUsingItemType is one between Light, Heavy or Magic
- - if (_armor)
- + if (_armor && env.getCharacter().isPlayer())
- {
- + final Inventory inv = env.getPlayer().getInventory();
- // Get the itemMask of the weared chest (if exists)
- L2ItemInstance chest = inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST);
- if (chest == null)
- @@ -83,6 +81,7 @@
- // return true if legs armor matches too
- return (_mask & legMask) != 0;
- }
- - return (_mask & inv.getWearedMask()) != 0;
- +
- + return (_mask & env.getCharacter().getWeaponType().mask()) != 0;
- }
- }
- Index: java/com/l2jserver/gameserver/model/stats/Formulas.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/stats/Formulas.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/stats/Formulas.java (working copy)
- @@ -1399,8 +1399,7 @@
- }
- if (Config.ALT_GAME_CANCEL_BOW && target.isAttackingNow())
- {
- - L2Weapon wpn = target.getActiveWeaponItem();
- - if ((wpn != null) && (wpn.getItemType() == L2WeaponType.BOW))
- + if (target.isUsingRangedWeapon())
- {
- init = 15;
- }
- @@ -1661,8 +1660,7 @@
- byte shldSuccess = SHIELD_DEFENSE_FAILED;
- // if attacker
- // if attacker use bow and target wear shield, shield block rate is multiplied by 1.3 (30%)
- - L2Weapon at_weapon = attacker.getActiveWeaponItem();
- - if ((at_weapon != null) && (at_weapon.getItemType() == L2WeaponType.BOW))
- + if (attacker.getWeaponType() == L2WeaponType.BOW)
- {
- shldRate *= 1.3;
- }
- Index: java/com/l2jserver/gameserver/model/skills/l2skills/L2SkillChargeDmg.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/skills/l2skills/L2SkillChargeDmg.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/skills/l2skills/L2SkillChargeDmg.java (working copy)
- @@ -84,7 +84,6 @@
- // TODO: should we use dual or not?
- // because if so, damage are lowered but we don't do anything special with dual then
- // like in doAttackHitByDual which in fact does the calcPhysDam call twice
- - //boolean dual = caster.isUsingDualWeapon();
- byte shld = Formulas.calcShldUse(caster, target, this);
- boolean crit = false;
- if (getBaseCritRate() > 0 && !isStaticDamage())
- Index: java/com/l2jserver/gameserver/model/actor/stat/CharStat.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/stat/CharStat.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/actor/stat/CharStat.java (working copy)
- @@ -17,7 +17,6 @@
- import com.l2jserver.Config;
- import com.l2jserver.gameserver.model.Elementals;
- import com.l2jserver.gameserver.model.actor.L2Character;
- -import com.l2jserver.gameserver.model.items.L2Weapon;
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.items.type.L2WeaponType;
- import com.l2jserver.gameserver.model.skills.L2Skill;
- @@ -666,8 +665,7 @@
- return _activeChar.getTemplate().getBaseAtkRange();
- // Polearm handled here for now. Basically L2PcInstance could have a function
- // similar to FuncBowAtkRange and NPC are defined in DP.
- - L2Weapon weaponItem = _activeChar.getActiveWeaponItem();
- - if (weaponItem != null && weaponItem.getItemType() == L2WeaponType.POLE)
- + if (_activeChar.getWeaponType() == L2WeaponType.POLE)
- return (int) calcStat(Stats.POWER_ATTACK_RANGE, 66, null, null);
- return (int) calcStat(Stats.POWER_ATTACK_RANGE, _activeChar.getTemplate().getBaseAtkRange(), null, null);
- Index: java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java (working copy)
- @@ -19,6 +19,7 @@
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- +import java.util.logging.Level;
- import java.util.logging.Logger;
- import javolution.util.FastMap;
- @@ -31,6 +32,7 @@
- import com.l2jserver.gameserver.model.StatsSet;
- import com.l2jserver.gameserver.model.actor.instance.L2XmassTreeInstance;
- import com.l2jserver.gameserver.model.base.ClassId;
- +import com.l2jserver.gameserver.model.items.type.L2WeaponType;
- import com.l2jserver.gameserver.model.quest.Quest;
- import com.l2jserver.gameserver.model.quest.Quest.QuestEventType;
- import com.l2jserver.gameserver.model.skills.L2Skill;
- @@ -55,6 +57,7 @@
- private final int _rewardSp;
- private final int _rHand;
- private final int _lHand;
- + private L2WeaponType _baseAttackType;
- private final int _enchantEffect;
- private Race _race;
- @@ -216,6 +219,15 @@
- _rewardSp = set.getInteger("rewardSp");
- _rHand = set.getInteger("rhand");
- _lHand = set.getInteger("lhand");
- + try
- + {
- + _baseAttackType = L2WeaponType.valueOf(set.getString("baseAttackType"));
- + }
- + catch (IllegalArgumentException iae)
- + {
- + _baseAttackType = L2WeaponType.NONE;
- + _log.log(Level.WARNING, "Invalid baseAttackType for npcId: " + _npcId, iae);
- + }
- _enchantEffect = set.getInteger("enchant");
- _race = null;
- final int herbGroup = set.getInteger("dropHerbGroup");
- @@ -632,6 +644,14 @@
- }
- /**
- + * @return the weapon type this NPC is using.
- + */
- + public L2WeaponType getBaseAttackType()
- + {
- + return _baseAttackType;
- + }
- +
- + /**
- * @return the enchant effect.
- */
- public int getEnchantEffect()
- Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/L2Character.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/actor/L2Character.java (working copy)
- @@ -41,6 +41,7 @@
- import com.l2jserver.gameserver.ai.L2CharacterAI;
- import com.l2jserver.gameserver.datatables.DoorTable;
- import com.l2jserver.gameserver.datatables.ItemTable;
- +import com.l2jserver.gameserver.datatables.NpcTable;
- import com.l2jserver.gameserver.datatables.SkillTable;
- import com.l2jserver.gameserver.handler.ISkillHandler;
- import com.l2jserver.gameserver.handler.SkillHandler;
- @@ -186,6 +187,7 @@
- private double _hpUpdateIncCheck = .0;
- private double _hpUpdateDecCheck = .0;
- private double _hpUpdateInterval = .0;
- + private L2WeaponType _weaponType = null; // If this is null, it will be initialized when getWeaponType() is called.
- /** Table of Calculators containing all used calculator */
- private Calculator[] _calculators;
- @@ -838,6 +840,12 @@
- }
- }
- + if (getWeaponType() == L2WeaponType.FISHINGROD)
- + {
- + sendPacket(SystemMessageId.CANNOT_ATTACK_WITH_FISHING_POLE);
- + sendPacket(ActionFailed.STATIC_PACKET);
- + return;
- + }
- // Check if attacker's weapon can attack
- if (getActiveWeaponItem() != null)
- @@ -845,10 +853,7 @@
- L2Weapon wpn = getActiveWeaponItem();
- if (!wpn.isAttackWeapon() && !isGM())
- {
- - if (wpn.getItemType() == L2WeaponType.FISHINGROD)
- - sendPacket(SystemMessageId.CANNOT_ATTACK_WITH_FISHING_POLE);
- - else
- - sendPacket(SystemMessageId.THAT_WEAPON_CANT_ATTACK);
- + sendPacket(SystemMessageId.THAT_WEAPON_CANT_ATTACK);
- sendPacket(ActionFailed.STATIC_PACKET);
- return;
- }
- @@ -906,9 +911,9 @@
- }
- // BOW and CROSSBOW checks
- - if (weaponItem != null && !isTransformed())
- + if (!isTransformed())
- {
- - if (weaponItem.getItemType() == L2WeaponType.BOW)
- + if (getWeaponType() == L2WeaponType.BOW)
- {
- //Check for arrows and MP
- if (isPlayer())
- @@ -936,26 +941,29 @@
- if (_disableBowAttackEndTime <= GameTimeController.getGameTicks())
- {
- // Verify if L2PcInstance owns enough MP
- - int mpConsume = weaponItem.getMpConsume();
- - if (weaponItem.getReducedMpConsume() > 0 && Rnd.get(100) < weaponItem.getReducedMpConsumeChance())
- - {
- - mpConsume = weaponItem.getReducedMpConsume();
- - }
- - mpConsume = (int) calcStat(Stats.BOW_MP_CONSUME_RATE, mpConsume, null, null);
- -
- - if (getCurrentMp() < mpConsume)
- + if (weaponItem != null)
- {
- - // If L2PcInstance doesn't have enough MP, stop the attack
- - ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(CtrlEvent.EVT_READY_TO_ACT), 1000);
- - sendPacket(SystemMessageId.NOT_ENOUGH_MP);
- - sendPacket(ActionFailed.STATIC_PACKET);
- - return;
- + int mpConsume = weaponItem.getMpConsume();
- + if (weaponItem.getReducedMpConsume() > 0 && Rnd.get(100) < weaponItem.getReducedMpConsumeChance())
- + {
- + mpConsume = weaponItem.getReducedMpConsume();
- + }
- + mpConsume = (int) calcStat(Stats.BOW_MP_CONSUME_RATE, mpConsume, null, null);
- +
- + if (getCurrentMp() < mpConsume)
- + {
- + // If L2PcInstance doesn't have enough MP, stop the attack
- + ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(CtrlEvent.EVT_READY_TO_ACT), 1000);
- + sendPacket(SystemMessageId.NOT_ENOUGH_MP);
- + sendPacket(ActionFailed.STATIC_PACKET);
- + return;
- + }
- +
- + // If L2PcInstance have enough MP, the bow consumes it
- + if (mpConsume > 0)
- + getStatus().reduceMp(mpConsume);
- }
- - // If L2PcInstance have enough MP, the bow consumes it
- - if (mpConsume > 0)
- - getStatus().reduceMp(mpConsume);
- -
- // Set the period of bow no re-use
- _disableBowAttackEndTime = 5 * GameTimeController.TICKS_PER_SECOND + GameTimeController.getGameTicks();
- }
- @@ -968,7 +976,7 @@
- }
- }
- }
- - if (weaponItem.getItemType() == L2WeaponType.CROSSBOW)
- + if (getWeaponType() == L2WeaponType.CROSSBOW)
- {
- //Check for bolts
- if (isPlayer())
- @@ -996,26 +1004,29 @@
- if (_disableCrossBowAttackEndTime <= GameTimeController.getGameTicks())
- {
- // Verify if L2PcInstance owns enough MP
- - int mpConsume = weaponItem.getMpConsume();
- - if (weaponItem.getReducedMpConsume() > 0 && Rnd.get(100) < weaponItem.getReducedMpConsumeChance())
- + if (weaponItem != null)
- {
- - mpConsume = weaponItem.getReducedMpConsume();
- - }
- - mpConsume = (int) calcStat(Stats.BOW_MP_CONSUME_RATE, mpConsume, null, null);
- -
- - if (getCurrentMp() < mpConsume)
- - {
- - // If L2PcInstance doesn't have enough MP, stop the attack
- - ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(CtrlEvent.EVT_READY_TO_ACT), 1000);
- - sendPacket(SystemMessageId.NOT_ENOUGH_MP);
- - sendPacket(ActionFailed.STATIC_PACKET);
- - return;
- + int mpConsume = weaponItem.getMpConsume();
- + if (weaponItem.getReducedMpConsume() > 0 && Rnd.get(100) < weaponItem.getReducedMpConsumeChance())
- + {
- + mpConsume = weaponItem.getReducedMpConsume();
- + }
- + mpConsume = (int) calcStat(Stats.BOW_MP_CONSUME_RATE, mpConsume, null, null);
- +
- + if (getCurrentMp() < mpConsume)
- + {
- + // If L2PcInstance doesn't have enough MP, stop the attack
- + ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(CtrlEvent.EVT_READY_TO_ACT), 1000);
- + sendPacket(SystemMessageId.NOT_ENOUGH_MP);
- + sendPacket(ActionFailed.STATIC_PACKET);
- + return;
- + }
- +
- + // If L2PcInstance have enough MP, the bow consumes it
- + if (mpConsume > 0)
- + getStatus().reduceMp(mpConsume);
- }
- - // If L2PcInstance have enough MP, the bow consumes it
- - if (mpConsume > 0)
- - getStatus().reduceMp(mpConsume);
- -
- // Set the period of crossbow no re-use
- _disableCrossBowAttackEndTime = 5 * GameTimeController.TICKS_PER_SECOND + GameTimeController.getGameTicks();
- }
- @@ -1063,7 +1074,7 @@
- }
- // Get the Attack Speed of the L2Character (delay (in milliseconds) before next attack)
- - int timeAtk = calculateTimeBetweenAttacks(target, weaponItem);
- + int timeAtk = calculateTimeBetweenAttacks(target);
- // the hit is calculated to happen halfway to the animation - might need further tuning e.g. in bow case
- int timeToHit = timeAtk / 2;
- @@ -1089,18 +1100,31 @@
- int reuse = calculateReuseTime(target, weaponItem);
- boolean hitted;
- // Select the type of attack to start
- - if (weaponItem == null || isTransformed())
- + if (isTransformed())
- hitted = doAttackHitSimple(attack, target, timeToHit);
- - else if (weaponItem.getItemType() == L2WeaponType.BOW)
- - hitted = doAttackHitByBow(attack, target, timeAtk, reuse);
- - else if (weaponItem.getItemType() == L2WeaponType.CROSSBOW)
- - hitted = doAttackHitByCrossBow(attack, target, timeAtk, reuse);
- - else if (weaponItem.getItemType() == L2WeaponType.POLE)
- - hitted = doAttackHitByPole(attack, target, timeToHit);
- - else if (isUsingDualWeapon())
- - hitted = doAttackHitByDual(attack, target, timeToHit);
- else
- - hitted = doAttackHitSimple(attack, target, timeToHit);
- + {
- + switch (getWeaponType())
- + {
- + case BOW:
- + hitted = doAttackHitByBow(attack, target, timeAtk, reuse);
- + break;
- + case CROSSBOW:
- + hitted = doAttackHitByCrossBow(attack, target, timeAtk, reuse);
- + break;
- + case POLE:
- + hitted = doAttackHitByPole(attack, target, timeToHit);
- + break;
- + case DUAL:
- + case DUALFIST:
- + case DUALDAGGER:
- + hitted = doAttackHitByDual(attack, target, timeToHit);
- + break;
- + default:
- + hitted = doAttackHitSimple(attack, target, timeToHit);
- + break;
- + }
- + }
- // Flag the attacker if it's a L2PcInstance outside a PvP area
- L2PcInstance player = getActingPlayer();
- @@ -5388,6 +5412,58 @@
- // Dummy method (overridden by players and pets)
- }
- + public L2WeaponType getWeaponType()
- + {
- + if (_weaponType == null)
- + {
- + synchronized (this)
- + {
- + if (_weaponType == null)
- + setWeaponType();
- + }
- + }
- +
- + return _weaponType;
- + }
- +
- + /**
- + * Sets the weapon type to the default weapon type of this character.
- + */
- + public void setWeaponType()
- + {
- + if (isPlayer())
- + _weaponType = getActingPlayer().getActiveWeaponItem().getItemType();
- + else if (isNpc())
- + {
- + L2NpcTemplate tmpl = NpcTable.getInstance().getTemplate(((L2Npc)this).getNpcId());
- + if (tmpl != null)
- + _weaponType = tmpl.getBaseAttackType();
- + }
- + else if (isSummon())
- + {
- + L2NpcTemplate tmpl = NpcTable.getInstance().getTemplate(((L2Summon)this).getNpcId());
- + if (tmpl != null)
- + _weaponType = tmpl.getBaseAttackType();
- + }
- +
- + // If the weapon type is still somehow null.
- + if (_weaponType == null)
- + _weaponType = L2WeaponType.NONE;
- + }
- +
- + public void setWeaponType(L2WeaponType weaponType)
- + {
- + _weaponType = weaponType;
- + }
- +
- + public void setWeaponType(L2ItemInstance item)
- + {
- + if (item != null && item.isWeapon())
- + _weaponType = (L2WeaponType)item.getItemType();
- + else
- + _weaponType = null;
- + }
- +
- /**
- * <B><U> Overridden in </U> :</B><BR><BR>
- * <li> L2PcInstance</li><BR><BR>
- @@ -5512,8 +5588,7 @@
- if (!miss && damage > 0)
- {
- - L2Weapon weapon = getActiveWeaponItem();
- - boolean isBow = (weapon != null && (weapon.getItemType() == L2WeaponType.BOW || weapon.getItemType() == L2WeaponType.CROSSBOW));
- + boolean isBow = isUsingRangedWeapon();
- int reflectedDamage = 0;
- if (!isBow && !target.isInvul()) // Do not reflect if weapon is of type bow or target is invunlerable
- @@ -5854,16 +5929,15 @@
- }
- /**
- - * @param target
- - * @param weapon
- + * @param target
- * @return the Attack Speed of the L2Character (delay (in milliseconds) before next attack).
- */
- - public int calculateTimeBetweenAttacks(L2Character target, L2Weapon weapon)
- + public int calculateTimeBetweenAttacks(L2Character target)
- {
- double atkSpd = 0;
- - if (weapon != null && !isTransformed())
- + if (!isTransformed())
- {
- - switch (weapon.getItemType())
- + switch (target.getWeaponType())
- {
- case BOW:
- atkSpd = getStat().getPAtkSpd();
- @@ -5912,7 +5986,31 @@
- */
- public boolean isUsingDualWeapon()
- {
- - return false;
- + switch (getWeaponType())
- + {
- + case DUAL:
- + case DUALFIST:
- + case DUALDAGGER:
- + return true;
- + default:
- + return false;
- + }
- + }
- +
- + /**
- + * @return True if the L2Character use BOW or CROSSBOW
- + */
- + public boolean isUsingRangedWeapon()
- + {
- + switch (getWeaponType())
- + {
- + case DUAL:
- + case DUALFIST:
- + case DUALDAGGER:
- + return true;
- + default:
- + return false;
- + }
- }
- /**
- Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
- @@ -6906,25 +6906,6 @@
- return false;
- }
- - /**
- - * Return True if the L2PcInstance use a dual weapon.<BR><BR>
- - */
- - @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.getItemType() == L2WeaponType.DUALDAGGER)
- - return true;
- - else
- - return false;
- - }
- -
- public void setUptime(long time)
- {
- _uptime = time;
- Index: java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java (revision 5522)
- +++ java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java (working copy)
- @@ -152,11 +152,11 @@
- }
- }
- - private static final class BowCrossRodListener implements PaperdollListener
- + private static final class WeaponListener implements PaperdollListener
- {
- - private static BowCrossRodListener instance = new BowCrossRodListener();
- + private static WeaponListener instance = new WeaponListener();
- - public static BowCrossRodListener getInstance()
- + public static WeaponListener getInstance()
- {
- return instance;
- }
- @@ -188,6 +188,9 @@
- if (lure != null)
- inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
- }
- +
- + // Reset the weapon type to the default weapon type.
- + inventory.getOwner().setWeaponType();
- }
- @Override
- @@ -210,6 +213,9 @@
- if (bolts != null)
- inventory.setPaperdollItem(PAPERDOLL_LHAND, bolts);
- }
- +
- + // Update the weapon type the owner is wearing.
- + inventory.getOwner().setWeaponType(item);
- }
- }
- @@ -729,7 +735,7 @@
- if (this instanceof PcInventory)
- {
- addPaperdollListener(ArmorSetListener.getInstance());
- - addPaperdollListener(BowCrossRodListener.getInstance());
- + addPaperdollListener(WeaponListener.getInstance());
- addPaperdollListener(ItemSkillsListener.getInstance());
- addPaperdollListener(BraceletListener.getInstance());
- }
- Index: java/com/l2jserver/gameserver/network/clientpackets/MoveToLocationInAirShip.java
- ===================================================================
- --- java/com/l2jserver/gameserver/network/clientpackets/MoveToLocationInAirShip.java (revision 5522)
- +++ java/com/l2jserver/gameserver/network/clientpackets/MoveToLocationInAirShip.java (working copy)
- @@ -17,7 +17,6 @@
- import com.l2jserver.gameserver.TaskPriority;
- import com.l2jserver.gameserver.model.actor.instance.L2AirShipInstance;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- -import com.l2jserver.gameserver.model.items.type.L2WeaponType;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- import com.l2jserver.gameserver.network.serverpackets.ExMoveToLocationInAirShip;
- import com.l2jserver.gameserver.network.serverpackets.StopMoveInVehicle;
- @@ -68,9 +67,7 @@
- return;
- }
- - if (activeChar.isAttackingNow()
- - && activeChar.getActiveWeaponItem() != null
- - && (activeChar.getActiveWeaponItem().getItemType() == L2WeaponType.BOW))
- + if (activeChar.isAttackingNow() && activeChar.isUsingRangedWeapon())
- {
- activeChar.sendPacket(ActionFailed.STATIC_PACKET);
- return;
- Index: java/com/l2jserver/gameserver/network/clientpackets/UseItem.java
- ===================================================================
- --- java/com/l2jserver/gameserver/network/clientpackets/UseItem.java (revision 5522)
- +++ java/com/l2jserver/gameserver/network/clientpackets/UseItem.java (working copy)
- @@ -337,8 +337,7 @@
- return;
- }
- - final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
- - if ((weaponItem != null && weaponItem.getItemType() == L2WeaponType.FISHINGROD) && ((_itemId >= 6519 && _itemId <= 6527) || (_itemId >= 7610 && _itemId <= 7613) || (_itemId >= 7807 && _itemId <= 7809) || (_itemId >= 8484 && _itemId <= 8486) || (_itemId >= 8505 && _itemId <= 8513)))
- + if ((activeChar.getWeaponType() == L2WeaponType.FISHINGROD) && ((_itemId >= 6519 && _itemId <= 6527) || (_itemId >= 7610 && _itemId <= 7613) || (_itemId >= 7807 && _itemId <= 7809) || (_itemId >= 8484 && _itemId <= 8486) || (_itemId >= 8505 && _itemId <= 8513)))
- {
- activeChar.getInventory().setPaperdollItem(Inventory.PAPERDOLL_LHAND, item);
- activeChar.broadcastUserInfo();
- Index: java/com/l2jserver/gameserver/network/clientpackets/RequestMoveToLocationInVehicle.java
- ===================================================================
- --- java/com/l2jserver/gameserver/network/clientpackets/RequestMoveToLocationInVehicle.java (revision 5522)
- +++ java/com/l2jserver/gameserver/network/clientpackets/RequestMoveToLocationInVehicle.java (working copy)
- @@ -19,7 +19,6 @@
- import com.l2jserver.gameserver.instancemanager.BoatManager;
- import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- -import com.l2jserver.gameserver.model.items.type.L2WeaponType;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- import com.l2jserver.gameserver.network.serverpackets.MoveToLocationInVehicle;
- @@ -74,9 +73,7 @@
- return;
- }
- - if (activeChar.isAttackingNow()
- - && activeChar.getActiveWeaponItem() != null
- - && (activeChar.getActiveWeaponItem().getItemType() == L2WeaponType.BOW))
- + if (activeChar.isAttackingNow() && activeChar.isUsingRangedWeapon())
- {
- activeChar.sendPacket(ActionFailed.STATIC_PACKET);
- return;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement