diff options
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r-- | src/game/SpellEffects.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 33beae157d5..c3d4b226cb4 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3264,8 +3264,6 @@ void Spell::EffectSummonType(uint32 i) if(!summon || !summon->isTotem()) return; - summon->SetOwner(m_originalCaster, true); - if(damage) // if not spell info, DB values used { summon->SetMaxHealth(damage); @@ -3288,19 +3286,14 @@ void Spell::EffectSummonType(uint32 i) case SUMMON_TYPE_MINIPET: { summon = m_caster->GetMap()->SummonCreature(entry, x, y, z, m_caster->GetOrientation(), properties, duration, m_originalCaster); - if(!summon) + if(!summon || !summon->HasSummonMask(SUMMON_MASK_MINION)) return; - summon->SetOwner(m_originalCaster, true); - summon->SetCreatorGUID(m_originalCaster->GetGUID()); - summon->setFaction(m_originalCaster->getFaction()); - //summon->InitPetCreateSpells(); // e.g. disgusting oozeling has a create spell as summon... summon->SetMaxHealth(1); summon->SetHealth(1); summon->SetLevel(1); - summon->SetReactState(REACT_PASSIVE); summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); summon->GetMotionMaster()->MoveTargetedHome(); @@ -3960,7 +3953,7 @@ void Spell::EffectTameCreature(uint32 /*i*/) pet->SetUInt32Value(UNIT_FIELD_LEVEL, level); // caster have pet now - m_caster->SetGuardian(pet, true); + m_caster->SetMinion(pet, true); if(m_caster->GetTypeId() == TYPEID_PLAYER) { @@ -6440,7 +6433,7 @@ void Spell::SummonGuardian(uint32 entry, SummonPropertiesEntry const *properties { Unit *caster = m_originalCaster; if(caster && caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->isTotem()) - caster = caster->GetOwner(); + caster = ((Totem*)caster)->GetOwner(); if(!caster) return; |