From 3151a0455d1e9461d91fa50332942e77b93079c8 Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sat, 31 Aug 2024 17:46:25 -0400 Subject: [PATCH] Core/Spells: Implemented SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW Port From (https://github.com/TrinityCore/TrinityCore/commit/fd329ee8483da81585db484c005a6fe22448bc63) --- Source/Framework/Constants/Spells/SpellConst.cs | 2 +- Source/Game/Handlers/PetHandler.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index 302754d0c..65f845362 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -1997,7 +1997,7 @@ namespace Framework.Constants CannotKillTarget = 0x10000000, // Cannot Kill Target LogPassive = 0x20000000, // Allows passive auras to trigger aura applied/refreshed/removed combat log events NoMovementRadiusBonus = 0x40000000, // No Movement Radius Bonus - Unk31 = 0x80000000 // 31 + ChannelPersistsOnPetFollow = 0x80000000 // Channel Persists on Pet Follow } public enum SpellAttr10 : uint { diff --git a/Source/Game/Handlers/PetHandler.cs b/Source/Game/Handlers/PetHandler.cs index 979c0b46e..c1168e1de 100644 --- a/Source/Game/Handlers/PetHandler.cs +++ b/Source/Game/Handlers/PetHandler.cs @@ -142,7 +142,10 @@ namespace Game break; case CommandStates.Follow: // spellid = 1792 //FOLLOW pet.AttackStop(); - pet.InterruptNonMeleeSpells(false); + pet.InterruptSpell(CurrentSpellTypes.Generic, false, false); + Spell channeledSpell = pet.GetCurrentSpell(CurrentSpellTypes.Channeled); + if (channeledSpell != null && !channeledSpell.GetSpellInfo().HasAttribute(SpellAttr9.ChannelPersistsOnPetFollow)) + pet.InterruptSpell(CurrentSpellTypes.Channeled, true, true); pet.GetMotionMaster().MoveFollow(GetPlayer(), SharedConst.PetFollowDist, pet.GetFollowAngle()); charmInfo.SetCommandState(CommandStates.Follow);