Tempfix for the delayed TriggerSkillByDualRange effect skill.
Thanks to marciox25.
This commit is contained in:
parent
9fc619d24f
commit
b3c55bd00d
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -411,6 +412,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -411,6 +412,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -411,6 +412,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -407,6 +408,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -407,6 +408,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
import org.l2jmobius.commons.threads.ThreadPool;
|
|
||||||
import org.l2jmobius.gameserver.data.xml.SkillData;
|
import org.l2jmobius.gameserver.data.xml.SkillData;
|
||||||
import org.l2jmobius.gameserver.model.StatSet;
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||||
import org.l2jmobius.gameserver.model.holders.SkillUseHolder;
|
|
||||||
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;
|
||||||
|
|
||||||
@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EffectType getEffectType()
|
||||||
|
{
|
||||||
|
return EffectType.DUAL_RANGE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
public void instant(Creature effector, Creature effected, Skill skill, Item item)
|
||||||
{
|
{
|
||||||
@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill();
|
effector.getActingPlayer().useMagic(triggerSkill, null, false, true);
|
||||||
if (queuedSkill != null)
|
|
||||||
{
|
|
||||||
ThreadPool.schedule(() ->
|
|
||||||
{
|
|
||||||
effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed());
|
|
||||||
}, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,5 +62,6 @@ public enum EffectType
|
|||||||
SUMMON_NPC,
|
SUMMON_NPC,
|
||||||
TELEPORT,
|
TELEPORT,
|
||||||
TELEPORT_TO_TARGET,
|
TELEPORT_TO_TARGET,
|
||||||
ABNORMAL_SHIELD
|
ABNORMAL_SHIELD,
|
||||||
|
DUAL_RANGE
|
||||||
}
|
}
|
@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
|||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
|
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||||
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
import org.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast;
|
||||||
@ -407,6 +408,19 @@ public class SkillCaster implements Runnable
|
|||||||
// Trigger any skill cast start effects.
|
// Trigger any skill cast start effects.
|
||||||
if (target.isCreature())
|
if (target.isCreature())
|
||||||
{
|
{
|
||||||
|
// Tempfix for the delayed TriggerSkillByDualRange effect skill.
|
||||||
|
final List<AbstractEffect> effects = _skill.getEffects(EffectScope.GENERAL);
|
||||||
|
if ((effects != null) && !effects.isEmpty())
|
||||||
|
{
|
||||||
|
for (AbstractEffect effect : effects)
|
||||||
|
{
|
||||||
|
if (effect.getEffectType() == EffectType.DUAL_RANGE)
|
||||||
|
{
|
||||||
|
effect.instant(caster, (Creature) target, _skill, null);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
_skill.applyEffectScope(EffectScope.START, new BuffInfo(caster, (Creature) target, _skill, false, _item, null), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user