diff --git a/FFXIVClassic Map Server/actors/chara/ai/state/AbilityState.cs b/FFXIVClassic Map Server/actors/chara/ai/state/AbilityState.cs index 5376b6d9..ab95b013 100644 --- a/FFXIVClassic Map Server/actors/chara/ai/state/AbilityState.cs +++ b/FFXIVClassic Map Server/actors/chara/ai/state/AbilityState.cs @@ -23,8 +23,9 @@ namespace FFXIVClassic_Map_Server.actors.chara.ai.state this.skill = Server.GetWorldManager().GetBattleCommand(skillId); var returnCode = lua.LuaEngine.CallLuaBattleCommandFunction(owner, skill, "ability", "onAbilityPrepare", owner, target, skill); - this.target = target != null ? target : owner; + this.target = (skill.mainTarget & ValidTarget.SelfOnly) != 0 ? owner : target; + errorResult = new CommandResult(owner.actorId, 32553, 0); if (returnCode == 0) { OnStart(); diff --git a/FFXIVClassic Map Server/actors/chara/ai/state/MagicState.cs b/FFXIVClassic Map Server/actors/chara/ai/state/MagicState.cs index c44db21c..4d9e7ffd 100644 --- a/FFXIVClassic Map Server/actors/chara/ai/state/MagicState.cs +++ b/FFXIVClassic Map Server/actors/chara/ai/state/MagicState.cs @@ -34,8 +34,9 @@ namespace FFXIVClassic_Map_Server.actors.chara.ai.state foreach (var effect in effects) lua.LuaEngine.CallLuaStatusEffectFunction(owner, effect, "onMagicCast", owner, effect, spell); - this.target = target != null ? target : owner; + this.target = (spell.mainTarget & ValidTarget.SelfOnly) != 0 ? owner : target; + errorResult = new CommandResult(owner.actorId, 32553, 0); if (returnCode == 0 && owner.CanUse(this.target, spell, errorResult)) { OnStart(); diff --git a/FFXIVClassic Map Server/actors/chara/ai/state/WeaponSkillState.cs b/FFXIVClassic Map Server/actors/chara/ai/state/WeaponSkillState.cs index 06210707..21780d00 100644 --- a/FFXIVClassic Map Server/actors/chara/ai/state/WeaponSkillState.cs +++ b/FFXIVClassic Map Server/actors/chara/ai/state/WeaponSkillState.cs @@ -24,6 +24,9 @@ namespace FFXIVClassic_Map_Server.actors.chara.ai.state this.skill = Server.GetWorldManager().GetBattleCommand(skillId); var returnCode = lua.LuaEngine.CallLuaBattleCommandFunction(owner, skill, "weaponskill", "onSkillPrepare", owner, target, skill); + this.target = (skill.mainTarget & ValidTarget.SelfOnly) != 0 ? owner : target; + + errorResult = new CommandResult(owner.actorId, 32553, 0); if (returnCode == 0 && owner.CanUse(this.target, skill, errorResult)) { OnStart();