Interrupt fix.

Contributed by Sahar.
This commit is contained in:
MobiusDev 2015-08-30 08:01:36 +00:00
parent 40baf02531
commit 2ccc3a155a

View File

@ -523,7 +523,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
/** /**
* Remove the L2Character from the world when the decay task is launched.<br> * Remove the L2Character from the world when the decay task is launched.<br>
* <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T REMOVE the object from _allObjects of L2World </B></FONT><BR> <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T SEND Server->Client packets to players</B></FONT> * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T REMOVE the object from _allObjects of L2World </B></FONT><BR>
* <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T SEND Server->Client packets to players</B></FONT>
*/ */
public void onDecay() public void onDecay()
{ {
@ -3582,7 +3583,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* A L2Character owns a table of Calculators called <B>_calculators</B>.<br> * A L2Character owns a table of Calculators called <B>_calculators</B>.<br>
* Each Calculator (a calculator per state) own a table of Func object.<br> * Each Calculator (a calculator per state) own a table of Func object.<br>
* A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...).<br> * A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...).<br>
* <FONT COLOR=#FF0000><B> <U>Caution</U> : This method is ONLY for L2PcInstance</B></FONT><br> <B><U>Example of use</U>:</B> <ul> <li>Equip an item from inventory</li> <li>Learn a new passive skill</li> <li>Use an active skill</li> </ul> * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method is ONLY for L2PcInstance</B></FONT><br>
* <B><U>Example of use</U>:</B>
* <ul>
* <li>Equip an item from inventory</li>
* <li>Learn a new passive skill</li>
* <li>Use an active skill</li>
* </ul>
* @param functions The list of Func objects to add to the Calculator corresponding to the state affected * @param functions The list of Func objects to add to the Calculator corresponding to the state affected
*/ */
public final void addStatFuncs(List<AbstractFunction> functions) public final void addStatFuncs(List<AbstractFunction> functions)
@ -3672,7 +3679,12 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* A L2Character owns a table of Calculators called <B>_calculators</B>.<br> * A L2Character owns a table of Calculators called <B>_calculators</B>.<br>
* Each Calculator (a calculator per state) own a table of Func object.<br> * Each Calculator (a calculator per state) own a table of Func object.<br>
* A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...).<br> * A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...).<br>
* <FONT COLOR=#FF0000><B> <U>Caution</U> : This method is ONLY for L2PcInstance</B></FONT><br> <B><U>Example of use</U>:</B> <ul> <li>Unequip an item from inventory</li> <li>Stop an active skill</li> </ul> * <FONT COLOR=#FF0000><B> <U>Caution</U> : This method is ONLY for L2PcInstance</B></FONT><br>
* <B><U>Example of use</U>:</B>
* <ul>
* <li>Unequip an item from inventory</li>
* <li>Stop an active skill</li>
* </ul>
* @param functions The list of Func objects to add to the Calculator corresponding to the state affected * @param functions The list of Func objects to add to the Calculator corresponding to the state affected
*/ */
public final void removeStatFuncs(AbstractFunction[] functions) public final void removeStatFuncs(AbstractFunction[] functions)
@ -4125,7 +4137,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* That's why, client send regularly a Client->Server ValidatePosition packet to eventually correct the gap on the server.<br> * That's why, client send regularly a Client->Server ValidatePosition packet to eventually correct the gap on the server.<br>
* But, it's always the server position that is used in range calculation. At the end of the estimated movement time,<br> * But, it's always the server position that is used in range calculation. At the end of the estimated movement time,<br>
* the L2Character position is automatically set to the destination position even if the movement is not finished.<br> * the L2Character position is automatically set to the destination position even if the movement is not finished.<br>
* <FONT COLOR=#FF0000><B><U>Caution</U>: The current Z position is obtained FROM THE CLIENT by the Client->Server ValidatePosition Packet.<br> But x and y positions must be calculated to avoid that players try to modify their movement speed.</B></FONT> * <FONT COLOR=#FF0000><B><U>Caution</U>: The current Z position is obtained FROM THE CLIENT by the Client->Server ValidatePosition Packet.<br>
* But x and y positions must be calculated to avoid that players try to modify their movement speed.</B></FONT>
* @return True if the movement is finished * @return True if the movement is finished
*/ */
public boolean updatePosition() public boolean updatePosition()
@ -4416,7 +4429,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* <li>Add the L2Character to movingObjects of the GameTimeController</li> * <li>Add the L2Character to movingObjects of the GameTimeController</li>
* <li>Create a task to notify the AI that L2Character arrives at a check point of the movement</li> * <li>Create a task to notify the AI that L2Character arrives at a check point of the movement</li>
* </ul> * </ul>
* <FONT COLOR=#FF0000><B><U>Caution</U>: This method DOESN'T send Server->Client packet MoveToPawn/CharMoveToLocation.</B></FONT><br> <B><U>Example of use</U>:</B> <ul> <li>AI : onIntentionMoveTo(Location), onIntentionPickUp(L2Object), onIntentionInteract(L2Object)</li> <li>FollowTask</li> * <FONT COLOR=#FF0000><B><U>Caution</U>: This method DOESN'T send Server->Client packet MoveToPawn/CharMoveToLocation.</B></FONT><br>
* <B><U>Example of use</U>:</B>
* <ul>
* <li>AI : onIntentionMoveTo(Location), onIntentionPickUp(L2Object), onIntentionInteract(L2Object)</li>
* <li>FollowTask</li>
* </ul> * </ul>
* @param x The X position of the destination * @param x The X position of the destination
* @param y The Y position of the destination * @param y The Y position of the destination
@ -4845,8 +4862,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
} }
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return True if arrows are available. * @return True if arrows are available.
*/ */
protected boolean checkAndEquipArrows() protected boolean checkAndEquipArrows()
@ -4855,8 +4871,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
} }
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return True if bolts are available. * @return True if bolts are available.
*/ */
protected boolean checkAndEquipBolts() protected boolean checkAndEquipBolts()
@ -4866,9 +4881,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
/** /**
* Add Exp and Sp to the L2Character.<br> * Add Exp and Sp to the L2Character.<br>
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li> <li>L2PetInstance</li>
* <li>L2PcInstance</li>
* <li>L2PetInstance</li>
* @param addToExp * @param addToExp
* @param addToSp * @param addToSp
*/ */
@ -4878,29 +4891,25 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
} }
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return the active weapon instance (always equiped in the right hand). * @return the active weapon instance (always equiped in the right hand).
*/ */
public abstract L2ItemInstance getActiveWeaponInstance(); public abstract L2ItemInstance getActiveWeaponInstance();
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return the active weapon item (always equiped in the right hand). * @return the active weapon item (always equiped in the right hand).
*/ */
public abstract L2Weapon getActiveWeaponItem(); public abstract L2Weapon getActiveWeaponItem();
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return the secondary weapon instance (always equiped in the left hand). * @return the secondary weapon instance (always equiped in the left hand).
*/ */
public abstract L2ItemInstance getSecondaryWeaponInstance(); public abstract L2ItemInstance getSecondaryWeaponInstance();
/** /**
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @return the secondary {@link L2Item} item (always equiped in the left hand). * @return the secondary {@link L2Item} item (always equiped in the left hand).
*/ */
public abstract L2Item getSecondaryWeaponItem(); public abstract L2Item getSecondaryWeaponItem();
@ -5152,8 +5161,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
/** /**
* Reduce the arrow number of the L2Character.<br> * Reduce the arrow number of the L2Character.<br>
* <B><U> Overridden in </U> :</B> * <B><U> Overridden in </U> :</B> <li>L2PcInstance</li>
* <li>L2PcInstance</li>
* @param bolts * @param bolts
*/ */
protected void reduceArrowCount(boolean bolts) protected void reduceArrowCount(boolean bolts)
@ -5556,7 +5564,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Healing party members should ignore LOS. // Healing party members should ignore LOS.
if (((skill.getTargetType() != L2TargetType.PARTY) || !skill.hasEffectType(L2EffectType.HEAL)) // if (((skill.getTargetType() != L2TargetType.PARTY) || !skill.hasEffectType(L2EffectType.HEAL)) //
&& !GeoData.getInstance().canSeeTarget(this, target)) && (mut.getSkillTime() > 550) && !GeoData.getInstance().canSeeTarget(this, target))
{ {
skipLOS++; skipLOS++;
continue; continue;