Correct functionality of SkillTurningOverTime effect.
Contributed by Iris.
This commit is contained in:
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1261,7 +1261,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>25</chance>
|
<chance>25</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1299,7 +1299,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>25</chance>
|
<chance>25</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1379,7 +1379,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>25</chance>
|
<chance>25</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1399,7 +1399,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>25</chance>
|
<chance>25</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1571,7 +1571,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>10</chance>
|
<chance>10</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1571,7 +1571,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>10</chance>
|
<chance>10</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1561,7 +1561,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>10</chance>
|
<chance>10</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1585,7 +1585,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>65</chance>
|
<chance>65</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1561,7 +1561,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>65</chance>
|
<chance>65</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
|||||||
import org.l2jmobius.gameserver.model.item.instance.Item;
|
import org.l2jmobius.gameserver.model.item.instance.Item;
|
||||||
import org.l2jmobius.gameserver.model.skill.Skill;
|
import org.l2jmobius.gameserver.model.skill.Skill;
|
||||||
import org.l2jmobius.gameserver.model.stats.Formulas;
|
import org.l2jmobius.gameserver.model.stats.Formulas;
|
||||||
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skill Turning effect implementation.
|
* Skill Turning effect implementation.
|
||||||
@@ -48,9 +49,10 @@ public class SkillTurningOverTime extends AbstractEffect
|
|||||||
}
|
}
|
||||||
|
|
||||||
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
final boolean skillSuccess = _staticChance ? Formulas.calcProbability(_chance, effector, effected, skill) : (Rnd.get(100) < _chance);
|
||||||
if (skillSuccess)
|
if (skillSuccess && effected.isCastingNow())
|
||||||
{
|
{
|
||||||
effected.breakCast();
|
effected.abortAllSkillCasters();
|
||||||
|
effected.sendPacket(SystemMessageId.YOUR_CASTING_HAS_BEEN_INTERRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onActionTime(effector, effected, skill, item);
|
return super.onActionTime(effector, effected, skill, item);
|
||||||
|
@@ -1581,7 +1581,7 @@
|
|||||||
</effect>
|
</effect>
|
||||||
<effect name="SkillTurningOverTime">
|
<effect name="SkillTurningOverTime">
|
||||||
<chance>65</chance>
|
<chance>65</chance>
|
||||||
<ticks>3</ticks>
|
<ticks>1</ticks>
|
||||||
</effect>
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
|
Reference in New Issue
Block a user