diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index 71ad62881a..741e687daa 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -411,6 +412,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); } diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index 933360f107..480342a454 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -411,6 +412,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); } diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index ad780eb6a8..ec9be713bb 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -50,6 +50,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -411,6 +412,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index c591d9cc0e..4f4bf96653 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -407,6 +408,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index fcb077f98d..eebaefc3a1 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -407,6 +408,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java index 36601d4934..5bdd586c7b 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/TriggerSkillByDualRange.java @@ -16,13 +16,12 @@ */ package handlers.effecthandlers; -import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; 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.SkillUseHolder; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.skill.Skill; @@ -52,6 +51,12 @@ public class TriggerSkillByDualRange extends AbstractEffect return true; } + @Override + public EffectType getEffectType() + { + return EffectType.DUAL_RANGE; + } + @Override public void instant(Creature effector, Creature effected, Skill skill, Item item) { @@ -67,15 +72,6 @@ public class TriggerSkillByDualRange extends AbstractEffect return; } - final SkillUseHolder queuedSkill = effector.getActingPlayer().getQueuedSkill(); - if (queuedSkill != null) - { - ThreadPool.schedule(() -> - { - effector.getActingPlayer().setQueuedSkill(queuedSkill.getSkill(), queuedSkill.getItem(), queuedSkill.isCtrlPressed(), queuedSkill.isShiftPressed()); - }, 10); - } - - effector.getActingPlayer().setQueuedSkill(triggerSkill, null, false, false); + effector.getActingPlayer().useMagic(triggerSkill, null, false, true); } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/effects/EffectType.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/effects/EffectType.java index 6d88f42f03..ff34b3e04b 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/effects/EffectType.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/effects/EffectType.java @@ -62,5 +62,6 @@ public enum EffectType SUMMON_NPC, TELEPORT, TELEPORT_TO_TARGET, - ABNORMAL_SHIELD + ABNORMAL_SHIELD, + DUAL_RANGE } \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index fcb077f98d..eebaefc3a1 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -51,6 +51,7 @@ import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Summon; 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.events.EventDispatcher; import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSkillFinishCast; @@ -407,6 +408,19 @@ public class SkillCaster implements Runnable // Trigger any skill cast start effects. if (target.isCreature()) { + // Tempfix for the delayed TriggerSkillByDualRange effect skill. + final List 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); }