*Correct target requirement for eyes of the beast and add some crash preventing checks to charm code.
--HG-- branch : trunk
This commit is contained in:
1 parent
60e8de1d2e
commit
f829ee0dc0
3 files changed
+24
-11
No files matched your search
+9
-1
@@ -14033,6 +14033,10 @@ void Unit::SetCharmedBy(Unit* charmer, CharmType type)
|
||||
if(GetTypeId() == TYPEID_PLAYER && ((Player*)this)->GetTransport())
|
||||
return;
|
||||
|
||||
// Already charmed
|
||||
if(GetCharmerGUID())
|
||||
return;
|
||||
|
||||
CastStop();
|
||||
CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells)
|
||||
DeleteThreatList();
|
||||
@@ -14122,7 +14126,7 @@ void Unit::SetCharmedBy(Unit* charmer, CharmType type)
|
||||
case CHARM_TYPE_CONVERT:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Unit::RemoveCharmedBy(Unit *charmer)
|
||||
@@ -14130,6 +14134,10 @@ void Unit::RemoveCharmedBy(Unit *charmer)
|
||||
if(!isCharmed())
|
||||
return;
|
||||
|
||||
// Charm was not set for unit - return
|
||||
if (charmer && charmer->m_Controlled.find(this) == charmer->m_Controlled.end())
|
||||
return;
|
||||
|
||||
if(!charmer)
|
||||
charmer = GetCharmer();
|
||||
else if(charmer != GetCharmer()) // one aura overrides another?
|
||||
|
||||
Reference in new issue
Block a user