diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c6b07e472..e180c3d65 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2280,6 +2280,16 @@ void Aura::HandleAuraDummy(bool apply, bool Real) if (Unit* caster = GetCaster()) caster->CastSpell(caster, 13138, true, NULL, this); return; + case 35357: // Spawn Feign Death + if (m_target->GetTypeId() == TYPEID_UNIT) + { + // flags not set like it's done in SetFeignDeath(), also this aura expected to be existing always/from spawn + m_target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29); + m_target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + + m_target->addUnitState(UNIT_STAT_DIED); + } + return; case 39850: // Rocket Blast if(roll_chance_i(20)) // backfire stun m_target->CastSpell(m_target, 51581, true, NULL, this); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 3cd341db5..9338cb5cc 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1222,9 +1222,11 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) return; - m_caster->CastSpell(m_caster, 45991, true); - unitTarget->setDeathState(JUST_DIED); - unitTarget->SetHealth(0); + if (const SpellEntry *pSpell = sSpellStore.LookupEntry(45991)) + { + unitTarget->CastSpell(unitTarget, pSpell, true); + ((Creature*)unitTarget)->ForcedDespawn(GetSpellDuration(pSpell) + 1); + } return; } case 50243: // Teach Language diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 2c147f9b2..5f5e01840 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9419" + #define REVISION_NR "9420" #endif // __REVISION_NR_H__