aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 67202dda66d..97e75a0c6db 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5726,7 +5726,7 @@ void Spell::EffectSummonDeadPet(SpellEffIndex /*effIndex*/)
return;
Pet* pet = player->GetPet();
- if (!pet || pet->isAlive())
+ if (pet && pet->isAlive())
return;
if (damage < 0)
@@ -5734,8 +5734,16 @@ void Spell::EffectSummonDeadPet(SpellEffIndex /*effIndex*/)
float x, y, z;
player->GetPosition(x, y, z);
+ if (!pet)
+ {
+ player->SummonPet(0, x, y, z, player->GetOrientation(), SUMMON_PET, 0);
+ pet = player->GetPet();
+ }
+ if (!pet)
+ return;
+
player->GetMap()->CreatureRelocation(pet, x, y, z, player->GetOrientation());
-
+
pet->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_NONE);
pet->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
pet->setDeathState(ALIVE);