Prevent CallSkill effect infinite loop.
This commit is contained in:
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.conditions.Condition;
|
|||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call Skill effect implementation.
|
* Call Skill effect implementation.
|
||||||
@@ -46,6 +47,13 @@ public class CallSkill extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void onStart(BuffInfo info)
|
public void onStart(BuffInfo info)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
final Skill skill = info.getSkill();
|
||||||
|
if ((skill != null) && (skill.getId() == _skill.getSkillId()) && (skill.getLevel() == _skill.getSkillLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
info.getEffector().makeTriggerCast(_skill.getSkill(), info.getEffected(), true);
|
info.getEffector().makeTriggerCast(_skill.getSkill(), info.getEffected(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,7 @@ import org.l2jmobius.gameserver.model.conditions.Condition;
|
|||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||||
|
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call Skill effect implementation.
|
* Call Skill effect implementation.
|
||||||
@@ -46,6 +47,13 @@ public class CallSkill extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public void onStart(BuffInfo info)
|
public void onStart(BuffInfo info)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
final Skill skill = info.getSkill();
|
||||||
|
if ((skill != null) && (skill.getId() == _skill.getSkillId()) && (skill.getLevel() == _skill.getSkillLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
info.getEffector().makeTriggerCast(_skill.getSkill(), info.getEffected(), true);
|
info.getEffector().makeTriggerCast(_skill.getSkill(), info.getEffected(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -86,6 +86,12 @@ public class CallSkill extends AbstractEffect
|
|||||||
|
|
||||||
if (triggerSkill != null)
|
if (triggerSkill != null)
|
||||||
{
|
{
|
||||||
|
// Prevent infinite loop.
|
||||||
|
if ((skill.getId() == triggerSkill.getId()) && (skill.getLevel() == triggerSkill.getLevel()))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
SkillCaster.triggerCast(effector, effected, triggerSkill);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user