From 41b0fa02f2ea251e876de5dfc03f0be2d4bdc2f0 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 6 Jun 2022 20:20:40 +0200 Subject: [PATCH] =?UTF-8?q?fix(Scripts/ZulGurub):=20Shade=20of=20Jin'do's?= =?UTF-8?q?=20invisibility=20aura=20should=20not=E2=80=A6=20(#11838)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/ZulGurub): Shade of Jin'do's invisibility aura should not be removed on attack. Fixes #11557 * missing stuff. * Update. --- .../pending_db_world/rev_1654335331116726700.sql | 2 ++ src/server/game/Grids/Notifiers/GridNotifiers.h | 15 +++++++++++++-- .../EasternKingdoms/ZulGurub/boss_jindo.cpp | 9 +++++---- 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1654335331116726700.sql diff --git a/data/sql/updates/pending_db_world/rev_1654335331116726700.sql b/data/sql/updates/pending_db_world/rev_1654335331116726700.sql new file mode 100644 index 000000000..d840f6d76 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1654335331116726700.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `flags_extra`=`flags_extra`|0x00400000 WHERE `entry`=14986; diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index c8692a224..eba4476d7 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -1078,8 +1078,19 @@ namespace Acore bool operator()(Unit* u) { // Check contains checks for: live, non-selectable, non-attackable flags, flight check and GM check, ignore totems - if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->IsTotem()) - return false; + if (Creature* creature = u->ToCreature()) + { + if (creature->IsTotem()) + { + return false; + } + + if (creature->IsAvoidingAOE()) + { + return false; + } + + } if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->GetTypeId() == TYPEID_DYNAMICOBJECT ? i_obj : nullptr) && i_obj->IsWithinDistInMap(u, i_range)) return true; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp index 8bf8986b1..2eb62367a 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp @@ -37,12 +37,12 @@ enum Spells SPELL_POWERFULLHEALINGWARD = 24309, SPELL_HEX = 24053, SPELL_DELUSIONSOFJINDO = 24306, - SPELL_SHADEOFJINDO = 24308, // HACKED //Healing Ward Spell SPELL_HEAL = 24311, //Shade of Jindo Spell - SPELL_SHADOWSHOCK = 19460, - SPELL_INVISIBLE = 24699 + SPELL_SHADEOFJINDO_PASSIVE = 24307, + SPELL_SHADEOFJINDO_VISUAL = 24313, + SPELL_SHADOWSHOCK = 19460 }; enum Events @@ -250,7 +250,8 @@ public: void Reset() override { ShadowShock_Timer = 1000; - DoCast(me, SPELL_INVISIBLE, true); + DoCastSelf(SPELL_SHADEOFJINDO_PASSIVE, true); + DoCastSelf(SPELL_SHADEOFJINDO_VISUAL, true); } void EnterCombat(Unit* /*who*/) override { }