aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/PetHandler.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp
index 01fda02dc3b..c0c4fc4b993 100755
--- a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp
@@ -80,7 +80,13 @@ void WorldSession::HandlePetAction(WorldPacket & recv_data)
}
if (!pet->isAlive())
- return;
+ {
+ SpellEntry const* spell = (flag == ACT_ENABLED || flag == ACT_PASSIVE) ? sSpellStore.LookupEntry(spellid) : NULL;
+ if (!spell)
+ return;
+ if (!(spell->Attributes & SPELL_ATTR_CASTABLE_WHILE_DEAD))
+ return;
+ }
//TODO: allow control charmed player?
if (pet->GetTypeId() == TYPEID_PLAYER && !(flag == ACT_COMMAND && spellid == COMMAND_ATTACK))