diff --git a/RotationSolver.Basic/Helpers/ObjectHelper.cs b/RotationSolver.Basic/Helpers/ObjectHelper.cs index 1a10e201c..3177f5e4e 100644 --- a/RotationSolver.Basic/Helpers/ObjectHelper.cs +++ b/RotationSolver.Basic/Helpers/ObjectHelper.cs @@ -72,6 +72,19 @@ internal static unsafe bool IsOthersPlayers(this GameObject obj) return false; } + internal static unsafe bool IsOtherPlayersQuest(this GameObject obj) + { + var type = obj.GetEventType(); + if (type == EventHandlerType.QuestBattleDirector) + { + var eventId = obj.Struct()->EventId; + var playerEventId = Player.GameObject->EventId.Id; + if (eventId.Id != 0 && eventId.Id != playerEventId) return true; + } + return false; + } + + internal static bool IsAttackable(this BattleChara battleChara) { //Dead. @@ -95,6 +108,9 @@ internal static bool IsAttackable(this BattleChara battleChara) if (tarFateId != 0 && tarFateId != DataCenter.FateId) return false; } + //Quest Target + if (battleChara.IsOtherPlayersQuest()) return false; + if (Service.Config.AddEnemyListToHostile) { if (battleChara.IsInEnemiesList()) return true;