diff --git a/data/sql/updates/pending_db_world/rev_1677930037418943000.sql b/data/sql/updates/pending_db_world/rev_1677930037418943000.sql new file mode 100644 index 000000000..7ebd87df3 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1677930037418943000.sql @@ -0,0 +1,2 @@ +-- https://www.wowhead.com/wotlk/quest=9433/ +UPDATE `creature_template` SET `ScriptName`='npc_controller' WHERE `entry` IN (17178, 19405); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 91378335e..d1e80ef2c 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -2668,6 +2668,19 @@ private: TaskScheduler _scheduler; }; +struct npc_controller : public PossessedAI +{ + npc_controller(Creature* creature) : PossessedAI(creature) { } + + void OnCharmed(bool apply) override + { + if (!apply) + { + me->GetCharmerOrOwner()->InterruptNonMeleeSpells(false); + } + } +}; + void AddSC_npcs_special() { // Ours @@ -2696,4 +2709,5 @@ void AddSC_npcs_special() new npc_stable_master(); RegisterCreatureAI(npc_arcanite_dragonling); RegisterCreatureAI(npc_crashin_thrashin_robot); + RegisterCreatureAI(npc_controller); }