From 5fc90cf6ef962e3f77a3a4359e040d7fbb803ce4 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 27 Dec 2022 23:03:21 +0000 Subject: [PATCH] Only FAN_PB AffectScope skills should enable ground type skill. --- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- .../gameserver/model/actor/Player.java | 18 +++++++++++------- .../gameserver/model/skill/SkillCaster.java | 7 ++++--- 12 files changed, 90 insertions(+), 60 deletions(-) diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java index 4267a7d978..a53cfff59b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -278,6 +278,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8707,16 +8708,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; 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 c9a85b9977..8e41e595f9 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 @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -350,14 +351,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index 3d0f46cc0d..f16e188074 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -278,6 +278,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8766,16 +8767,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; 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 6c495c41fc..3757c9f0ee 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 @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -350,14 +351,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); } diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index c0d5aa4c00..ea28c6487a 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -282,6 +282,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8801,16 +8802,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index b0cc9291a4..c5a054410e 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -350,14 +351,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java index 242ab44319..34a5cb6f15 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -287,6 +287,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8658,16 +8659,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; 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 193b0052a6..a4dad853bf 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 @@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -346,14 +347,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java index 465a2cf2c7..0cce4d2542 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -293,6 +293,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8903,16 +8904,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; 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 134a7d921d..5d8eca40a6 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 @@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -346,14 +347,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/actor/Player.java index bc07008aca..d813380844 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -293,6 +293,7 @@ import org.l2jmobius.gameserver.model.skill.CommonSkill; import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.SkillCaster; import org.l2jmobius.gameserver.model.skill.SkillCastingType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.BaseStat; import org.l2jmobius.gameserver.model.stats.Formulas; @@ -8903,16 +8904,19 @@ public class Player extends Playable final Location worldPosition = _currentSkillWorldPosition; if ((usedSkill.getTargetType() == TargetType.GROUND) && (worldPosition == null)) { - if (getCurrentMp() >= usedSkill.getMpConsume()) + if (usedSkill.getAffectScope() == AffectScope.FAN_PB) { - if (usedSkill.checkCondition(this, target, true)) + if (getCurrentMp() >= usedSkill.getMpConsume()) { - sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + if (usedSkill.checkCondition(this, target, true)) + { + sendPacket(new MagicSkillUse(this, this, usedSkill.getDisplayId(), usedSkill.getDisplayLevel(), 0, 0, usedSkill.getReuseDelayGroup(), -1, SkillCastingType.NORMAL, true)); + } + } + else + { + sendPacket(SystemMessageId.NOT_ENOUGH_MP); } - } - else - { - sendPacket(SystemMessageId.NOT_ENOUGH_MP); } sendPacket(ActionFailed.STATIC_PACKET); return false; diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java index 02d8ce3ad9..62f2bff337 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/skill/SkillCaster.java @@ -67,6 +67,7 @@ import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.model.item.type.ActionType; import org.l2jmobius.gameserver.model.options.OptionSkillHolder; import org.l2jmobius.gameserver.model.options.OptionSkillType; +import org.l2jmobius.gameserver.model.skill.targets.AffectScope; import org.l2jmobius.gameserver.model.skill.targets.TargetType; import org.l2jmobius.gameserver.model.stats.Formulas; import org.l2jmobius.gameserver.model.stats.Stat; @@ -346,14 +347,14 @@ public class SkillCaster implements Runnable if (!_skill.isNotBroadcastable()) { caster.broadcastPacket(new MagicSkillUse(caster, target, _skill.getDisplayId(), _skill.getDisplayLevel(), displayedCastTime, reuseDelay, _skill.getReuseDelayGroup(), actionId, _castingType)); - if ((_skill.getTargetType() == TargetType.GROUND) && caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && (_skill.getAffectScope() == AffectScope.FAN_PB)) { final Player player = caster.getActingPlayer(); final Location worldPosition = player.getCurrentSkillWorldPosition(); if (worldPosition != null) { final Location location = new Location(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), worldPosition.getHeading()); - ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getId(), location)), 100); + ThreadPool.schedule(() -> player.broadcastPacket(new ExMagicSkillUseGround(player.getObjectId(), _skill.getDisplayId(), location)), 100); } } } @@ -587,7 +588,7 @@ public class SkillCaster implements Runnable caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); // Reset current skill world position. - if (caster.isPlayer()) + if (caster.isPlayer() && (_skill.getTargetType() == TargetType.GROUND) && ((_skill.getAffectScope() == AffectScope.FAN_PB) || (_skill.getAffectScope() == AffectScope.FAN))) { caster.getActingPlayer().setCurrentSkillWorldPosition(null); }