[10696] Avoid selection despawned creatures as spell autoselected targets.

Original patch provided by virusav.
This commit is contained in:
VladimirMangos 2010-11-08 02:40:03 +03:00
parent d2b3981631
commit 9508001213
4 changed files with 4 additions and 4 deletions

View file

@ -1091,7 +1091,7 @@ namespace MaNGOS
WorldObject const& GetFocusObject() const { return i_obj; }
bool operator()(Creature* u)
{
if(u->GetEntry() == i_entry && u->isAlive()==i_alive && i_obj.IsWithinDistInMap(u, i_range))
if (u->GetEntry() == i_entry && (i_alive && u->isAlive() || !i_alive && u->IsCorpse()) && i_obj.IsWithinDistInMap(u, i_range))
{
i_range = i_obj.GetDistance(u); // use found unit range as new range limit for next check
return true;

View file

@ -4628,7 +4628,7 @@ SpellCastResult Spell::CheckCast(bool strict)
{
if (pTarget->GetTypeId() == TYPEID_UNIT && pTarget->GetEntry() == i_spellST->second.targetEntry)
{
if (i_spellST->second.type == SPELL_TARGET_TYPE_DEAD && pTarget->isDead())
if (i_spellST->second.type == SPELL_TARGET_TYPE_DEAD && ((Creature*)pTarget)->IsCorpse())
{
// always use spellMaxRange, in case GetLastRange returned different in a previous pass
if (pTarget->IsWithinDistInMap(m_caster, GetSpellMaxRange(srange)))

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10695"
#define REVISION_NR "10696"
#endif // __REVISION_NR_H__