aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <none@none>2010-11-11 22:53:52 +0100
committerShauren <none@none>2010-11-11 22:53:52 +0100
commit090acddee341f389585db8146afcae8f529d77ff (patch)
treef09e9d65128b8a3df4ea17fb7d54238a9da1c0ca /src
parent0f9279b7efb7f9c3057d7bb50c0f6840fa31f53f (diff)
Core/Spells: Fixed Heart of the Phoenix pet spell
Closes issue #3911. --HG-- branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/PetHandler.cpp8
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp5
2 files changed, 10 insertions, 3 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))
diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp
index 08950f4703b..5fa440c3633 100644
--- a/src/server/scripts/Spells/spell_hunter.cpp
+++ b/src/server/scripts/Spells/spell_hunter.cpp
@@ -419,9 +419,10 @@ public:
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit *caster = GetCaster();
- if (caster->HasAura(HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF))
+ Unit *owner = caster->GetOwner();
+ if (!owner || caster->HasAura(HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF))
return;
- caster->CastCustomSpell(HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED, SPELLVALUE_BASE_POINT0, 100, caster, true);
+ owner->CastCustomSpell(HUNTER_PET_HEART_OF_THE_PHOENIX_TRIGGERED, SPELLVALUE_BASE_POINT0, 100, caster, true);
caster->CastSpell(caster, HUNTER_PET_HEART_OF_THE_PHOENIX_DEBUFF, true);
}