Index: src/game/Spell.cpp =================================================================== --- src/game/Spell.cpp (revision 4985) +++ src/game/Spell.cpp (working copy) @@ -1031,14 +1031,19 @@ }break; case TARGET_CURRENT_SELECTED_ENEMY: { - CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY())); - Cell cell(p); - cell.data.Part.reserved = ALL_DISTRICT; - cell.SetNoCreate(); - MaNGOS::SpellNotifierPlayer notifier(*this, TagUnitMap, i, radius); - TypeContainerVisitor player_notifier(notifier); - CellLock cell_lock(cell, p); - cell_lock->Visit(cell_lock, player_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); + if (m_spellInfo->Id == 34433) + TagUnitMap.push_back(m_caster); + else + { + CellPair p(MaNGOS::ComputeCellPair(m_caster->GetPositionX(), m_caster->GetPositionY())); + Cell cell(p); + cell.data.Part.reserved = ALL_DISTRICT; + cell.SetNoCreate(); + MaNGOS::SpellNotifierPlayer notifier(*this, TagUnitMap, i, radius); + TypeContainerVisitor player_notifier(notifier); + CellLock cell_lock(cell, p); + cell_lock->Visit(cell_lock, player_notifier, *MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)); + } }break; default: { Index: src/game/Unit.cpp =================================================================== --- src/game/Unit.cpp (revision 4985) +++ src/game/Unit.cpp (working copy) @@ -454,7 +454,24 @@ // root type spells do not dispell the root effect if(!spellProto || spellProto->Mechanic != MECHANIC_ROOT) pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_ROOT, damage); - + + //Shadowfiend + if (GetTypeId() == TYPEID_UNIT && ((Creature*)this)->GetEntry() == 19668) + { + if (((Creature*)this)->isPet()) + { + Unit* master = ((Pet*)this)->GetOwner(); + if (master) + { + float mana = ((float(SpellBaseDamageBonus(SPELL_SCHOOL_SHADOW)) * 0.65f + float(damage)) * 2.5f); + int32 gain = master->ModifyPower(POWER_MANA,int32(mana)); + if(gain) + if(master->GetTypeId() == TYPEID_PLAYER) + master->SendHealSpellOnPlayerPet(master, 34433, gain, POWER_MANA); + } + } + } + if(pVictim->GetTypeId() != TYPEID_PLAYER) { //pVictim->SetInFront(this);