Correct functionality of SkillTurningOverTime effect.

Contributed by Iris.
This commit is contained in:
MobiusDevelopment
2022-10-12 21:17:59 +00:00
parent 345ad7cc81
commit c1751129a7
20 changed files with 50 additions and 30 deletions

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1261,7 +1261,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>25</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1299,7 +1299,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>25</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1379,7 +1379,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>25</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1399,7 +1399,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>25</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1571,7 +1571,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>10</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1571,7 +1571,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>10</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1561,7 +1561,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>10</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1585,7 +1585,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>65</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1561,7 +1561,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>65</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>

View File

@@ -23,6 +23,7 @@ import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.item.instance.Item;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
import org.l2jmobius.gameserver.network.SystemMessageId;
/**
* 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);
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);

View File

@@ -1581,7 +1581,7 @@
</effect>
<effect name="SkillTurningOverTime">
<chance>65</chance>
<ticks>3</ticks>
<ticks>1</ticks>
</effect>
</effects>
</skill>